ID プロバイダーの構成

完了

直接フェデレーションの名称は SAML/WS-Fed ID プロバイダー (IdP) フェデレーションになりました。 任意の組織の ID プロバイダー (IdP) が Security Assertion Markup Language (SAML) 2.0 または WS-Federation (WS-Fed) プロトコルをサポートしていれば、その組織とのフェデレーションを設定できます。 パートナーの IdP との SAML/WS-Fed IdP フェデレーションを設定すると、そのドメインの新しいゲスト ユーザーが、そのユーザー自身の IdP マネージド組織アカウントを使用して、あなたの Microsoft Entra テナントにサインインし、あなたとのコラボレーションを開始できます。 ゲスト ユーザーが別個の Microsoft Entra アカウントを作成する必要はありません。

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

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

  • ゲスト ユーザーは既に招待を引き換えているため、次に組織の SAML/WS-Fed IdP とのフェデレーションを設定します。 これらのゲスト ユーザーは、フェデレーションを設定する前に使用したのと同じ認証方法を引き続き使用します。
  • 組織の SAML/WS-Fed IdP とのフェデレーションを設定し、ゲスト ユーザーを招待した後、パートナー組織は Microsoft Entra ID に移行します。 既に招待を引き換え済みのゲスト ユーザーは、テナント内にフェデレーション ポリシーが存在するかぎり、フェデレーションされた 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 フェデレーションを使用すると、ゲスト ユーザーは各自の組織アカウントを使用してお客様の Microsoft Entra テナントにサインインします。 共有リソースへのアクセス時にサインインのダイアログが表示されると、ユーザーは自分の IdP にリダイレクトされます。 サインインが成功した後、ユーザーは Microsoft Entra ID に戻ってリソースにアクセスします。 Microsoft Entra セッションの有効期限が切れるか無効になり、フェデレーション IdP で SSO が有効になっている場合、ユーザーは SSO を体験します。 フェデレーション ユーザーのセッションが有効な場合、ユーザーに再度サインインのダイアログが表示されることはありません。 それ以外の場合、ユーザーはサインインのために IdP にリダイレクトされます。

Security Assertion Markup Language 2.0 構成

Microsoft Entra B2B は、以下に示す特定の要件に従って SAML プロトコルを使用する ID プロバイダーとフェデレーションを行うように構成できます。

Note

直接フェデレーションのターゲット ドメインを Microsoft Entra ID 上で DNS 検証済みにはできません。

必須となる Security Assertion Markup Language 2.0 の属性と要求

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

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

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

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

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

WS-Federation 構成

Microsoft Entra B2B は、以下に示すいくつかの特定の要件に従って WS-Fed プロトコルを使用する ID プロバイダーとフェデレーションを行うように構成できます。 現時点で 2 つの WS-Fed プロバイダー (AD FS と Shibboleth) が、Microsoft Entra ID との互換性テスト済みです。

直接フェデレーションのターゲット ドメインを Microsoft Entra ID 上で DNS 検証済みにはできません。 認証 URL のドメインは、ターゲット ドメインまたは許可されている ID プロバイダーのドメインに一致する必要があります。

必須となる WS-Federation の属性と要求

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

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

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

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

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

Google を B2B ゲスト ユーザーの ID プロバイダーとして追加する

Google とのフェデレーションを設定することで、招待されたユーザーが Microsoft アカウントを作成することなく、独自の Gmail アカウントを使用して共有アプリおよびリソースにサインインできるようにできます。

注意

Google フェデレーションは Gmail ユーザー専用に設計されています。 G Suite ドメインとのフェデレーションを行うには、直接フェデレーションを使用します。

Google ユーザーのエクスペリエンスの内容

Google Gmail ユーザーに招待を送信すると、そのゲスト ユーザーは、テナント コンテキストが含まれているリンクを使用して共有アプリまたはリソースにアクセスする必要があります。 Google に既にサインインしているかどうかによって、エクスペリエンスが異なります。

  • Google にサインインしていないゲストユーザーには、そうするように求めるメッセージが表示されます。
  • Google に既にサインインしているゲスト ユーザーには、使用するアカウントの選択を求めるメッセージが表示されます。 招待に使用されたアカウントを選択する必要があります。

"header too long" エラーが表示されたゲスト ユーザーは、Cookie を消去するか、プライベート (シークレット) ウィンドウを開いて、再度サインインしてみることができます。

Screenshot of shows the Google sign-in page. Users have to sign-in for access.

WebView サインイン サポートの廃止

Google では、埋め込み Web ビューのサインイン サポートが非推奨になりました (2021 年 9 月 30 日より)。 アプリが埋め込みの Web ビューでユーザーの認証を行っており、外部ユーザーの招待やセルフサービス サインアップに Microsoft Entra B2C または Microsoft Entra B2B との Google フェデレーションを使用している場合、Google Gmail ユーザーは認証を行うことができません。

Gmail ユーザーに影響を与える既知のシナリオを次に示します。

  • Windows 上の Microsoft アプリ (Teams や Power Apps など)。
  • WebView コントロール、WebView2、または古い WebBrowser コントロールを認証で使用する Windows アプリ。 これらのアプリは、Web アカウント マネージャー (WAM) フローの使用へ移行する必要があります。
  • WebView UI 要素を使用した Android アプリケーション。
  • UIWebView または WKWebview を使用した iOS アプリケーション。
  • Microsoft 認証ライブラリを使用したアプリ。

この変更は、次のものには影響しません。

  • Web アプリ
  • web サイト経由でアクセスされる Microsoft 365 サービス (SharePoint オンライン、Office Web アプリ、Teams Web アプリなど)
  • 認証でシステム Web ビューを使用したモバイルアプリ (iOS の SFSafariViewController、Android のカスタム タブ)。
  • Google Workspace ID (たとえば、Google Workspace との SAML ベースのフェデレーションを使用している場合)。
  • Web アカウント マネージャー (WAM) または Web 認証ブローカー (WAB) を使用する Windows アプリ。

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

Teams では、すべてのデバイスで Google ゲスト ユーザーを完全にサポートしています。 Google ユーザーは、https://teams.microsoft.com などの一般的なエンドポイントから Teams にサインインできます。

他のアプリケーションの一般的なエンドポイントは、Google ユーザーをサポートしていない場合があります。 Google ゲスト ユーザーは、テナント情報が含まれるリンクを使用してサインインする必要があります。 次に例を示します。

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

https://myapps.microsoft.comhttps://portal.azure.com のようなリンクを Google ゲスト ユーザーが使おうとすると、エラーになります。

リンクにテナント情報が含まれている限り、アプリケーションまたはリソースへの直接リンクを Google ゲスト ユーザーに提供することもできます。 たとえば、https://myapps.microsoft.com/signin/Twitter/ application ID?tenantId= your tenant ID のように指定します。

手順 1:Google 開発者プロジェクトを構成する

