例: AD FS を使用して SAML/WS-Fed ベースの ID プロバイダー フェデレーションを構成する

Note

  • Microsoft Entra External ID の 直接フェデレーション は、SAML/WS-Fed ID プロバイダー (IdP) フェデレーション と呼ばれるようになりました。

この記事では、Active Directory フェデレーション サービス (AD FS) を SAML 2.0 または WS-Fed IdP として使用して SAML/WS-Fed IdP フェデレーションを設定する方法について説明します。 フェデレーションをサポートするには、IdP に特定の属性とクレームを構成する必要があります。 フェデレーション用の IdP を構成する方法を示すために、例として Active Directory フェデレーション サービス (AD FS) を使用します。 AD FS を SAML IdP として設定する方法と、WS-Fed IdP として設定する方法の両方を紹介します。

Note

この記事では、わかりやすいように、AD FS を SAML 用に設定する方法と、WS-Fed 用に設定する方法の両方について説明します。 IdP が AD FS であるフェデレーションの統合には、WS-Fed をプロトコルとして使用することをお勧めします。

AD FS を SAML 2.0 のフェデレーション用に構成する

Microsoft Entra B2B は、以下に示す特定の要件を伴う SAML プロトコルを使用する IdP とフェデレーションを行うように構成できます。 SAML の構成手順を説明するために、このセクションでは SAML 2.0 用に AD FS を設定する方法を示します。

