VMware Cloud Director 10.3.1 以降では、API アクセス トークンを生成して発行することができます。2 要素認証の使用など、セキュリティに関する独自のベスト プラクティスを使用して認証しているときに、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 で指定されている「アクセス トークンの更新」標準を使用して、VMware Cloud Director への OAuth アプリケーションとしてのアクセスを許可することができます。返されるアクセス トークンは、VMware Cloud Director のアクセス トークンと同じです。クライアント アプリケーションはこのトークンを使用して、VMware Cloud Director に対する以降の API 呼び出しを行うことができます。OAuth 2.0 の RFC 準拠の要求を行うには、アクセス トークンの更新に関するRequest for Comments (RFC) 6749 セクション 6の情報について詳細に確認してください。

手順

  1. ナビゲーション バーの右上隅でユーザー名をクリックし、[ユーザー環境設定] を選択します。
  2. [アクセス トークン] セクションで、[新規] をクリックします。
  3. トークンの名前を入力し、[作成] をクリックします。
    生成された API トークンが表示されます。トークンの表示は 1 回のみのため、コピーする必要があります。 [OK] をクリックした後に、このトークンを再取得することはできません。トークンの取り消しのみが可能です。
  4. API エンドポイント (https://site.cloud.example.com/oauth/provider/token) に 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>",