从 VMware Cloud Director 10.3.1 开始,可以生成并颁发 API 访问令牌。您可以通过 API 访问令牌使用相应的安全最佳做法(包括使用双因素授权)进行身份验证,并可授予对 VMware Cloud Director 构建自动化的访问权限。
访问令牌是客户端应用程序用于代表用户发出 API 请求的项目。应用程序需要访问令牌进行身份验证。访问令牌过期后,应用程序可以使用 API 令牌来获取访问令牌。API 令牌不会过期。
使用访问令牌时,应用程序无法执行某些任务。
- 更改用户密码
- 执行用户管理任务
- 创建更多令牌
- 查看或撤销其他令牌
使用 API 访问令牌访问 VMware Cloud Director 时,应用程序只有查看以下资源的权限。
- 用户
- 组
- 角色
- 全局角色
- 权限包
使用 API 访问令牌访问
VMware Cloud Director 的应用程序没有以下权限。
- 令牌:管理
- 令牌:管理全部
与生成用户 API 令牌类似,可以使用 VMware Cloud Director API 创建服务帐户。用于创建服务帐户的 API 请求使用与创建用户 API 令牌相同的 API 端点,但存在 software_id
字段表示用于创建服务帐户。
前提条件
使用 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 节中有关刷新访问令牌的信息。
过程
示例
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>",