VMware Cloud Director 10.3.1부터 API 액세스 토큰을 생성하고 발급할 수 있습니다. API 액세스 토큰을 사용하여 2단계 인증을 활용하는 등 각각의 보안 모범 사례를 사용하여 인증을 받으면 VMware Cloud Director에 대한 자동화를 구축하도록 액세스 권한을 부여할 수 있습니다.
액세스 토큰은 클라이언트 애플리케이션이 사용자 대신 API 요청을 수행하는 데 사용하는 아티팩트입니다. 애플리케이션에는 인증을 위한 액세스 토큰이 필요합니다. 액세스 토큰이 만료되면 애플리케이션은 액세스 토큰을 가져오기 위해 API 토큰을 사용할 수 있습니다. API 토큰은 만료되지 않습니다.
액세스 토큰을 사용하는 경우 애플리케이션은 다음과 같은 특정 작업을 수행할 수 없습니다.
- 사용자 암호 변경
- 사용자 관리 작업 수행
- 추가 토큰 만들기
- 다른 토큰 보기 또는 취소
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 정보를 숙지해야 합니다.
프로시저
예
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>",