OpenID Connect を外部 ID プロバイダーとして追加する (プレビュー)
適用対象: 従業員テナント 外部テナント (詳細情報)
カスタム構成の OpenID Connect (OIDC) ID プロバイダーとのフェデレーションを設定することで、ユーザーがフェデレーション外部プロバイダーの既存のアカウントを使用してアプリケーションにサインアップしてサインインできるようになります。 この OIDC フェデレーションにより、OpenID Connect プロトコルに準拠するさまざまなプロバイダーとの認証が可能になります。
ユーザー フローのサインイン オプションに OIDC ID プロバイダーを追加すると、ユーザーはサインアップして、そのユーザー フローで定義されている登録済みアプリケーションにサインインできます。 これは、OIDC ID プロバイダーの資格情報を使用して行うことができます。 (顧客向けの認証方法と ID プロバイダー
前提 条件
- 外部テナント。
- テナント内の登録済みアプリケーション。
- サインアップとサインインのユーザー フロー。
OpenID Connect ID プロバイダーを設定する
ユーザーを ID プロバイダーにフェデレーションできるようにするには、まず、Microsoft Entra ID テナントからのフェデレーション要求を受け入れるように ID プロバイダーを準備する必要があります。 そのためには、リダイレクト URI を設定し、認識されるように ID プロバイダーに登録する必要があります。
次の手順に進む前に、次のようにリダイレクト URI を設定します。
https://<tenant-subdomain>.ciamlogin.com/<tenant-ID>/federation/oauth2
https://<tenant-subdomain>.ciamlogin.com/<tenant-subdomain>.onmicrosoft.com/federation/oauth2
ID プロバイダーでのサインインとサインアップを有効にする
ID プロバイダーのアカウントを持つユーザーのサインインとサインアップを有効にするには、Microsoft Entra ID をアプリケーションとして ID プロバイダーに登録する必要があります。 この手順により、ID プロバイダーはフェデレーションのために Microsoft Entra ID を認識してトークンを発行できます。 設定されたリダイレクト URI を使用してアプリケーションを登録します。 ID プロバイダー構成の詳細を保存して、Microsoft Entra External ID テナントにフェデレーションを設定します。
フェデレーション設定
Microsoft Entra External ID で ID プロバイダーとの OpenID 接続フェデレーションを構成するには、次の設定が必要です。
- 既知のエンドポイント
- 発行者 URI
- クライアント ID
- クライアント認証方法
- クライアント シークレット
- スコープ
- 応答の種類
- クレームマッピング (省略可能)
- サブ
- 名前
- 指定された名前
- 姓
- 電子メール
- メールが確認されました
- 電話番号
- 電話番号が確認されました
- 番地
- 地域
- 地域
- 郵便番号
- 国
管理センターで新しい OpenID 接続 ID プロバイダーを構成する
ID プロバイダーを構成した後、この手順では、Microsoft Entra 管理センターで新しい OpenID 接続フェデレーションを構成します。
少なくとも 外部 ID プロバイダー管理者として、Microsoft Entra 管理センター にサインインします。
[ID]>[外部 ID]>[すべての ID プロバイダー] の順に移動します。
「カスタム」タブを選択し、「新しい>Open ID Connectを追加」を選択します。
ID プロバイダーの次の詳細を入力します。
表示名: サインインおよびサインアップ フロー中にユーザーに表示される ID プロバイダーの名前。 たとえば、IdP 名 でサインインするか、IdP 名でサインアップします。
既知のエンドポイント (メタデータ URI とも呼ばれます) は、ID プロバイダーの構成情報 を取得OIDC 検出 URI です。 既知の場所から取得する応答は、OAuth 2.0 エンドポイントの場所を含む JSON ドキュメントです。 メタデータ ドキュメントには、少なくとも、 issuer
、authorization_endpoint
、token_endpoint
、token_endpoint_auth_methods_supported
、response_types_supported
、subject_types_supported
、jwks_uri
の各プロパティが含まれている必要があることに注意してください。 詳細については、OpenID Connect Discovery の仕様参照してください。 OpenID 発行者 URI: アプリケーションのアクセス トークンを発行する ID プロバイダーのエンティティ。 たとえば、OpenID Connect を使用して Azure AD B2Cとのフェデレーションを
する場合、発行者 URI は"発行者" タグを持つ探索 URI から取得でき、 のようになります。 発行者 URI は、https スキームを使用する大文字と小文字が区別される URL で、スキーム、ホスト、および必要に応じて、ポート番号とパスのコンポーネントが含まれており、クエリまたはフラグメント コンポーネントはありません。
手記
他の Microsoft Entra テナントを外部 ID プロバイダーとして構成することは現在サポートされていません。 その結果、発行者 URI の
microsoftonline.com
ドメインは受け入れまれません。- クライアント ID と クライアント シークレット は、登録されているアプリケーション サービスを識別するために ID プロバイダーが使用する識別子です。 client_secret認証が選択されている場合は、クライアント シークレットを指定する必要があります。 private_key_jwtが選択されている場合は、プロパティ jwks_uriを介して取得可能な OpenID プロバイダー メタデータ (既知のエンドポイント) に秘密キーを指定する必要があります。
- クライアント認証 は、トークン エンドポイントを使用して ID プロバイダーで認証するために使用するクライアント認証方法の種類です。
client_secret_post
、client_secret_jwt
、およびprivate_key_jwt
の認証方法がサポートされています。
手記
セキュリティの問題の可能性があるため、client_secret_basicクライアント認証方法はサポートされていません。
- スコープ では、ID プロバイダーから収集する情報とアクセス許可 (
openid profile
など) を定義します。 ID プロバイダーから ID トークンを受信するには、OpenID Connect 要求にスコープ内のopenid
スコープ値が含まれている必要があります。 その他のスコープは、スペースで区切って追加できます。profile
、email
など、使用可能な他のスコープを確認するには、OpenID Connect のドキュメント を参照してください。 - 応答の種類 は、ID プロバイダーの
authorization_endpoint
への最初の呼び出しで返される情報の種類を示します。 現時点では、code
応答の種類のみがサポートされています。 現時点では、id_token
とtoken
はサポートされていません。
[次へ: 要求マッピング] を選択して要求マッピングを構成するか、[確認と作成] を選択して ID プロバイダーを追加できます。
手記
Microsoft は、暗黙的な許可フローまたは ROPC フローを使用 "しない" ことをお勧めします。 そのため、OpenID Connect 外部 ID プロバイダーの構成では、これらのフローはサポートされません。 SPA をサポートする推奨される方法は、OIDC フェデレーション構成でサポートされている OAuth 2.0 Authorization コード フロー (PKCE を使用)
OIDC ID プロバイダーをユーザー フローに追加する
この時点で、OIDC ID プロバイダーは Microsoft Entra ID で設定されていますが、どのサインイン ページでもまだ使用できません。 OIDC ID プロバイダーをユーザー フローに追加するには:
外部テナントで、[ID]>[外部 ID]>[ユーザー フロー] の順に移動します。
OIDC ID プロバイダーを追加するユーザー フローを選択します。
[設定] で、ID プロバイダーを選択します。
その他の ID プロバイダーでは、OIDC ID プロバイダーを選択します。
[保存] を選択します。