Microsoft Entra ID(旧 Azure AD)の B2B ユーザー プロビジョニングとシングル サインオン

Last reviewed 2023-02-27 UTC

このドキュメントでは、Microsoft Entra ID(旧称 Azure AD)のユーザー プロビジョニングとシングル サインオンを拡張し、Microsoft Entra ID B2B コラボレーション ユーザーのシングル サインオン(SSO)を有効にする方法について説明します。

このドキュメントは、組織で Microsoft Office 365 または Microsoft Entra ID を使用し、次の図に示すように、Microsoft Entra ID のユーザー プロビジョニングとシングル サインオンをすでに構成していることを前提としています。

Microsoft Entra ID のユーザー プロビジョニングとシングル サインオンの構成。

この図では、外部 ID プロバイダ(IdP)のユーザーと他の Microsoft Entra ID テナントのユーザーが B2B サインオンを介して Microsoft Entra ID テナントにログインしています。

目標

  • Microsoft Entra B2B ゲストユーザーを対象とするように、Microsoft Entra ID ユーザー プロビジョニングの構成を拡張する。
  • Microsoft Entra B2B ゲストユーザーを対象とするように、Microsoft Entra ID SSO の構成を拡張する。
  • ゲストユーザーのセッションの長さを制限するように Cloud Identity を構成する。

始める前に

Microsoft Entra ID のユーザー プロビジョニングとシングル サインオンを設定していることを確認します。

Microsoft Entra B2B ゲストユーザー

