2.2. 身份验证


具有 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 中的 section 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
Copy to Clipboard Toggle word wrap

请求正文必须包含 grant_typescopeusernamepassword 参数:

Expand
表 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
Copy to Clipboard Toggle word wrap
重要

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

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

{
  "access_token": "fqbR1ftzh8wBCviLxJcYuV5oSDI=",
  "token_type": "bearer",
  "scope": "...",
  ...
}
Copy to Clipboard Toggle word wrap

对于 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=
Copy to Clipboard Toggle word wrap

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

HTTP/1.1 401 Unauthorized
Copy to Clipboard Toggle word wrap

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

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat