針對 B2B 來賓使用者將 Google 新增為識別提供者

提示

本文說明將Google新增為B2B共同作業的識別提供者。 如果您的租用戶已針對客戶身分識別和存取管理進行設定,請參閱 將Google新增為客戶的身分識別提供者

藉由設定 Google 同盟,您可以讓受邀的使用者使用自己的 Gmail 帳戶登入共用應用程式和資源,而不需要建立 Microsoft 帳戶。 將Google新增為應用程式的其中一個登入選項之後,在 [登入] 頁面上,使用者可以輸入他們用來登入Google的 Gmail 位址。

Sign in options for Google users

注意

Google 同盟針對 Gmail 使用者量身打造。 若要與Google Workspace網域同盟,請使用 SAML/WS-Fed 識別提供者同盟

重要

  • 從 2021 年 7 月 12 日起,如果 Microsoft Entra B2B 客戶設定新的 Google 整合來搭配自助式註冊使用,或邀請外部使用者使用其自定義或企業營運應用程式,則 Gmail 使用者可能會封鎖驗證(如預期內容所示的錯誤畫面)。 只有在您在 2021 年 7 月 12 日之後建立自助式註冊使用者流程或邀請的 Google 整合,以及自定義或企業營運應用程式中的 Gmail 驗證尚未移至系統網頁檢視時,才會發生此問題。 因為系統網頁檢視預設會啟用,因此大部分的應用程式都不會受到影響。 為了避免這個問題,我們強烈建議您先將 Gmail 驗證移至系統瀏覽器,再建立任何新的 Google 整合以進行自助式註冊。 請參閱 內嵌網頁檢視所需的動作。
  • 從 2021 年 9 月 30 日起,Google 即將 淘汰網頁檢視登入支援。 如果您的應用程式使用內嵌 Web 檢視來驗證使用者,且您正使用 Google 同盟與 Azure AD B2C 或 Microsoft Entra B2B 進行外部使用者邀請或 自助式註冊,Google Gmail 使用者將無法進行驗證。 深入了解

Google 使用者的體驗如何?

您可以透過各種方式邀請Google用戶進行 B2B 共同作業。 例如,您可以 透過 Microsoft Entra 系統管理中心將它們新增至目錄。 當他們兌換您的邀請時,其體驗會根據他們是否已登入Google而有所不同:

  • 系統會提示未登入Google的來賓使用者執行此動作。
  • 系統會提示已登入Google的來賓用戶選擇他們要使用的帳戶。 使用者必須選擇您用來邀請他們的帳戶。

看到「標頭太長」錯誤的來賓使用者可以清除其 cookie,或開啟私人或無痕模式視窗,然後再次嘗試登入。

Screenshot that shows the Google sign-in page.

登入端點

Google 來賓用戶現在可以使用通用端點登入您的多租使用者或 Microsoft 第一方應用程式(換句話說,一般應用程式 URL 不包含您的租用戶內容)。 在登入過程中,來賓用戶選擇 [登入] 選項,然後選取 [登入組織]。 然後,使用者輸入您組織的名稱,然後使用其 Google 認證繼續登入。

Google 來賓使用者也可以使用包含租使用者資訊的應用程式端點,例如:

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

您也可以藉由包含租使用者資訊,為 Google 來賓使用者提供應用程式或資源的直接連結,例如 https://myapps.microsoft.com/signin/Twitter/<application ID?tenantId=<your tenant ID>

淘汰 Web 檢視登入支援

從 2021 年 9 月 30 日起,Google 即將 淘汰內嵌網頁檢視登入支援。 如果您的應用程式使用內嵌 Web 檢視來驗證使用者,且您正使用 Google 同盟與 Azure AD B2C 或 Microsoft Entra B2B 進行 外部使用者邀請自助式註冊,Google Gmail 使用者將無法進行驗證。

