2.2. Authentication


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

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

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
重要

OAuth RFC 中,scope 参数被描述为可选,但在将它与 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