Microsoft Entra ID を使用すると、外部ユーザーをゲストとして Microsoft Entra ID テナントに招待できます。外部ユーザーを招待すると、Microsoft Entra ID によってテナントにゲストユーザー アカウントが作成されます。これらのゲストユーザー アカウントは、通常の Microsoft Entra ID ユーザー アカウントとはいくつかの点で異なります。

  • ゲストユーザーにはパスワードがありません。ゲストユーザーがログインすると、ホームテナントまたは招待を受けた外部 ID プロバイダ(IdP)に自動的にリダイレクトされます。
  • ゲストユーザーのアカウントのユーザー プリンシパル名(UPN)は、招待されたユーザーのメールアドレスから取得したプレフィックスとテナントの初期ドメインを組み合わせたものになります(例: prefix#EXT#@tenant.onmicrosoft.com)。
  • 別の Microsoft Entra ID テナントからユーザーを招待し、後でそのユーザーがホームテナントから削除されても、ゲストユーザー アカウントは Microsoft Entra ID テナントで引き続き有効です。

こうした違いは、ユーザー プロビジョニングとシングル サインオンの構成方法に影響します。

  • onmicrosoft.com は Microsoft が所有する DNS ドメインのため、Cloud Identity または Google Workspace アカウントでセカンダリ ドメインとして tenant.onmicrosoft.com を追加することはできません。つまり、Cloud Identity や Google Workspace にユーザーをプロビジョニングする場合、ゲストユーザーの UPN をメインのメールアドレスとして使用することはできません。

    ゲストユーザーを Cloud Identity または Google Workspace にプロビジョニングするには、ゲストユーザーの UPN を Cloud Identity または Google Workspace アカウントで使用されるドメインに変換するためのマッピングを設定する必要があります。

    このドキュメントでは、次の表のように UPN マッピングを設定します。

    Microsoft Entra ID の元の UPN Cloud Identity または Google Workspace のメインのメールアドレス
    標準ユーザー alice@example.com alice@example.com
    Microsoft Entra ID ゲスト charlie@altostrat.com charlie_altostrat.com@example.com
    外部ゲスト user@hotmail.com user_hotmail.com@example.com
  • ユーザーがホームテナントから削除されても、Microsoft Entra ID は Cloud Identity または Google Workspace の対応ユーザーを一時停止しません。 これはセキュリティ リスクとなります。このようなユーザーにシングル サインオンを行うと失敗しますが、既存のブラウザ セッションと更新トークン(Google Cloud CLI で使用されたものも含む)は数日間または数週間アクティブな状態を維持し、ユーザーは引き続きリソースにアクセスできます。

    このリスクを軽減するには、このドキュメントで説明するように Cloud Identity または Google Workspace の専用の組織部門にゲストユーザーをプロビジョニングし、セッションの長さを 8 時間に制限するポリシーを適用します。このポリシーにより、ユーザーがホームテナントで削除されてから 8 時間後にはブラウザ セッションと既存の更新トークンが無効になり、すべてのアクセス権が実質的に取り消されます。ただし、Microsoft Entra ID アカウントからゲストユーザーを削除するまで、Cloud Identity または Google Workspace のユーザーはアクティブのままです。

Cloud Identity アカウントまたは Google Workspace アカウントの準備

Cloud Identity または Google Workspace アカウントに、すべてのゲストユーザーがプロビジョニングされる組織部門を作成します。

  1. 管理コンソールを開き、Cloud Identity または Google Workspace の登録時に作成した特権管理者ユーザーを使用してログインします。
  2. メニューで、[ディレクトリ] > [組織部門] に移動します。
  3. [組織部門を作成] をクリックし、組織部門の名前と説明を入力します。
    1. 組織部門の名前: guests
    2. 説明: Microsoft Entra B2B guest users
  4. [作成] をクリックします。

セッションの長さを 8 時間に制限するポリシーを組織部門に適用します。セッションの長さは、ブラウザ セッションに適用されるだけでなく、OAuth 更新トークンの有効期間も制限します。

  1. 管理コンソールで、[セキュリティ] > [アアクセスとデータ管理] > [Google Cloud のセッション管理] に移動します。
  2. guests という組織部門を選択し、次の設定を適用します。

    • 再認証ポリシー: 再認証を要求する
    • 再認証を要求する間隔: 8 時間

      この時間は、ゲストユーザーが Microsoft Entra ID で一時停止された後に Google Cloud リソースにアクセスできる時間の上限を表します。

    • 再認証方法: パスワード

      これにより、セッションが期限切れになったときに Microsoft Entra ID での再認証が必要になります。

  3. [オーバーライド] をクリックします。

Microsoft Entra ID のプロビジョニングを構成する

これで、B2B ゲストユーザーのプロビジョニングをサポートするように、既存の Microsoft Entra ID の構成を調整できるようになりました。

  1. Azure ポータルで、[Microsoft Entra ID] > [Enterprise applications] に移動します。
  2. エンタープライズ アプリケーションに Google Cloud(プロビジョニング)を選択します。このアプリケーションをユーザー プロビジョニングに使用します。
  3. [管理] > [プロビジョニング] の順にクリックします。
  4. [Edit provisioning] をクリックします。
  5. [Mappings] で、[Provision Microsoft Entra ID Users] をクリックします。
  6. userPrincipalName を選択します。
  7. [属性の編集] ダイアログで、次の変更を適用します。

    1. マッピングの種類: [直接] から [] に変更します。
    2. :

      Replace([originalUserPrincipalName], "#EXT#@TENANT_DOMAIN", , , "@PRIMARY_DOMAIN", , )

      次のように置き換えます。

      • TENANT_DOMAIN: Microsoft Entra ID テナントの .onmicrosoft.com ドメイン(tenant.onmicrosoft.com など)。
      • PRIMARY_DOMAIN: Cloud Identity または Google Workspace アカウントで使用されるプライマリ ドメイン名(example.org など)。
  8. [OK] をクリックします。

  9. [新しいマッピングの追加] を選択します。

  10. [属性の編集] ダイアログで、次の設定を構成します。

    1. マッピングの種類:
    2. :

      IIF(Instr([originalUserPrincipalName], "#EXT#", , )="0", "/", "/guests")

    3. 対象の属性: OrgUnitPath

  11. [OK] をクリックします。

  12. [保存] をクリックします。

  13. [はい] をクリックして、変更を保存するとユーザーとグループが再同期されることを確認します。

  14. [Attribute Mapping] ダイアログを閉じます。

シングル サインオン用に Microsoft Entra ID を構成する

ゲストユーザーがシングル サインオンを使用して認証できるように、既存の Microsoft Entra ID の構成を拡張してゲストのシングル サインオンを有効にします。

  1. Azure ポータルで、[Microsoft Entra ID] > [Enterprise applications] に移動します。
  2. シングル サインオンに使用するエンタープライズ アプリケーションに Google Cloud を選択します。
  3. [管理] > [シングル サインオン] の順にクリックします。
  4. 選択画面で、[SAML] カードをクリックします。
  5. [ユーザー属性とクレーム] カードで [編集] をクリックします。
  6. [Unique User Identifier (Name ID)] という行を選択します。
  7. [Claim conditions] を選択します。
  8. 外部ゲストに対する条件付きクレームを追加します。
    • User type: External guests
    • Source: Transformation
    • Transformation: RegexReplace()
    • Parameter 1: Attribute
    • Attribute: user.userprincipalname
    • Regex pattern: (?'username'^.*?)#EXT#@(?i).*\.onmicrosoft\.com$
    • Replacement pattern: {username}@PRIMARY_DOMAINPRIMARY_DOMAIN は、Cloud Identity または Google Workspace アカウントで使用されるプライマリ ドメイン名に置き換えます。
  9. [Add] をクリックします。
  10. 異なるテナントの Microsoft Entra ID ゲストに条件付きクレームを追加します。

    • User type: Microsoft Entra ゲスト
    • Source: Transformation
    • Transformation: RegexReplace()
    • Parameter 1: Attribute
    • Attribute: user.localuserprincipalname

    • Regex pattern: (?'username'^.*?)#EXT#@(?i).*\.onmicrosoft\.com$

    • Replacement pattern: {username}@PRIMARY_DOMAINPRIMARY_DOMAIN は、Cloud Identity または Google Workspace アカウントで使用されるプライマリ ドメイン名に置き換えます。

  11. [Add] をクリックします。

  12. 通常の Microsoft Entra ID ユーザーに条件付きクレームを追加します。

    • User type: Members
    • Source: Attribute
    • Value: user.userprincipalname
  13. [Save] をクリックします。

シングル サインオンのテスト

構成が正しく機能することを確認するには、Microsoft Entra ID テナントに次の 3 つのテストユーザーが必要です。

  • 通常の Microsoft Entra ID ユーザー。
  • Microsoft Entra ID ゲストユーザー。これは、別の Microsoft Entra ID テナントから招待されたユーザーです。
  • 外部のゲストユーザー。これは、Microsoft Entra ID 以外のメールアドレス(@hotmail.com アドレスなど)を使用して招待されたユーザーです。

ユーザーごとに、次のテストを行います。

  1. 新しいブラウザ ウィンドウをシークレット モードで開き、https://console.cloud.google.com/ に移動します。
  2. 表示された Google ログインページで、前の表Cloud Identity または Google Workspace のメインのメールアドレス 列にあるユーザーのメールアドレスを入力します。この表で、ユーザー プリンシパル名と Cloud Identity または Google Workspace のメールアドレスの対応を確認してください。

    Microsoft Entra ID にリダイレクトされ、別のログイン プロンプトが表示されます。

  3. ログイン プロンプトで、ユーザーの UPN を入力し、指示に従って認証を行います。

    認証に成功すると、Microsoft Entra ID によって Google ログインにリダイレクトされます。このユーザーを使用してログインするのは今回が初めてのため、Google 利用規約とプライバシー ポリシーに同意するよう求められます。

  4. 利用規約に同意する場合は、[同意する] をクリックします。

    Cloud Console にリダイレクトされて、設定を確認して Google Cloud 利用規約に同意するよう求められます。

  5. 利用規約に同意する場合は、[はい] を選択し、[同意して続行] をクリックします。

  6. アバターのアイコンをクリックして、[ログアウト] をクリックします。

    Microsoft Entra ID ページにリダイレクトされ、正常にログアウトされたことを確認します。

次のステップ