ゲスト ユーザー向けの SAML/WS-Fed ID プロバイダーとのフェデレーション

注意

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

この記事では、ID プロバイダー (IdP) により SAML 2.0 または WS-Fed プロトコルがサポートされている組織とのフェデレーションを設定する方法について説明します。 パートナーの IdP とのフェデレーションを設定すると、そのドメインに属する新しいゲスト ユーザーが、各自の IdP マネージド組織アカウントを使用してお客様の Azure AD テナントにサインインし、お客様との共同作業を開始できます。 ゲスト ユーザーが別個の Azure AD アカウントを作成する必要はありません。

重要

  • 新しい SAML/WS-Fed IdP フェデレーションの IdP の許可リストはサポートされなくなりました。 新しい外部フェデレーションを設定する場合は、「手順 1: パートナーが DNS テキスト レコードを更新する必要があるかどうかを判断する」を参照してください。
  • 外部フェデレーションに対して Azure AD によって送信された SAML 要求では、発行者 URL はテナント エンドポイントです。 新しいフェデレーションでは、すべてのパートナーは、SAML または WS-Fed ベースの IdP の対象ユーザーをテナントのエンドポイントに設定することをお勧めします。 下記の SAML 2.0 および WS-Fed の必須の属性および要求のセクションを参照してください。 グローバル エンドポイントを使用して構成された既存のフェデレーションは引き続き機能しますが、外部の IdP が SAML 要求でグローバル発行者 URL を想定している場合、新しいフェデレーションは動作を停止します。
  • 単一ドメインの制限は削除されました。 複数のドメインを個々のフェデレーション構成に関連付けられるようになりました。
  • 認証 URL ドメインがターゲット ドメインと一致するか、許可されている IdP からのものである必要があるという制限が削除されました。 詳細については、「手順 1: パートナーが DNS テキスト レコードを更新する必要があるかどうかを判断する」を参照してください。

ゲスト ユーザーが SAML/WS-Fed IdP フェデレーションで認証されるタイミング

組織の SAML/WS-Fed IdP とのフェデレーションを設定すると、お客様が招待する新しいゲスト ユーザーは、その SAML/WS-Fed IdP を使用して認証されます。 フェデレーションを設定しても、お客様からの招待を既に利用したゲスト ユーザーに対する認証方法は変更されない点に留意することが重要です。 次に例をいくつか示します。

  • ゲスト ユーザーがお客様からの招待を既に利用した後に組織の SAML/WS-Fed IdP とのフェデレーションを設定した場合、それらのゲスト ユーザーは、フェデレーション設定前に使用していたのと同じ認証方法を引き続き使用することになります。
  • 組織の SAML/WS-Fed IdP とのフェデレーションを設定してゲスト ユーザーを招待し、それ以降にそのパートナー組織が Azure AD に移行した場合、お客様のテナント内にフェデレーション ポリシーが存在する限り、既に招待を利用したゲスト ユーザーは引き続きフェデレーション SAML/WS-Fed IdP を使用します。
  • 組織の SAML/WS-Fed IdP とのフェデレーションを削除すると、SAML/WS-Fed IdP を現在使用しているすべてのゲスト ユーザーはサインインできなくなります。

これらのいずれのシナリオでも、利用状態をリセットすることで、ゲスト ユーザーの認証方法を更新できます。

SAML/WS-Fed IdP フェデレーションは、contoso.com や fabrikam.com などのドメイン名前空間に関連付けられます。 組織では、AD FS またはサード パーティの IdP とのフェデレーションを確立するときに、これらの IdP に 1 つ以上のドメイン名前空間を関連付けます。

エンド ユーザー エクスペリエンス

SAML/WS-Fed IdP フェデレーションを使用すると、ゲスト ユーザーは各自の組織アカウントを使用してお客様の Azure AD テナントにサインインします。 共有リソースへのアクセス時にサインインを求められると、ユーザーは自分の IdP にリダイレクトされます。 サインインが成功した後、ユーザーは Azure AD に戻ってリソースにアクセスします。 更新トークンの有効期間は 12 時間 (Azure AD でのパススルー更新トークンの既定の期間) です。 連携した IdP で SSO が有効な場合、ユーザーは SSO を体験することになり、初回認証後にサインインを求めるメッセージは表示されません。

サインインのエンドポイント

SAML/WS-Fed IdP フェデレーションのゲスト ユーザーは、共通のエンドポイント (つまり、テナント コンテキストを含まない一般的なアプリ URL) を使用して、マルチテナントまたは Microsoft のファーストパーティ アプリにサインインできるようになりました。 サインイン プロセス中に、ゲスト ユーザーは [サインイン オプション] を選択してから、 [Sign in to an organization](組織にサインイン) を選択します。 次に、ユーザーは組織の名前を入力し、自分の資格情報を使用してサインインを続行します。

SAML/WS-Fed IdP フェデレーションのゲスト ユーザーは、テナント情報を含むアプリケーション エンドポイントを使用することもできます。次に例を示します。

  • https://myapps.microsoft.com/?tenantid=<your tenant ID>
  • https://myapps.microsoft.com/<your verified domain>.onmicrosoft.com
  • https://portal.azure.com/<your tenant ID>

また、https://myapps.microsoft.com/signin/Twitter/<application ID?tenantId=<your tenant ID> のようにテナント情報を含めることによって、アプリケーションまたはリソースへの直接リンクをゲスト ユーザーに提供することもできます。

よく寄せられる質問

Azure AD の検証済みドメインを使用して SAML/WS-Fed IdP フェデレーションを設定できますか。

いいえ、Azure AD の検証済みドメインに対する SAML/WS-Fed IdP のフェデレーションをブロックし、ネイティブの Azure AD マネージド ドメイン機能を採用しています。 Azure AD で DNS 検証済みのドメインと SAML/WS-Fed IdP フェデレーションを設定しようとした場合は、エラーが表示されます。

アンマネージド (電子メールで検証済み) テナントが存在するドメインとの SAML/WS-Fed IdP フェデレーションを設定できますか。

はい、管理されていない (電子メール検証済みまたは "バイラル" な) Azure AD テナントなど、Azure AD で DNS 検証されていないドメインと SAML/WS-Fed IdP フェデレーションを設定できます。 そのようなテナントは、ユーザーが B2B の招待に応じたときや、現在は存在しないドメインを使用して Azure AD のセルフサービス サインアップを実行したときに作成されます。 ドメインが検証されておらず、テナントで管理者の引き継ぎが実施されていない場合は、そのドメインとのフェデレーションを設定できます。

フェデレーション関係はいくつ作成できますか。

現在のところ、最大 1000 のフェデレーション リレーションシップがサポートされています。 この制限には、内部フェデレーションと SAML/WS-Fed IdP フェデレーションの両方が含まれます。

同じテナントから、複数のドメインとのフェデレーションを設定できますか。

同じテナントの複数のドメインとの SAML/WS-Fed IdP フェデレーションがサポートされるようになりました。

署名証明書は、有効期限切れになるときに更新する必要がありますか。

IdP の設定でメタデータ URL を指定した場合、署名証明書が有効期限切れになると、Azure AD によって自動的に更新されます。 ただし、証明書が有効期限切れになる前に何らかの理由でローテーションされた場合、またはメタデータ URL を指定しなかった場合には、Azure AD による更新はできません。 この場合、署名証明書を手動で更新する必要があります。

SAML/WS-Fed IdP フェデレーションと電子メールのワンタイム パスコード認証の両方が有効な場合、どちらの方法が優先されますか。

