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 資格情報の 発行者サブジェクト の値が、外部トークンで指定された issuersubject 要求に照らしてチェックされます。 検証チェックに合格した場合、Microsoft ID プラットフォームは外部ソフトウェア ワークロードへのアクセス トークンを発行します。

設計上の考慮事項

アプリケーション オブジェクトまたはユーザー割り当てマネージド ID ごとに、最大 20 個のフェデレーション ID 資格情報を追加できます。