Microsoft Entra ID (原稱 Azure AD) B2B 使用者佈建和單一登入

Last reviewed 2024-07-11 UTC

本文說明如何擴充Microsoft Entra ID (先前稱為 Azure AD) 使用者佈建和單一登入,為 Microsoft Entra ID B2B 協作使用者啟用單一登入 (SSO)。

本文假設貴機構使用 Microsoft Office 365 或 Microsoft Entra ID,且您已設定Microsoft Entra ID 使用者帳戶佈建和單一登入,如以下圖表所示。

設定 Microsoft Entra ID 使用者佈建與單一登入。

在這張圖中,來自外部識別資訊提供者 (IdP) 和其他 Microsoft Entra ID 租戶的使用者,會透過 B2B 登入 Microsoft Entra ID 租戶。

目標

  • 擴充 Microsoft Entra ID 使用者帳戶佈建設定,涵蓋 Microsoft Entra B2B 客戶使用者。
  • 擴充 Microsoft Entra ID 單一登入設定,涵蓋 Microsoft Entra B2B 訪客使用者。
  • 設定 Cloud Identity,限制訪客使用者的工作階段長度。

事前準備

請確認您已設定 Microsoft Entra ID 使用者佈建與單一登入

Microsoft Entra B2B 訪客使用者

Microsoft Entra ID 可讓您邀請外部使用者以訪客身分加入 Microsoft Entra ID 用戶群。邀請外部使用者時,Microsoft Entra ID 會在您的租戶中建立訪客使用者帳戶。這些訪客使用者帳戶與一般 Microsoft Entra ID 使用者帳戶有許多不同之處:

  • 訪客使用者沒有密碼,登入時,系統會自動將訪客使用者重新導向至其主租戶,或邀請他們加入的外部識別資訊提供者 (IdP)。
  • 訪客使用者帳戶的使用者主要名稱 (UPN) 會使用受邀者電子郵件地址衍生的前置字串,再加上用戶群的初始網域,例如:prefix#EXT#@tenant.onmicrosoft.com
  • 如果您從其他 Microsoft Entra ID 租戶邀請使用者,且該使用者稍後在其主租戶中遭到刪除,則該客體使用者帳戶在您的 Microsoft Entra ID 租戶中仍會保持有效。

這些差異會影響使用者佈建和單一登入的設定方式:

  • 由於 onmicrosoft.com 是 Microsoft 擁有的 DNS 網域,因此您無法將 tenant.onmicrosoft.com 新增為 Cloud Identity 或 Google Workspace 帳戶的次要網域。這項附註表示在將使用者佈建至 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. 選取「訪客」機構單位,然後套用下列設定:

    • 重新驗證政策需要重新驗證
    • 重新驗證頻率8 小時

      這段時間反映了在 Microsoft Entra ID 中暫停後,訪客使用者可能仍可存取 Google Cloud 資源的最長時間。

    • 重新驗證方式密碼

      這項設定可確保使用者在工作階段過期後,必須使用 Microsoft Entra ID 重新驗證。

  3. 按一下 [覆寫]

設定 Microsoft Entra ID 佈建

您現在可以調整現有的 Microsoft Entra ID 設定,支援佈建 B2B 訪客使用者。

  1. Azure 入口網站中,依序前往「Microsoft Entra ID」>「Enterprise applications」
  2. 選取用於佈建使用者帳戶的企業應用程式「Google Cloud (Provisioning)」
  3. 依序點選「管理」>「佈建」
  4. 按一下「編輯佈建」
  5. 在「Mappings」(對應) 底下,點選「Provision Microsoft Entra ID Users」(佈建 Microsoft Entra ID 使用者)
  6. 選取「userPrincipalName」userPrincipalName列。
  7. 在「Edit Attribute」(編輯屬性) 對話方塊中,套用下列變更:

    1. 「對應類型」:從「直接」變更為「運算式」
    2. Expression

      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. 按一下 [確定]

  9. 選取「新增對應」

  10. 在「編輯屬性」對話方塊中,設定下列屬性:

    1. 「Mapping type」(對應類型):[Expression] (運算式)
    2. Expression

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

    3. 目標屬性OrgUnitPath

  11. 按一下 [確定]

  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. 在「User Attributes & Claims」(使用者屬性與宣告) 資訊卡上,按一下「編輯」
  6. 選取標示為「Unique User Identifier (Name ID)」的資料列。
  7. 選取「聲明條件」
  8. 為外部邀請對象新增條件式聲明:
    • 使用者類型外部訪客
    • 來源轉換
    • 轉換RegexReplace()
    • 參數 1屬性
    • 屬性user.userprincipalname
    • Regex 模式(?'username'^.*?)#EXT#@(?i).*\.onmicrosoft\.com$
    • 取代模式{username}@PRIMARY_DOMAIN,將 PRIMARY_DOMAIN 取代為 Cloud Identity 或 Google Workspace 帳戶使用的主要網域名稱。
  9. 按一下「新增」
  10. 為來自不同租戶的 Microsoft Entra ID 訪客新增條件式聲明:

    • 使用者類型Microsoft Entra 訪客
    • 來源轉換
    • 轉換RegexReplace()
    • 參數 1屬性
    • 屬性user.localuserprincipalname

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

    • 取代模式{username}@PRIMARY_DOMAIN,將 PRIMARY_DOMAIN 取代為 Cloud Identity 或 Google Workspace 帳戶使用的主要網域名稱。

  11. 按一下「新增」

  12. 為一般 Microsoft Entra ID 使用者新增條件式聲明:

    • 使用者類型成員
    • 來源屬性
    • 「Value」(值)user.userprincipalname
  13. 按一下 [儲存]

測試單一登入

如要確認設定是否正常運作,您需要在 Microsoft Entra ID 用戶端中建立三位測試使用者:

  • 一般的 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. 如果您同意條款,請點選 [Accept] (接受)

    系統會將您重新導向至 Google Cloud 主控台,並要求您確認偏好設定,並接受 Google Cloud 《服務條款》。

  5. 如果您同意條款,請按一下「是」,然後點選「同意並繼續」

  6. 按一下顯示圖片圖示,然後點選「登出」

    系統會將您重新導向至 Microsoft Entra ID 頁面,確認您已成功登出。

後續步驟