パートナー組織との SAML/WS-Fed IdP フェデレーションが確立すると、その組織に属する新しいゲスト ユーザーに対して、電子メールのワンタイム パスコード認証よりもこちらが優先されます。 SAML/WS-Fed IdP フェデレーションを設定する前にゲスト ユーザーがワンタイム パスコード認証を使用して招待を利用した場合、彼らは引き続きワンタイム パスコード認証を使用することになります。

SAML/WS-Fed IdP フェデレーションは、部分的に同期されたテナントに起因するサインインの問題に対応していますか。

いいえ。このシナリオでは、電子メールのワンタイム パスコード機能を使用する必要があります。 "部分的に同期されたテナント" とは、オンプレミスのユーザー ID がクラウドに完全には同期されていないパートナーの Azure AD テナントのことです。 クラウド上に ID がまだ存在していないゲストが、B2B の招待を利用しようとした場合、そのゲストはサインインできません。 ワンタイム パスコード機能であれば、このゲストをサインインさせることができます。 SAML/WS-Fed IdP フェデレーション機能は、ゲストが各自の IdP マネージド組織アカウントを持っているが、その組織に Azure AD が存在しないというシナリオに対応しています。

組織で SAML/WS-Fed IdP フェデレーションを構成したら、各ゲストは送付された個別の招待を利用する必要がありますか。

SAML/WS-Fed IdP フェデレーションを設定しても、お客様からの招待を既に利用したゲスト ユーザーに対する認証方法は変更されません。 ゲスト ユーザーの認証方法を更新するには、利用状態をリセットします。

署名された要求を SAML ID プロバイダーに送信する方法はありますか。

現在のところ、Azure AD SAML/WS-Fed フェデレーション機能では、署名された認証トークンを SAML ID プロバイダーに送信することはサポートされていません。

手順 1: パートナーが DNS テキスト レコードを更新する必要があるかどうかを判断する

パートナーの IdP によっては、パートナーが自身の DNS レコードを更新して、お客様とのフェデレーションを有効にすることが必要な場合があります。 DNS の更新が必要かどうかを判断するには、次の手順に従います。

Note

新しい SAML/WS-Fed IdP フェデレーションの IdP の許可リストはサポートされなくなりました。

  1. パートナーの IdP パッシブ認証 URL を調べて、ドメインがターゲット ドメインまたはターゲット ドメイン内のホストと一致するかどうかを確認します。 すなわち、fabrikam.com のフェデレーションを設定する場合は次のようになります。

    • パッシブ認証エンドポイントが https://fabrikam.com または https://sts.fabrikam.com/adfs (同じドメイン内のホスト) の場合、DNS の変更は必要ありません。
    • パッシブ認証エンドポイントが https://fabrikamconglomerate.com/adfs または https://fabrikam.com.uk/adfs の場合、ドメインは fabrikam.com ドメインと一致していないので、パートナーは DNS 構成に認証 URL のテキスト レコードを追加する必要があります。
  2. 前の手順に基づいて DNS の変更が必要な場合は、次の例のように、ドメインの DNS レコードに TXT レコードを追加するようにパートナーに依頼します。

    fabrikam.com.  IN   TXT   DirectFedAuthUrl=https://fabrikamconglomerate.com/adfs

手順 2: パートナー組織の IdP を構成する

次に、パートナー組織において、必須の要求と証明書利用者の信頼を指定して IdP を構成する必要があります。

注意

フェデレーション用に SAML/WS-Fed IdP を構成する方法を示すために、例として Active Directory フェデレーション サービス (AD FS) を使用します。 AD FS との SAML/WS-Fed IdP フェデレーションの構成に関する記事を参照してください。フェデレーションの準備として、AD FS を SAML 2.0 または WS-Fed の IdP として構成する方法の例が示されています。

SAML 2.0 の構成

Azure AD B2B は、以下に示す特定の要件を伴う SAML プロトコルを使用する IdP とフェデレーションを行うように構成できます。 ご利用の SAML IdP と Azure AD の間に信頼を設定する方法の詳細については、「シングル サインオンに SAML 2.0 ID プロバイダー (IdP) を使用する」を参照してください。

