Microsoft Entra ID でのフェデレーション ID 資格情報の概要
名前空間: microsoft.graph
従来、開発者はアプリケーションの資格情報に証明書またはクライアント シークレットを使用して、Microsoft Entra ID でサービスを認証してアクセスします。 Microsoft Entra テナント内のサービスにアクセスするには、開発者は Azure の外部にアプリケーション資格情報を格納して管理する必要があり、次のボトルネックが発生しました。
- 証明書とシークレットのメンテナンスの負担。
- シークレットが漏洩するリスク。
- 認証が失敗したため、証明書の有効期限が切れ、サービスが中断されます。
フェデレーション ID 資格情報 は、ソフトウェア ワークロードのワークロード ID フェデレーションを有効にする新しい種類の資格情報です。 ワークロード ID フェデレーションを使用すると、(サポートされているシナリオで) シークレットを管理することなく、Microsoft Entra で保護されたリソースにアクセスできます。
フェデレーション ID 資格情報のしくみ
フェデレーション ID 資格情報を構成することで、外部 ID プロバイダー (IdP) と Microsoft Entra ID 内のアプリの間に信頼関係を作成します。 フェデレーション ID 資格情報は、アプリケーションによって信頼される外部 IdP からのトークンを示すために使用されます。 その信頼関係が作成されると、ソフトウェア ワークロードは、外部 ID プロバイダーからの信頼されたトークンを Microsoft ID プラットフォームからのアクセス トークンと交換できます。 その後、ソフトウェア ワークロードは、そのアクセス トークンを使用して、ワークロードにアクセス権が付与されている Microsoft Entra で保護されたリソースにアクセスします。 これにより、資格情報を手動で管理するメンテナンスの負担がなくなり、シークレットが漏洩したり、証明書の有効期限が切れたりするリスクがなくなります。 詳細とサポートされるシナリオについては、「 ワークロード ID フェデレーション」を参照してください。
Microsoft Graph を使用してフェデレーション ID 資格情報を設定する
federatedIdentityCredential リソースは、Microsoft Graph を介したフェデレーション ID 資格情報の構成を表します。 次のプロパティは、フェデレーション ID 資格情報の構成要素です。
-
対象ユーザー — 外部トークンに表示できる対象ユーザー。 このフィールドは必須であり、Microsoft Entra ID の
api://AzureADTokenExchange
に設定する必要があります。 受信トークンのaud
要求で、Microsoft ID プラットフォームが受け入れる必要がある内容が記載されています。 この値は、外部 ID プロバイダーの Microsoft Entra ID を表し、ID プロバイダー間で固定値がありません。このトークンの対象ユーザーとして機能するには、IdP に新しいアプリケーション登録を作成する必要がある場合があります。 - issuer — 外部 ID プロバイダーの URL。 交換される外部トークンの 発行者 要求と一致する必要があります。
-
subject — 外部 ID プロバイダー内の外部ソフトウェア ワークロードの識別子。 対象ユーザーの値と同様に、各 IdP は独自の GUID、時にはコロンで区切られた識別子、時には任意の文字列を使用する場合があるため、固定形式はありません。 ここでの値は、Microsoft Entra ID に提示されるトークン内の
sub
要求と一致する必要があります。
発行者とサブジェクトの組み合わせは、アプリで一意である必要があります。 外部ソフトウェア ワークロードがアクセス トークンの外部トークンを交換するように Microsoft ID プラットフォームに要求すると、フェデレーション ID 資格情報の 発行者 と サブジェクト の値が、外部トークンで指定された issuer
と subject
要求に照らしてチェックされます。 検証チェックに合格した場合、Microsoft ID プラットフォームは外部ソフトウェア ワークロードへのアクセス トークンを発行します。
設計上の考慮事項
アプリケーション オブジェクトまたはユーザー割り当てマネージド ID ごとに、最大 20 個のフェデレーション ID 資格情報を追加できます。