フェデレーションを設定するには、IdP からの SAML 2.0 応答において以下の属性が受け取られる必要があります。 これらの属性は、オンライン セキュリティ トークン サービスの XML ファイルにリンクするか手動で入力することによって、構成できます。 「Create a test AD FS instance」(AD FS テスト インスタンスの作成) のステップ 12 では、AD FS エンドポイントを検索する方法や、メタデータ URL (たとえば https://fs.iga.azure-test.net/federationmetadata/2007-06/federationmetadata.xml) を生成する方法について説明しています。

属性
AssertionConsumerService https://login.microsoftonline.com/login.srf
対象ユーザー urn:federation:MicrosoftOnline
発行者 パートナー IdP の発行者 URI (たとえば http://www.example.com/exk10l6w90DHM0yi...)

IdP によって発行される SAML 2.0 トークン内に以下のクレームが構成されている必要があります。

属性
NameID の形式 urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
emailaddress http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

次のセクションでは、SAML 2.0 IdP の例として、AD FS を使用して必須の属性とクレームを構成する方法について説明します。

開始する前に

この手順を開始する前に、AD FS サーバーが既に設定されていて稼働している必要があります。

要求記述を追加する

  1. ご利用の AD FS サーバー上で、 [ツール]>[AD FS の管理] を選択します。

  2. ナビゲーション ウィンドウで、 [サービス]>[要求記述] を選択します。

  3. [操作][要求記述の追加] を選択します。

  4. [要求記述の追加] ウィンドウで、次の値を指定します。

    • [表示名] : 永続的な識別子
    • 要求識別子: urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
    • [このフェデレーション サービスが受け付けることができる要求の種類としてこの要求記述をフェデレーション メタデータで公開する] のチェック ボックスをオンにします。
    • [このフェデレーション サービスが送信できる要求の種類としてこの要求記述をフェデレーション メタデータで公開する] のチェック ボックスをオンにします。
  5. [OK] を選択します。

証明書利用者信頼を追加する

  1. AD FS サーバーで、[ツール]>[AD FS の管理] に移動します。

  2. ナビゲーション ウィンドウで、[証明書利用者信頼] を選択します。

  3. [操作][証明書利用者信頼の追加] を選択します。

  4. 証明書利用者信頼ウィザードで、[要求に対応する] を選択してから、[開始] をクリックします。

  5. [データ ソースの選択] セクションで、[オンラインまたはローカル ネットワークで公開されている証明書利用者についてのデータをインポートする] のチェック ボックスを選択します。 次のフェデレーション メタデータ URL を入力します: https://nexus.microsoftonline-p.com/federationmetadata/saml20/federationmetadata.xml[次へ] を選択します。

  6. その他の設定は、既定のオプションのままにしておきます。 [次へ] を選択して続行し、最後に [閉じる] を選択してウィザードを閉じます。

  7. [AD FS の管理][証明書利用者信頼] で、作成した証明書利用者信頼を右クリックして、[プロパティ] を選びます。

  8. [監視] タブで、[証明書利用者を監視する] ボックスをオフにします。

  9. [識別子] タブで、サービス パートナーの Microsoft Entra テナントのテナント ID を使って [証明書利用者の識別子] テキスト ボックスに「https://login.microsoftonline.com/<tenant ID>/」と入力します。 [追加] を選択します。

    Note

    テナント ID の後のスラッシュ (/) を必ず含めてください (例: https://login.microsoftonline.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/)。

  10. [OK] を選択します。

要求規則を作成する

  1. 作成した証明書利用者信頼を右クリックしてから、[要求発行ポリシーの編集] を選択します。

  2. 要求規則の編集ウィザードで、[規則の追加] を選択します。

  3. [要求規則テンプレート] で、[LDAP 属性を要求として送信] を選択します。

  4. [要求規則の構成] で、次の値を指定します。

    • [要求規則名] : 電子メール要求規則
    • [属性ストア] : Active Directory
    • [LDAP 属性] : 電子メール アドレス
    • [出力方向の要求の種類] : 電子メール アドレス
  5. [完了] を選択します。

  6. [規則の追加] を選択します。

  7. [要求規則テンプレート] で、[入力方向の要求を変換] を選択してから、[次へ] を選択します。

  8. [要求規則の構成] で、次の値を指定します。

    • [要求規則名] : 電子メール変換規則
    • [入力方向の要求の種類] : 電子メール アドレス
    • [出力方向の要求の種類] : 名前 ID
    • [出力方向の名前 ID 形式] : 永続的な識別子
    • [すべての要求値をパススルーする] を選択します。
  9. [完了] を選択します。

  10. [要求規則の編集] ペインに新しい規則が表示されます。 [適用] を選びます。

  11. [OK] を選択します。 これで、SAML 2.0 プロトコルを使用したフェデレーション用に AD FS サーバーが構成されました。

AD FS を WS-Fed フェデレーション用に構成する

Microsoft Entra B2B は、以下に示す特定の要件に従って、WS-Fed プロトコルを使用する IdP と連携するように構成できます。 現時点で 2 つの WS-Fed プロバイダー が、AD FS と Shibboleth を含む Microsoft Entra ID との互換性テスト済みです。 ここでは、WS-Fed IdP の例として、Active Directory フェデレーション サービス (AD FS) を使用します。 WS-Fed 準拠のプロバイダーと Microsoft Entra External ID の間に証明書利用者信頼を確立する方法の詳細については、Microsoft Entra ID プロバイダーの互換性に関するドキュメントをダウンロードしてください。

フェデレーションを設定するには、IdP からの WS-Fed メッセージにおいて以下の属性が受け取られる必要があります。 これらの属性は、オンライン セキュリティ トークン サービスの XML ファイルにリンクするか手動で入力することによって、構成できます。 「Create a test AD FS instance」(AD FS テスト インスタンスの作成) のステップ 12 では、AD FS エンドポイントを検索する方法や、メタデータ URL (たとえば https://fs.iga.azure-test.net/federationmetadata/2007-06/federationmetadata.xml) を生成する方法について説明しています。

属性
PassiveRequestorEndpoint https://login.microsoftonline.com/login.srf
対象ユーザー urn:federation:MicrosoftOnline
発行者 パートナー IdP の発行者 URI (たとえば http://www.example.com/exk10l6w90DHM0yi...)

IdP によって発行される WS-Fed トークンに必須の要求:

属性
ImmutableID http://schemas.microsoft.com/LiveID/Federation/2008/05/ImmutableID
emailaddress http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

次のセクションでは、WS-Fed IdP の例として、AD FS を使用して必須の属性とクレームを構成する方法について説明します。

開始する前に

この手順を開始する前に、AD FS サーバーが既に設定されていて稼働している必要があります。

証明書利用者信頼を追加する

  1. AD FS サーバー上で、 [ツール]>[AD FS の管理] に移動します。

  2. ナビゲーション ウィンドウで、 [信頼関係]>[証明書利用者信頼] を選択します。

  3. [操作][証明書利用者信頼の追加] を選択します。

  4. 証明書利用者信頼の追加ウィザードで、[要求に対応する] を選んでから、[開始] を選びます。

  5. [データ ソースの選択] セクションで、[証明書利用者についてのデータを手動で入力する] を選択してから、[次へ] をクリックします。

  6. [表示名の指定] ページで、[表示名] に名前を入力します。 必要に応じて、この証明書利用者信頼の説明を [メモ] セクションに入力できます。 [次へ] を選択します。

  7. [証明書の構成] ページでは、トークン暗号化証明書がある場合は、必要に応じて、[参照] をクリックして証明書ファイルを指定します。 [次へ] を選択します。

  8. [URL の構成] ページでは、[WS-Federation のパッシブ プロトコルのサポートを有効にする] チェック ボックスをオンにします。 [証明書利用者 WS-Federation パッシブ プロトコルの URL] に、次の URL を入力します: https://login.microsoftonline.com/login.srf

  9. [次へ] を選択します。

  10. [識別子の構成] ページで、次の URL を入力して [追加] を選びます。 2 番目の URL に、サービス パートナーの Microsoft Entra テナントのテナント ID を入力します。

    • urn:federation:MicrosoftOnline
    • https://login.microsoftonline.com/<tenant ID>/

    Note

    テナント ID の後のスラッシュ (/) を必ず含めてください (例: https://login.microsoftonline.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/)。

  11. [次へ] を選択します。

  12. [アクセス制御ポリシーの選択] ページで、ポリシーを選んでから、[次へ] を選びます。

  13. [信頼の追加の準備完了] ページで、設定を確認し、[次へ] を選んで証明書利用者信頼の情報を保存します。

  14. [完了] ページで、[閉じる] を選びます。 証明書利用者信頼を選び、[要求発行ポリシーの編集] を選びます。

要求規則を作成する

  1. 作成した証明書利用者信頼を選んでから、[要求発行ポリシーの編集] を選びます。

  2. [規則の追加] を選択します。

  3. [LDAP 属性を要求として送信] を選んで、[次へ] を選びます。

  4. [要求規則の構成] で、次の値を指定します。

    • [要求規則名] : 電子メール要求規則
    • [属性ストア] : Active Directory
    • [LDAP 属性] : 電子メール アドレス
    • [出力方向の要求の種類] : 電子メール アドレス
  5. [完了] を選択します。

  6. 同じ要求規則の編集ウィザードで、[規則の追加] を選択します。

  7. [カスタム規則を使用して要求を送信] を選んでから、[次へ] を選びます。

  8. [要求規則の構成] で、次の値を指定します。

    • [要求規則名] : 不変 ID の発行
    • カスタム規則: c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"] => issue(store = "Active Directory", types = ("http://schemas.microsoft.com/LiveID/Federation/2008/05/ImmutableID"), query = "samAccountName={0};objectGUID;{1}", param = regexreplace(c.Value, "(?<domain>[^\\]+)\\(?<user>.+)", "${user}"), param = c.Value);
  9. [完了] を選択します。

  10. [OK] を選択します。 これで、WS-Fed を使用したフェデレーション用に AD FS サーバーが構成されました。

次のステップ

次に、Azure portal で、または Microsoft Graph API を使用して、Microsoft Entra 外部 ID で SAML/WS-Fed IdP フェデレーションを構成します。