最初に、Google Developers Console で新しいプロジェクトを作成して、後で Microsoft Entra ID に追加できるようにクライアント ID とクライアント シークレットを取得します。

  1. https://console.developers.google.com で Google API に移動し、Google アカウントでサインインします。 共有のチーム Google アカウントを使用することをお勧めします。

  2. サービスの使用条件への同意を求めるメッセージが表示されたらそのようにします。

  3. 新しいプロジェクトを作成します。ダッシュボードで、[プロジェクトの作成] を選択し、プロジェクトに名前 (たとえば、Microsoft Entra B2B など) を付けてから、[作成] を選択します。

    Screenshot of the New Project page within the Google developers page.

  4. [API とサービス] ページで、新しいプロジェクトの [表示] を選択します。

  5. API カードで [Go to APIs overview](API の概要に移動) を選択します。 [OAuth 同意画面] を選択します。

  6. [External](外部) を選択し、 [Create](作成) を選択します。

  7. [OAuth 同意画面] で、 [Application name](アプリケーション名) を入力します。

    Screenshot of the Google OAuth consent screen. Users have to confirm their usage.

  8. [Authorized domains](承認済みドメイン) セクションまでスクロールし、「microsoftonline.com」と入力します。

    Screenshot of the Authorized domains section, showing with Google domains are valid.

  9. [保存] を選択します。

  10. [Credentials](資格情報) を選択します。 [Create credentials](認証情報の作成) メニューで、 [OAuth client ID](OAuth クライアント ID) を選択します。

    Screenshot of the Google APIs Create credentials menu. Configure your credentials here.

  11. [アプリケーションの種類][Web アプリケーション] を選択します。 アプリケーションに適切な名前 (Microsoft Entra B2B など) を付けます。 [Authorized redirect URIs](承認されたリダイレクト URI) に、次の URI を入力します。

    • https://login.microsoftonline.com
    • https://login.microsoftonline.com/te/ tenant ID /oauth2/authresp (tenant ID は Azure 内のテナント ID です)

    Screenshot of the Authorized redirect URIs section. Where do users go to validate authorization.

  12. [作成] を選択します。 クライアント ID とクライアント シークレットをコピーします。 これらは、Azure portal で ID プロバイダーを追加するときに使用します。

    Screenshot of the OAuth client ID and client secret. Set your access secret.

ステップ 2: Microsoft Entra ID で Google フェデレーションを構成する

次に、Google クライアント ID とクライアント シークレットを設定します。 Azure portal または PowerShell を使用して行うことができます。 自分自身を招待することで、Google フェデレーションの構成をテストしてください。 Gmail アドレスを使用し、招待を自分の招待された Google アカウントと引き換えてみます。

Azure portal で Google フェデレーションを構成するには

  1. Azure portal に移動します。 左ペインで、[Microsoft Entra ID] を選択します。

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

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

  4. 前に取得したクライアント ID とクライアント シークレットを入力します。 [保存] を選択します。

    Screenshot of Add Google identity provider page. You have to enter the Client ID and Client secret from previous steps.

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

Google フェデレーション セットアップは削除できます。 そのようにした場合、既に招待を引き換え済みの Google ゲスト ユーザーは、サインインできなくなります。 しかし、ディレクトリから削除し、再招待することで、リソースへのアクセス権をもう一度付与することができます。

Microsoft Entra ID で Google フェデレーションを削除するには

  1. Azure portal に移動します。 左ペインで、[Microsoft Entra ID] を選択します。

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

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

  4. [Google] の行で、省略記号ボタン [...] を選択して、 [削除] を選択します。

    Screenshot of the Delete the Google identity provider page. Use the ellipsis at the end to open the delete command.

  5. [はい] を選択して、削除を確認します。

外部 ID 用の ID プロバイダーとして Facebook を追加する

Facebook をセルフサービス サインアップのユーザー フロー (プレビュー) に追加して、ユーザーが自分の Facebook アカウントを使用してアプリケーションにサインインできるようにすることができます。 ユーザーが Facebook を使用してサインインできるようにします。テナントに対してセルフサービス サインアップを有効にする必要があります。 Facebook を ID プロバイダーとして追加した後、アプリケーションに対するユーザー フローを設定し、サインイン オプションの 1 つとして Facebook を選択します。

注意

ユーザーは、セルフサービス サインアップおよびユーザー フローを使用したアプリ経由のサインアップに限り、Facebook アカウントを使用できます。 ユーザーは招待されても、Facebook アカウントを使用して招待を利用することはできません。

Facebook 開発者コンソールでアプリを作成する

ID プロバイダーとして Facebook アカウントを使用するには、Facebook 開発者コンソールでアプリケーションを作成する必要があります。 まだ Facebook アカウントを持っていない場合は、https://www.facebook.com/ でサインアップできます。

注意

