VMware Cloud Director 10.3.1 开始,可以生成并颁发 API 访问令牌。您可以通过 API 访问令牌使用相应的安全最佳做法(包括使用双因素授权)进行身份验证,并可授予对 VMware Cloud Director 构建自动化的访问权限。

访问令牌是客户端应用程序用于代表用户发出 API 请求的项目。应用程序需要访问令牌进行身份验证。访问令牌过期后,应用程序可以使用 API 令牌来获取访问令牌。API 令牌不会过期。

使用访问令牌时,应用程序无法执行某些任务。

  • 更改用户密码
  • 执行用户管理任务
  • 创建更多令牌
  • 查看或撤销其他令牌

使用 API 访问令牌访问 VMware Cloud Director 时,应用程序只有查看以下资源的权限。

  • 用户
  • 角色
  • 全局角色
  • 权限包
使用 API 访问令牌访问 VMware Cloud Director 的应用程序没有以下权限。
  • 令牌:管理
  • 令牌:管理全部

前提条件

使用 API 令牌进行身份验证使用 OAuth 2.0 RFC 6749 第 6 节中指定的“刷新访问令牌”标准,以允许作为 OAuth 应用程序访问 VMware Cloud Director。返回的访问令牌与 VMware Cloud Director 访问令牌相同,客户端应用程序可以使用该令牌对 VMware Cloud Director 进行后续 API 调用。要发出符合 OAuth 2.0 RFC 的请求,请熟悉征求意见文档 (RFC) 6749 第 6 节中有关刷新访问令牌的信息。

过程

  1. 在导航栏的右上角,单击您的用户名,然后选择用户首选项
  2. 在“访问令牌”部分下,单击新建
  3. 输入令牌的名称,然后单击创建
    此时将显示生成的 API 令牌。必须复制令牌,因为令牌仅显示一次。单击 确定后,无法再次检索此令牌,只能将其撤销。
  4. https://site.cloud.example.com/oauth/provider/token API 端点发出符合 OAuth 2.0 RFC 的请求。
    grant_type refresh_token
    refresh_token Generated_refresh_token
    该请求将返回访问令牌,应用程序可将其用于在 VMware Cloud Director 中执行任务。用户注销后,令牌仍然有效。访问令牌过期后,应用程序可以使用 API 令牌获取更多访问令牌。

示例

请求:
POST https://host_name/oauth/provider/token
Accept: application/json
Content-Type: application/x-www-form-urlencoded
Content-Length: 71

grant_type=refresh_token&refresh_token=Generated_API_Token
响应:
HTTP/1.1 200 OK
Content-Type: application/json

{
   "access_token":"Generated_Access_Token",
   "token_type":"Bearer",
   "expires_in":2592000,
   "refresh_token":null
}
使用生成的访问令牌请求:
GET https://host_name/api/org
Accept: application/*+xml;version=36.1
Authorization: Bearer Generated_Access_Token
响应:
HTTP/1.1 200 OK
Content-Type: application/vnd.vmware.vcloud.orglist+xml;version=36.1
X-VMWARE-VCLOUD-REQUEST-EXECUTION-TIME: 41

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<OrgList
    xmlns="http://www.vmware.com/vcloud/v1.5"
    xmlns:vmext="http://www.vmware.com/vcloud/extension/v1.5"
    xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1"
    xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData"
    xmlns:common="http://schemas.dmtf.org/wbem/wscim/1/common"
    xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData"
    xmlns:vmw="http://www.vmware.com/schema/ovf"
    xmlns:ovfenv="http://schemas.dmtf.org/ovf/environment/1"
    xmlns:ns9="http://www.vmware.com/vcloud/versions" href="https://host_name/api/org/" type="application/vnd.vmware.vcloud.orgList+xml">
    <Org href="https://host_name/api/org/a93c9db9-7471-3192-8d09-a8f7eeda85f9" type="application/vnd.vmware.vcloud.org+xml" name="System"/>
</OrgList>

下一步做什么

  • 如果您希望租户能够生成令牌,则必须向租户角色授予管理用户自己的 API 令牌权限。
  • 默认情况下,租户只能查看自己创建的令牌。要允许组织管理员查看和撤销组织中其他租户用户的令牌,您必须授予他们管理所有用户的 API 令牌权限。具有管理所有用户的 API 令牌权限的管理员只能查看其他用户的令牌的名称,而无法查看令牌本身。
  • 要撤销您的任何令牌,请导航到用户首选项页面,然后单击该令牌旁边的垂直省略号。
  • 要撤销其他用户的令牌,请在顶部导航栏中的管理下,导航到用户的访问控制设置。选择特定用户时,您还可以查看其访问令牌并将其撤销。
  • 如果您需要识别使用 API 访问令牌触发的事件,在事件日志中,事件的 additionalProperties 部分中会显示以下行。
    "currentContext.refreshTokenId": "<UUID_of_the_token_that_performed_the_action>",