マルチ テナント アプリケーションを作成するとき、異なるテナントにあるリソースの認証要求を処理する必要が生じることがあります。 一般的なシナリオとして、1 つのテナント内の仮想マシンが、別のテナント内の仮想ネットワークに参加しなければならないことがあります。 Azure Resource Manager には、別のテナントへの要求を認証する補助トークンを格納するためのヘッダー値が用意されています。
認証のためのヘッダー値
要求では、次の認証ヘッダー値があります。
| ヘッダー名 | 説明 | 値の例 |
|---|---|---|
| 承認 | プライマリ トークン | Bearer <primary-token> |
| x-ms-authorization-auxiliary | 補助トークン | Bearer <auxiliary-token1>、EncryptedBearer <auxiliary-token2>、Bearer <auxiliary-token3> |
補助ヘッダーは最大 3 つの補助トークンを保持できます。
マルチ テナント アプリのコード内で、他のテナントの認証トークンを取得し、そのトークンを補助ヘッダー内に格納します。 ユーザーまたはアプリケーションは、ゲストとして他のテナントに招待されている必要があります。
要求の処理
ユーザーが開発するアプリが Resource Manager に要求を送信すると、その要求はプライマリ トークンの ID を使用して実行されます。 プライマリ トークンは、期限が切れていない有効なものでなければなりません。 このトークンは、サブスクリプションを管理できるテナントからのものである必要があります。
要求が別のテナントからのリソースを参照するとき、Resource Manager は補助トークンをチェックし、その要求を処理できるかどうかを判断します。 ヘッダー内のすべての補助トークンは、期限が切れていない有効なものでなければなりません。 いずれかのトークンが期限切れの場合、Resource Manager は 401 応答コードを返します。 応答には、無効なトークンからのクライアント ID およびテナント ID が含まれます。 テナントに対応する有効なトークンが補助ヘッダーの中に存在する場合、テナントをまたぐ要求が処理されます。
次のステップ
- 認証要求については、「認証フローとアプリケーションのシナリオ」を参照してください。
- トークンの詳細については、「Microsoft Entra access tokens (Microsoft Entra アクセス トークン)」を参照してください。