以下のステップ 9 と 16 では、次の URL を使用します。

  • [サイトの URL] には、https://contoso.com など、アプリケーションのアドレスを入力します。
  • [Valid OAuth redirect URIs](有効な OAuth リダイレクト URI) には、「https://login.microsoftonline.com/te/ tenant-id /oauth2/authresp」と入力します。 tenant-ID は、[Microsoft Entra ID の概要] 画面で確認できます。
  1. Facebook アカウントの資格情報を使用して、開発者向けの Facebookにサインインします。
  2. まだ登録していない場合は、Facebook 開発者として登録する必要があります。 ページの右上隅にある [Get Started](スタートガイド) を選び、Facebook のポリシーに同意して登録手順を完了します。
  3. [マイ アプリ] を選択し、 [アプリの作成] を選択します。
  4. [表示名] および有効な [連絡先の電子メール] を入力します。
  5. [Create App ID](アプリ ID の作成) を選択します。 Facebook プラットフォーム ポリシーを受け入れ、オンライン セキュリティ チェックを完了する必要があります。
  6. [Settings](設定) を選んでから、[Basic](基本) を選びます。
  7. [Category](カテゴリ) を選択します (たとえば [Business and Pages](ビジネスとページ))。 この値は Facebook で必要ですが、Microsoft Entra ID では使用されません。
  8. ページの下部で、 [プラットフォームの追加][Web サイト] の順に選択します。
  9. [Site URL](サイトの URL) に、適切な URL を入力します (上に記載)。
  10. [Privacy Policy URL](プライバシー ポリシーの URL) に、アプリケーションのプライバシー情報が保持されているページの URL を入力します (例: https://www.contoso.com)。
  11. [変更の保存] を選択します。
  12. ページの上部で、 [App ID] (アプリ ID) の値をコピーします。
  13. [Show (表示)] を選択し、 [App Secret (アプリ シークレット)] の値をコピーします。 テナントで ID プロバイダーとして Facebook を構成するには、この両方を使用します。 [App Secret] は、重要なセキュリティ資格情報です。
  14. [Products](製品) を選択し、 [Facebook Login](Facebook ログイン)[Set up](セットアップ) を選択します。
  15. [Facebook Login](Facebook ログイン)[Settings](設定) を選択します。
  16. [Valid OAuth redirect URIs](有効な OAuth リダイレクト URI) に、適切な URL を入力します (上に記載)。
  17. ページの下部にある [Save Changes](変更の保存) を選択します。
  18. Facebook アプリケーションを Microsoft Entra ID で利用できるようにするには、ページの右上にある [状態] セレクターを選択し、それを [オン] にしてアプリケーションをパブリックにした後、[モードの切り替え] を選択します。 この時点で、状態は開発からライブに変更されます。

ID プロバイダーとして Facebook アカウントを構成する

次に、Microsoft Entra 管理センターで入力するか、PowerShell を使用することで Facebook クライアント ID とクライアント シークレットを設定します。 セルフサービス サインアップが有効になっているアプリでユーザー フローを使用してサインアップすることで、Facebook の構成をテストすることができます。

Microsoft Entra ID 画面で Facebook フェデレーションを構成するには

  1. Microsoft Entra テナントの全体管理者として Azure portal にサインインします。

  2. Azure サービス で、Microsoft Entra ID を選択します。

  3. 左側のメニューで、 [External Identities] を選択します。

  4. [All identity providers](すべての ID プロバイダー) を選択してから、 [Facebook] を選択します。

  5. [クライアント ID] には、前に作成した Facebook アプリケーションのアプリ ID を入力します。

  6. [クライアント シークレット] には、記録したアプリ シークレットを入力します。

    Screenshot of the Add social identity provider page. Pick your social media provider.

  7. [保存] を選択します。

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

Facebook フェデレーション セットアップは削除できます。 それを行った場合、Facebook アカウントを使用してユーザー フローを通じてサインアップしたユーザーは、サインインできなくなります。

Microsoft Entra ID で Facebook フェデレーションを削除するには:

  1. Azure portal に移動します。 左側のウィンドウで、[Microsoft Entra ID] を選択します。
  2. [外部 ID] を選択します。
  3. [すべての ID プロバイダー] を選択します。
  4. [Facebook] 行で、コンテキスト メニュー ( ... ) を選択してから [Delete](削除) を選択します。
  5. [はい] を選択して削除を確定します。