以下是影響 Gmail 使用者的已知案例:

  • Windows 上的 Microsoft 應用程式 (例如 Teams 和 Power Apps)
  • 使用 WebView 控件、WebView2 或舊版 WebBrowser 控件進行驗證的 Windows 應用程式。 這些應用程式應移轉至使用 Web 帳戶管理員 (WAM) 流程。
  • 使用 WebView UI 元素的 Android 應用程式
  • 使用UIWebView/WKWebview的iOS應用程式
  • 使用 ADAL 的應用程式

此變更不會影響:

  • Web 應用程式
  • 透過網站存取的 Microsoft 365 服務(例如 SharePoint Online、Office Web 應用程式和 Teams Web 應用程式)
  • 使用系統 Web 檢視進行驗證的行動應用程式(iOS 上的 SFSafariViewControllerAndroid 上的自定義索引卷標 )。
  • Google 工作區身分識別,例如當您使用 SAML 型同盟 與 Google Workspace 時
  • 使用 Web 帳戶管理員 (WAM) 或 Web 驗證訊息代理程式 (WAB) 的 Windows 應用程式。

內嵌 Web 檢視所需的動作

修改您的應用程式,以使用系統瀏覽器進行登入。 如需詳細資訊,請參閱 MSAL.NET 檔中的內嵌網頁檢視與系統瀏覽器 。 根據預設,所有 MSAL SDK 都會使用系統瀏覽器。

預期的情況

從 9 月 30 日開始,Microsoft 會全域推出裝置登入流程,以作為應用程式仍使用內嵌 Web 檢視的因應措施,以確保不會封鎖驗證。

如何使用裝置登入流程登入

裝置登入流程會提示使用內嵌網頁檢視中的 Gmail 帳戶登入的使用者,在完成登入之前,先在個別瀏覽器中輸入程式代碼。 如果使用者第一次使用其 Gmail 帳戶登入,且瀏覽器中沒有作用中的會話,他們會看到下列畫面順序。 如果現有的 Gmail 帳戶已經登入,可能會消除其中一些步驟。

  1. 在 [ 登入 ] 畫面上,使用者輸入其 Gmail 位址,然後選取 [ 下一步]。

    Screenshot showing the sign-in screen

  2. 下列畫面隨即出現,提示用戶開啟新視窗、流覽至 https://microsoft.com/devicelogin,然後輸入顯示的九位數英數位元程序代碼。

    Screenshot showing the 9-digit code

  3. 裝置登入頁面隨即開啟,用戶可以在其中輸入代碼。

    Screenshot showing the device sign-in page

  4. 如果代碼相符,系統會要求使用者重新輸入其電子郵件,以確認其應用程式並登入位置的安全性用途。

    Screenshot showing the screen for reentering email

  5. 使用者使用其電子郵件和密碼登入Google。

    Screenshot showing the Google sign-in screen

  6. 他們再次被要求確認他們登入的應用程式。

    Screenshot showing application confirmation screen

  7. 用戶選取 [ 繼續]。 提示會確認他們已登入。 使用者關閉索引標籤或視窗,並返回第一個畫面,此時他們已登入應用程式。

    Screenshot showing sign-in confirmation

或者,您可以讓現有的和新 Gmail 使用者使用電子郵件一次性密碼登入。 若要讓您的 Gmail 使用者使用電子郵件一次性密碼:

  1. 啟用電子郵件一次性密碼
  2. 拿掉Google同盟
  3. 重設 Gmail 使用者的兌換狀態 ,讓他們可以使用電子郵件一次性密碼。

如果您想要要求延伸模組,受影響的 OAuth 用戶端識別碼(s) 受影響的客戶應該已收到來自 Google 開發人員的電子郵件,其中包含有關一次性原則強制執行延伸模塊的資訊,該延伸模組必須在 2022 年 1 月 31 日之前完成:

  • 「如有必要,您可以針對每個列出的 OAuth 用戶端標識碼要求一次性原則強制執行延伸模組,直到 2022 年 1 月 31 日為止。 為了清楚起見,內嵌 Web 檢視的原則將於 2022 年 2 月 1 日強制執行,但沒有任何例外狀況或延伸模組。

