搜索

2.2. Authentication

download PDF

具有 Red Hat Virtualization Manager 帐户的任何用户都可以访问该 API。所有请求都必须使用 OAuth 或基本身份验证进行身份验证,如下所述。

2.2.1. OAuth 身份验证

自 Red Hat Virtualization 版本 4.0 起,首选身份验证机制为 OAuth 2.0,如 RFC 6749 所述。

OAuth 是一种复杂的协议,具有多种获取授权和访问令牌的机制。与 Red Hat Virtualization API 一起使用,唯一支持的是 Resource Owner Password Credentials Grant,如 RFC 6749 的 4.3 节所述

您必须首先获取令牌,将用户名和密码发送到 Red Hat Virtualization Manager 单点登录服务:

POST /ovirt-engine/sso/oauth/token HTTP/1.1
Host: myengine.example.com
Content-Type: application/x-www-form-urlencoded
Accept: application/json

请求正文必须包含 grant_typescopeusername 和 password 参数:

表 2.1. OAuth 令牌请求参数
名称

grant_type

password

scope

ovirt-app-api

username

admin@internal

password

mypassword

这些参数必须经过 URL 编码。例如,用户名中的 @ 字符需要编码为 %40。生成的请求正文将类似如下:

grant_type=password&scope=ovirt-app-api&username=admin%40internal&password=mypassword
重要

OAuth RFC 中,scope 参数被描述为可选,但在将它与 Red Hat Virtualization API 搭配使用时,它的值必须是 ovirt-app-api

如果用户名和密码有效,Red Hat Virtualization Manager 单点登录服务将使用类似本文档的 JSON 文档进行响应:

{
  "access_token": "fqbR1ftzh8wBCviLxJcYuV5oSDI=",
  "token_type": "bearer",
  "scope": "...",
  ...
}

出于 API 身份验证目的,唯一相关的名称/值对是 access_token。不要以任何方式操作;使用它与 SSO 服务提供的完全相同。

获取令牌后,它可用于通过在 HTTP 授权 标头中包含和使用 Bearer 方案来对 API 执行请求。例如,要获取虚拟机列表,请发送如下请求:

GET /ovirt-engine/api/vms HTTP/1.1
Host: myengine.example.com
Accept: application/xml
Authorization: Bearer fqbR1ftzh8wBCviLxJcYuV5oSDI=

该令牌可以多次用于多个请求,但它最终会过期。当它过期时,服务器将使用 401 HTTP 响应代码拒绝请求:

HTTP/1.1 401 Unauthorized

当发生这种情况时,需要一个新的令牌,因为 Red Hat Virtualization Manager 单点登录服务目前不支持刷新令牌。可以使用上述相同方法请求新的令牌。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.