VMware Cloud Director 10.3.1부터 API 액세스 토큰을 생성하고 발급할 수 있습니다. API 액세스 토큰을 사용하여 2단계 인증을 활용하는 등 각각의 보안 모범 사례를 사용하여 인증을 받으면 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(Request for Comments) 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>",