移轉至允許的 Web 檢視進行驗證的應用程式不會受到影響,而且使用者會如往常一樣透過 Google 進行驗證。

如果應用程式未移轉至允許的 Web 檢視進行驗證,則受影響的 Gmail 使用者會看到下列畫面。

Google sign-in error if apps are not migrated to system browsers

區分 CEF/電子和內嵌網頁檢視

除了 取代內嵌網頁檢視和架構登入支援之外,Google 也會 取代 Chromium Embedded Framework (CEF) 型 Gmail 驗證。 對於以 CEF 為基礎的應用程式,例如電子應用程式,Google 將於 2021 年 6 月 30 日停用驗證。 受影響的應用程式已直接從Google收到通知,但本檔並未涵蓋。 本檔與先前所述的內嵌網頁檢視有關,Google 將於 2021 年 9 月 30 日單獨限制。

內嵌架構所需的動作

遵循 Google 的指導方針來判斷您的應用程式是否受到影響。

步驟 1:設定 Google 開發人員專案

首先,在 Google Developers Console 中建立新專案,以取得用戶端識別碼和客戶端密碼,您稍後可以新增至 Microsoft Entra 外部 ID。

  1. 移至 Google API (網址為:https://console.developers.google.com),並使用 Google 帳戶來登入。 我們建議使用共用小組 Google 帳戶。

  2. 如果系統提示您,請接受服務條款。

  3. 建立新的專案:在頁面頂端,選取專案功能表以開啟 [選取專案 ] 頁面。 選擇 [ 新增專案]。

  4. 在 [ 新增專案 ] 頁面上,為專案指定名稱(例如 MyB2BApp),然後選取 [ 建立]:

    Screenshot that shows a New Project page.

  5. 選取 [通知] 消息框中的連結,或使用頁面頂端的專案功能表,開啟新專案。

  6. 在左側功能表中,選取 [API 與服務],然後選取 [OAuth 同意畫面]。

  7. 在 [用戶類型] 底下,選取 [外部],然後選取 [建立]。

  8. 在 [OAuth 同意] 畫面的 [應用程式資訊] 底下,輸入應用程式名稱

  9. 在 [用戶支援電子郵件] 底下,選取電子郵件位址。

  10. 在 [授權的網域] 下,選取 [新增網域],然後新增網域microsoftonline.com

  11. 在 [開發人員連絡資訊] 底 ,輸入電子郵件位址。

  12. 選取 [儲存並繼續] 。

  13. 在左側功能表中,選取 [ 認證]。

  14. 選取 [建立認證],然後選取 [OAuth 用戶端標識符]。

  15. 在 [應用程式類型] 功能表中,選取 [Web 應用程式]。 為應用程式提供適當的名稱,例如 Microsoft Entra B2B。 在 [授權重新導向 URI] 底下,新增下列 URI:

    • https://login.microsoftonline.com
    • https://login.microsoftonline.com/te/<tenant ID>/oauth2/authresp
      (其中 <tenant ID> 是您的租使用者識別碼)
    • https://login.microsoftonline.com/te/<tenant name>.onmicrosoft.com/oauth2/authresp
      (其中 <tenant name> 是您的租用戶名稱)

    注意

    若要尋找您的租用戶標識碼,請登入 Microsoft Entra 系統管理中心。 在 [身分識別] 底下,選取 [概觀],然後複製 [租用戶標識符]。

  16. 選取 建立。 複製用戶端識別碼和客戶端密碼。 當您在 Microsoft Entra 系統管理中心新增識別提供者時,請使用它們。

    Screenshot that shows the OAuth client ID and client secret.

  17. 您可以將專案保留為 [測試] 的發佈狀態,並將測試使用者新增至 OAuth 同意畫面。 或者,您可以在 OAuth 同意畫面上選取 [發佈應用程式 ] 按鈕,讓任何具有 Google 帳戶的使用者都能使用應用程式。

    注意

    在某些情況下,您的應用程式可能需要 Google 的驗證(例如,如果您更新應用程式標誌)。 如需詳細資訊,請參閱 Google 的 驗證狀態說明

步驟 2:在 Microsoft Entra 外部 ID 中設定 Google 同盟

您現在將設定 Google 用戶端識別碼和用戶端密碼。 您可以使用 Microsoft Entra 系統管理中心或 PowerShell 來執行此動作。 請務必邀請您自己來測試您的 Google 同盟設定。 使用 Gmail 位址,並嘗試使用您受邀的 Google 帳戶兌換邀請。

在 Microsoft Entra 系統管理中心設定 Google 同盟

  1. 以至少外部識別提供者系統管理員身分登入 Microsoft Entra 系統管理中心

  2. 流覽至 [身分>識別外部身分>識別] [所有識別提供者],然後選取 [Google] 按鈕。

  3. 輸入您稍早取得的 [用戶端 ID] 和 [用戶端密碼]。 選取 [儲存]:

    Screenshot that shows the Add Google identity provider page.

使用 PowerShell 設定 Google 同盟

  1. 安裝最新版的 Microsoft Graph PowerShell 模組

  2. 使用 連線-MgGraph 命令將租使用者 連線。

  3. 在登入提示字元中,使用受控全域 管理員 istrator 帳戶登入。

  4. 執行下列命令:

    $params = @{
       "@odata.type" = "microsoft.graph.socialIdentityProvider"
       displayName = "Login with Google"
       identityProviderType = "Google"
       clientId = "<client ID>"
       clientSecret = "<client secret>"
    }
    
    New-MgIdentityProvider -BodyParameter $params
    

    注意

    使用您在「步驟 1:設定 Google 開發人員專案」中所建立應用程式的用戶端識別碼和客戶端密碼。如需詳細資訊,請參閱 New-MgIdentityProvider

將Google身分識別提供者新增至使用者流程

此時,Google 身分識別提供者會在您的 Microsoft Entra 租用戶中設定。 兌換來自您邀請的使用者可以使用Google登入。 不過,如果您已建立自助式註冊使用者流程,您也需要將Google新增至您的使用者流程登入頁面。 若要將Google身分識別提供者新增至使用者流程:

  1. 流覽至 [身分>識別外部身分>識別使用者流程]。

  2. 選取您想要新增Google身分識別提供者的使用者流程。

  3. 在 [設定] 下,選取 [識別提供者]。

  4. 在識別提供者清單中,選取 [Google]。

  5. 選取 [儲存]。

我該如何移除 Google 同盟?

您可以刪除 Google 同盟設定。 如果您這樣做,已兌換其邀請的 Google 來賓用戶無法登入。 但是您可以重設兌換狀態,讓他們再次存取您的資源。

刪除 Microsoft Entra 系統管理中心的 Google 同盟

  1. 以至少外部識別提供者系統管理員身分登入 Microsoft Entra 系統管理中心

  2. 流覽至 [身分>識別外部身分>識別] [所有識別提供者]。

  3. 在 [Google] 行上,選取省略符號按鈕 (...),然後選取 [刪除]。

    Screenshot that shows the Delete button for the social identity provider.

  4. 輸入 [] 以確認刪除。

使用 PowerShell 刪除 Google 同盟

  1. 安裝最新版的 Microsoft Graph PowerShell 模組

  2. 使用 連線-MgGraph 命令將租使用者 連線。

  3. 在登入提示中,使用受控全域 管理員 istrator 帳戶登入。

  4. 輸入下列命令:

    Remove-MgIdentityProvider -IdentityProviderBaseId Google-OAUTH
    

    注意

    如需詳細資訊,請參閱 Remove-MgIdentityProvider