注意

SAML/WS-Fed IdP フェデレーションのターゲット ドメインは、Azure AD の DNS によって検証されていない必要があります。 詳細については、「よく寄せられる質問」セクションを参照してください。

必須の SAML 2.0 属性および要求

サード パーティの IdP に構成する必要がある特定の属性と要求の要件を次の各表に示します。 フェデレーションを設定するには、IdP からの SAML 2.0 応答において以下の属性が受け取られる必要があります。 これらの属性は、オンライン セキュリティ トークン サービスの XML ファイルにリンクするか手動で入力することによって、構成できます。

注意

次の値が、外部フェデレーションを設定しているクラウドと一致することを確認してください。

IdP からの SAML 2.0 応答に必須の属性:

属性
AssertionConsumerService https://login.microsoftonline.com/login.srf
対象ユーザー https://login.microsoftonline.com/<tenant ID>/ (推奨) <tenant ID> を、フェデレーションを設定する Azure AD テナントのテナント ID に置き換えます。

外部フェデレーションに対して Azure AD によって送信された SAML 要求では、発行者 URL はテナント エンドポイントです (例: https://login.microsoftonline.com/<tenant ID>/)。 新しいフェデレーションでは、すべてのパートナーは、SAML または WS-Fed ベースの IdP の対象ユーザーをテナントのエンドポイントに設定することをお勧めします。 グローバル エンドポイントを使用して構成された既存のフェデレーション (例: urn:federation:MicrosoftOnline) は引き続き機能しますが、外部の IdP が Azure AD によって送信された SAML 要求でグローバル発行者 URL を想定している場合、新しいフェデレーションは動作を停止します。
発行者 パートナーの IdP の発行者 URI (たとえば http://www.example.com/exk10l6w90DHM0yi...)

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

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

WS-Fed の構成

Azure AD B2B は、以下に示す特定の要件を伴う WS-Fed プロトコルを使用する IdP とフェデレーションを行うように構成できます。 現時点で 2 つの WS-Fed プロバイダー (AD FS と Shibboleth) が、Azure AD との互換性テスト済みです。 WS-Fed 準拠のプロバイダーと Azure AD の間に証明書利用者信頼を確立する方法の詳細については、Azure AD ID プロバイダーの互換性に関するドキュメントで「STS Integration Paper using WS Protocols」(WS プロトコルを使用した STS 統合に関する文書) を参照してください。

注意

フェデレーションのターゲット ドメインは Azure AD で DNS によって検証できません。 詳細については、「よく寄せられる質問」セクションを参照してください。

必須の WS-Fed 属性および要求

サード パーティの WS-Fed IdP に構成する必要がある特定の属性と要求の要件を次の各表に示します。 フェデレーションを設定するには、IdP からの WS-Fed メッセージにおいて以下の属性が受け取られる必要があります。 これらの属性は、オンライン セキュリティ トークン サービスの XML ファイルにリンクするか手動で入力することによって、構成できます。

注意

次の値が、外部フェデレーションを設定しているクラウドと一致することを確認してください。

IdP からの WS-Fed メッセージに必須の属性:

属性
PassiveRequestorEndpoint https://login.microsoftonline.com/login.srf
対象ユーザー https://login.microsoftonline.com/<tenant ID>/ (推奨) <tenant ID> を、フェデレーションを設定する Azure AD テナントのテナント ID に置き換えます。

外部フェデレーションに対して Azure AD によって送信された SAML 要求では、発行者 URL はテナント エンドポイントです (例: https://login.microsoftonline.com/<tenant ID>/)。 新しいフェデレーションでは、すべてのパートナーは、SAML または WS-Fed ベースの IdP の対象ユーザーをテナントのエンドポイントに設定することをお勧めします。 グローバル エンドポイントを使用して構成された既存のフェデレーション (例: urn:federation:MicrosoftOnline) は引き続き機能しますが、外部の IdP が Azure AD によって送信された SAML 要求でグローバル発行者 URL を想定している場合、新しいフェデレーションは動作を停止します。
発行者 パートナーの 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

手順 3: Azure AD で SAML/WS-Fed IdP フェデレーションを構成する

次に、手順 1 で構成した IdP とのフェデレーションを Azure AD で構成します。 Azure AD ポータルまたは Microsoft Graph API のいずれかを使用できます。 フェデレーション ポリシーが有効になるまで 5 分から 10 分かかる場合があります。 この間、フェデレーション ドメインの招待を利用しようとしないでください。 次の属性は必須です。

  • パートナーの IdP の発行者 URI
  • パートナー IdP のパッシブ認証エンドポイント (サポートされているのは https のみ)
  • Certificate

Azure AD ポータルでフェデレーションを構成するには

  1. Azure ポータルにアクセスします。 左ウィンドウで、 [Azure Active Directory] を選択します。

  2. [外部 ID]>[すべての ID プロバイダー] を選択します。

  3. [新しい SAML/WS-Fed IdP] を選択します。

    新しい SAML または WS-Fed IdP を追加するためのボタンを示すスクリーンショット。

  4. [新しい SAML/WS-Fed IdP] ページで、次のように入力します。

    • 表示名 - パートナーの IdP を識別するのに役立つ名前を入力します。
    • ID プロバイダー プロトコル - SAML または WS-Fed を選択します。
    • フェデレーション IdP のドメイン名 - フェデレーションに使用するパートナーの IdP ターゲットのドメイン名を入力します。 この初期構成時に、ドメイン名を 1 つだけ入力します。 後でドメインをさらに追加できるようになります。

    新しい SAML または WS-Fed IdP ページを示すスクリーンショット。

  5. メタデータを設定する方法を選択します。 メタデータを手動で入力するか、メタデータを含むファイルがある場合は [メタデータ ファイルの解析] を選択してファイルを参照することで、自動的にフィールドに入力することができます。

    • 発行者 URI - パートナーの IdP の発行者 URI。
    • パッシブ認証エンドポイント - パートナー IdP のパッシブ要求元エンドポイント。
    • 証明書 - 署名証明書 ID。
    • メタデータ URL - 署名証明書の自動更新に使用する IdP のメタデータの場所。

    メタデータ フィールドを示すスクリーンショット。

    注意

    メタデータ URL は省略可能ですが、強くお勧めします。 メタデータ URL を指定すると、署名証明書が有効期限切れになったときに、Azure AD によって自動的に更新することができます。 証明書が有効期限切れになる前に何らかの理由でローテーションされた場合、またはメタデータ URL を指定しなかった場合には、Azure AD による更新はできません。 この場合、署名証明書を手動で更新する必要があります。

  6. [保存] を選択します。 ID プロバイダーが SAML/WS-Fed ID プロバイダーの一覧に追加されます。

    新しいエントリーを含む SAML/WS-Fed プロバイダーの一覧を示すスクリーンショット。

  7. (省略可能) このフェデレーション ID プロバイダーにドメイン名を追加するには、次の手順を行います。

    a. [ドメイン] 列のリンクを選択します。

    SAML/WS-Fed ID プロバイダーにドメインを追加するためのリンクを示すスクリーンショット。

    b. [フェデレーション IdP のドメイン名] の横にドメイン名を入力し、[追加] を選択します。 追加するドメインごとに繰り返します。 完了したら、 [完了] をクリックします。

    ドメインの詳細ウィンドウの [追加] ボタンを示すスクリーンショット。

Microsoft Graph API を使用してフェデレーションを構成する方法

Microsoft Graph API samlOrWsFedExternalDomainFederation リソースの種類を使用して、SAML または WS-Fed プロトコルをサポートする ID プロバイダーとのフェデレーションを設定できます。

手順 4: Azure AD で SAML/WS-Fed IdP フェデレーションをテストする

ここでは、新しい B2B ゲスト ユーザーを招待して、フェデレーションの設定をテストします。 詳細については、「Azure Portal で Azure Active Directory B2B コラボレーション ユーザーを追加する」を参照してください。

証明書や構成の詳細はどのようにして更新できますか?

[すべての ID プロバイダー] ページで、構成した SAML/WS-Fed ID プロバイダーとその証明書の有効期限の一覧を表示できます。 この一覧から、証明書を更新したり、その他の構成の詳細を変更したりできます。

SAML WS-Fed リストの ID プロバイダーを示すスクリーンショット

  1. Azure ポータルにアクセスします。 左ウィンドウで、 [Azure Active Directory] を選択します。

  2. [外部 ID] を選択します。

  3. [すべての ID プロバイダー] を選択します。

  4. SAML/WS-Fed ID プロバイダーで、一覧にある ID プロバイダーまでスクロールするか、検索ボックスを使用します。

  5. 証明書を更新するか、構成の詳細を変更するには、次の手順を実行します。

    • ID プロバイダーの [構成] 列で、編集リンクを選択します。
    • 構成ページで、次の詳細から任意のものを変更します。
      • 表示名 - パートナーの組織の表示名。
      • ID プロバイダー プロトコル - SAML または WS-Fed を選択します。
      • パッシブ認証エンドポイント - パートナー IdP のパッシブ要求元エンドポイント。
      • 証明書 - 署名証明書の ID。 更新するには、新しい証明書 ID を入力します。
      • メタデータ URL - 署名証明書の自動更新に使用されるパートナーのメタデータを含む URL。
    • [保存] を選択します。

    IDP 構成の詳細のスクリーンショット。

  6. パートナーに関連付けられているドメインを編集するには、[ドメイン] 列のリンクを選択します。 ドメインの詳細ウィンドウで、次の操作を行います。

    • ドメインを追加するには、[フェデレーション IdP のドメイン名] の横にドメイン名を入力し、[追加] を選択します。 追加するドメインごとに繰り返します。
    • ドメインを削除するには、ドメインの横にある削除アイコンを選択します。
    • 完了したら、 [完了] をクリックします。

     ドメイン構成ページのスクリーンショット

    Note

    パートナーとのフェデレーションを削除するには、いずれかのドメインを除くすべてのドメインを削除し、次のセクションの手順に従います。

フェデレーションを削除する方法

フェデレーション構成は削除できます。 実行した場合、既に招待を利用したフェデレーション ゲスト ユーザーは、サインインできなくなります。 ただし、ユーザーの引き換え状態をリセットすることで、リソースへのアクセスを再度許可することができます。 Azure AD ポータルで IdP とのフェデレーションを削除するには、以下の手順を実行します。

  1. Azure ポータルにアクセスします。 左ウィンドウで、 [Azure Active Directory] を選択します。

  2. [外部 ID] を選択します。

  3. [すべての ID プロバイダー] を選択します。

  4. SAML/WS-Fed ID プロバイダーで、一覧にある ID プロバイダーまでスクロールするか、検索ボックスを使用します。

  5. [ドメイン] 列のリンクを選択して、IdP のドメインの詳細を表示します。

  6. [ドメイン名] の一覧にあるドメインのうち、1 つを除くすべてを削除します。

  7. [構成の削除] を選択し、[完了] を選択します。

    構成の削除のスクリーンショット。

  8. [OK] をクリックして削除を確認します。

Microsoft Graph API samlOrWsFedExternalDomainFederation リソースの種類を使用してフェデレーションを削除することもできます。

次のステップ

外部ユーザーがさまざまな ID プロバイダーでサインインするときの招待の利用エクスペリエンスを確認します。