バージョン 10.4.2 以降では、VMware Cloud Director をテナント対応の ID プロバイダ プロキシ サーバとして使用できます。
OAuth 2.0 OpenID 接続標準を使用して ID プロバイダ プロキシ サーバとして VMware Cloud Director が構成されている場合、証明書利用者は、VMware Cloud Director に認識されているユーザーのテナント対応認証に VMware Cloud Director を使用できます。OpenID 接続標準の詳細については、OpenID Connect Core 1.0を参照してください。
ID プロバイダ プロキシ サーバとして、VMware Cloud Director はクライアント アプリケーション(証明書利用者)と ID プロバイダ間の仲介役を果たし、実際の認証はプロバイダまたはテナントが使用するそれぞれの認証メカニズムに委任します。
システム管理者は、VMware Cloud Director と統合される証明書利用者を構成し、個々のテナントがそれぞれのユーザーに ID プロバイダ プロキシとして VMware Cloud Director を使用することを許可できるようにすることができます。
認証フロー
VMware Cloud Director との統合は、OAuth 2.0 OIDC 認証コード フロー標準を介して実装されます。詳細については、Authentication using the Authorization Code Flowを参照してください。
証明書利用者がユーザーを VMware Cloud Director にリダイレクトするときに、既存のクライアント セッションがない場合、ユーザーはまずログインする組織またはプロバイダのポータルを特定して、VMware Cloud Director にログインするように求められます。ユーザーは、構成された認証メカニズムを介して認証を行います。これには、さらに外部 ID プロバイダへのリダイレクトが含まれる場合があります。ユーザーのブラウザによって既存の VMware Cloud Director ユーザー セッションが検出された場合は、認証フローによって SSO エクスペリエンスが提供され、再認証のためのユーザーの操作は必要ありません。プロセスが正常に完了すると、VMware Cloud Director はアクセス トークンと ID トークンを返します。フローの一部として発行される認証コードは、5 分間有効です。アクセス トークンは 5 分間有効で、ID トークンは 1 時間有効です。
VMware Cloud Director は更新トークンを返しません。
認証が成功したときに VMware Cloud Director によって返されるアクセス トークンは、ユーザー インターフェイス ポータルにアクセスしたり、通常の VMware Cloud Director API 呼び出しを行ったりするために使用することはできません。
- ID トークンの詳細
-
VMware Cloud Director によって返される ID トークンには、次の OpenID 標準要求と VMware Cloud Director 固有の要求が含まれています。
要求
説明
at_hash
(OpenID 標準要求)アクセス トークンのハッシュ値。
sub
(OpenID 標準要求)UUID 形式の VMware Cloud Director の
userId
。iss
(OpenID 標準要求)VMware Cloud Director のパブリック アドレス。
preferred_username
(OpenID 標準要求)VMware Cloud Director のユーザーのユーザー名
nonce
(OpenID 標準要求)クライアント セッションを ID トークンに関連付け、リプレイ攻撃の脅威を軽減するために使用される文字列値。証明書利用者の要求に最初から含まれていた場合にのみ存在します。
aud
(OpenID 標準要求)このトークンのオーディエンス。値は、要求している証明書利用者のクライアント ID です。
azp
(OpenID 標準要求)トークンの認証された利用者。値は、証明書利用者のクライアント ID です。その値は、
aud
要求と同じです。name
(OpenID 標準要求)ユーザーのフル ネーム(VMware Cloud Director によって認識されている場合)。
phone_number
(OpenID 標準要求)ユーザーの電話番号(VMware Cloud Director によって認識されている場合)。
exp
(OpenID 標準要求)有効期限。この期限を過ぎると、ID トークンが処理に受け付けられなくなります。
iat
(OpenID 標準要求)ID トークンが発行された時間。
email
(OpenID 標準要求)ユーザーのメール アドレス(VMware Cloud Director によって認識されている場合)。
roles
(VMware Cloud Director カスタム要求)VMware Cloud Director におけるユーザーのロールの名前の配列。
groups
(VMware Cloud Director カスタム要求)VMware Cloud Director でユーザーが属しているグループの名前の配列。
org_name
(VMware Cloud Director カスタム要求)ユーザーがログインしている組織の名前。
org_display_name
(VMware Cloud Director カスタム要求)組織の表示名。
org_id
(VMware Cloud Director カスタム要求)UUID 形式の組織 ID。
- OpenID 要求の範囲
-
OpenID 要求の範囲は、アクセス トークンのために要求される権限を指定するために使用されます。
範囲の値
説明。
openid
必須項目です。OpenID 標準範囲。
profile
OpenID 標準範囲。エンド ユーザーのデフォルト プロファイル要求へのアクセスを要求します。
email
OpenID 標準範囲。エンド ユーザーのメール アドレス要求へのアクセスを要求します。
groups
OpenID 標準範囲。VMware Cloud Director でユーザーが属しているグループへのアクセスを要求します。
phone
OpenID 標準範囲。ユーザーの電話番号要求へのアクセスを要求します。
vcd_idp
VMware Cloud Director 固有の範囲。
roles
、groups
、org_name
、org_display_name
、org_id
などの VMware Cloud Director カスタム要求へのアクセスを要求します。 - エンドポイント
-
VMware Cloud Director によって返されたアクセス トークンを使用して、
hostname/oidc/UserInfo
エンドポイントで認証されたユーザーに関する要求を取得できます。詳細については、UserInfo Endpointを参照してください。既知の構成 URL
hostname/oidc/.well-known/openid-configuration
で、JWKS エンドポイントや、OIDC プロキシ構成に必要なその他のエンドポイントと範囲に関する情報などの、プロバイダ構成値を取得できます。VMware Cloud Director での OIDC プロキシの全般設定の表示を参照してください。
VMware Cloud Director ID プロバイダ プロキシへのトークン交換アクセス
VMware Cloud Director の ID プロバイダ プロキシ機能とのプログラムによる統合は、以下で詳しく説明するトークン交換フローを通じて使用できます。このフローには、VMware Cloud Director ユーザー インターフェイスは含まれていません。CLI などのスクリプトによるアクセスに適しています。
直接ログインするか、API トークンを使用して、VMware Cloud Director JWT を取得します。
POST 要求を実行します。
POST hostname/oidc/oauth2/token
要求の本文として
x-www-form-urlencoded
を選択します。要求の本文に次のパラメータを含めます。
{ "grant_type": "urn:ietf:params:oauth:grant-type:jwt-bearer", "assertion": "VMware_Cloud_Director JWT", "client_id": "Relying_party_ID", "scope": "openid profile email phone groups vcd_idp", }
応答では、OIDC 要求と VMware Cloud Director 要求を含む ID トークンと、
hostname/oidc/UserInfo
エンドポイントで認証されたユーザーに関する要求を取得するために使用できるアクセス トークンの両方が返されます。
エンコードされた ID トークンの例:
eyJhbGciOiJSUzI1NiIsInR5NDg4SI6I................4dHnbU1RQ6Y9Yohgw
デコードされた ID トークンの例:
{ "at_hash": "1AA1aAA1AAAAAAaAA1A11a", "sub": "111111111-1111-1111-1111-11111111", "roles": [ "Organization Administrator" ], "iss": "https://hostname/oidc", "groups": [ "ALL USERS" ], "preferred_username": "testuser@vcd-ms1", "nonce": "ab123acab", "aud": "33333333-3333-3333-3333-33333333333", "azp": "22222222-2222-2222-2222-22222222", "org_id": "12345678-1234-1234-1234-123456789abc", "org_display_name": "oidcorg", "name": "test user", "phone_number": " ", "exp": 1111111111, "org_name": "oidcorg", "iat": 1111111111, "email": "[email protected]" }
ユーザー情報応答の例:
{ "sub": "111111111-1111-1111-1111-11111111", "preferred_username": "administrator", "name": "administrator user", "email": "[email protected]", "phone_number": "0 (111) 222-3333", "roles": [ "system administrator" ], "groups": [], "org_name": "system", "org_display_name": "System Organization", "org_id": "12345678-1234-1234-1234-123456789abc" }
マルチサイトに関する考慮事項
マルチサイト展開では、各サイトが単一の ID プロバイダ サーバとして機能します。
ペアリングされたサイトでは、連携 ID サーバのサポートは提供されません。つまり、ログイン プロセス中に、ID プロバイダ プロキシとして機能するサイトに属していないテナントが、そのサイトに、マルチサイト展開の別のサイトの組織選択を介してログインを試みると、ログインは失敗します。