2.2. HTTP 验证

具有 Red Hat Enterprise Virtualization 帐号的用户都可以访问 REST API。API 用户到 API 的请求都包括一个强制的 Red Hat Enterprise Virtualization Manager 用户名和密码。每个请求都使用 HTTP Basic Authentication [2] 来加密它们的身份信息。如果请求没有包括正确的 Authorization 头,API 会在结果中包括一个 401 Authorization Required 信息:

例 2.1. 访问 REST API 时没有包括正确的身份信息

HEAD [base] HTTP/1.1
Host: [host]

HTTP/1.1 401 Authorization Required
请求会获得一个特定域(realm)的 Authorization 头。API 用户在所提供的身份信息中指定一个加密的 Red Hat Enterprise Virtualization Manager 域(domain)和用户信息(格式是 username@domain:password)。
以下表格显示了基于 base64 的身份信息。

表 2.1. API 服务所需的身份信息

usernamerhevmadmin
domaindomain.example.com
password123456
未编码的用户信息rhevmadmin@domain.example.com:123456
使用 base64 编码的用户信息cmhldm1hZG1pbkBibGFjay5xdW1yYW5ldC5jb206MTIzNDU2
API 用户提供以下的 base64 加密身份信息:

例 2.2. 使用正确的身份信息访问 REST API

HEAD [base] HTTP/1.1
Host: [host]
Authorization: Basic cmhldm1hZG1pbkBibGFjay5xdW1yYW5ldC5jb206MTIzNDU2

HTTP/1.1 200 OK
...

重要

基本验证会以明码的形式发送可能需要保密的信息,如密码。REST API 需要使用 Hypertext Transfer Protocol Secure (HTTPS) 来处理明码请求。

重要

一些 base64 库会把加密结果分为多个行,每个行以一个 newline 符结束,这会破坏头数据并导致一个错误请求。Authorization 头需要加密的身份信息以一行的形式包括在头中。