針對 B2B 來賓使用者將 Google 新增為識別提供者
適用於: 員工租用戶 外部租用戶 (深入了解)
提示
本文說明將 Google 新增為員工租用戶中 B2B 共同作業的識別提供者。 如需外部租用戶的指示,請參閱將 Google 新增為識別提供者。
藉由設定 Google 同盟,您可以讓受邀的使用者使用自己的 Gmail 帳戶登入共用應用程式和資源,而不需要建立 Microsoft 帳戶。 將 Google 新增為其中一個應用程式的登入選項之後,使用者可以透過 [登入] 頁面,輸入他們用來登入 Google 的 Gmail 電子郵件地址。
注意
Google 同盟針對 Gmail 使用者量身打造。 若要與 Google Workspace 網域建立同盟,請使用 SAML/WS-Fed 身分識別提供者同盟。
重要
- 從 2021 年 7 月 12 日開始,如果 Microsoft Entra B2B 客戶設定新的 Google 整合以與自助式註冊搭配使用,或為其自訂或企業營運應用程式邀請外部使用者,則可能會封鎖 Gmail 使用者的驗證 (出現預期結果中所示的錯誤畫面)。 只有當您在 2021 年 7 月 12 日之後針對自助式註冊使用者流程或邀請建立 Google 整合且您的自訂或企業營運應用程式中的 Gmail 驗證尚未移至系統 Web 檢視時,才會發生此問題。 由於預設會啟用系統 Web 檢視,因此大部分的應用程式不會受到影響。 為了避免此問題,我們強烈建議您先將 Gmail 驗證移至系統瀏覽器,再為自助式註冊建立任何新的 Google 整合。 請參閱內嵌 Web 檢視所需的動作。
- 自 2021 年 9 月 30 日起,Google 將淘汰 Web 檢視登入支援。 若應用程式是以內嵌的 Web 檢視來驗證使用者,且您為外部使用者邀請或自助式註冊使用 Google 與 Azure AD B2C 或 Microsoft Entra B2B 的同盟,則 Google Gmail 使用者將無法進行驗證。 深入了解。
Google 使用者的體驗如何?
您可以使用各種方式來邀請 Google 使用者加入 B2B 共同作業。 例如,您可以 透過 Microsoft Entra 系統管理中心將其新增至目錄。 當他們兌換您的邀請時,其體驗會視他們是否已登入 Google 而不同:
- 系統會提示未登入 Google 的來賓使用者執行此動作。
- 系統會提示已登入 Google 的來賓使用者選擇他們要使用的帳戶。 使用者必須選擇您用來邀請他們的帳戶。
看到「標頭太長」錯誤的來賓使用者可以清除其 cookie,或開啟私人或無痕模式視窗,然後再次嘗試登入。
登入端點
Google 來賓使用者現在可以使用通用端點 (換句話說,就是不包含在您租用戶內容中的通用應用程式 URL),來登入多租用戶或 Microsoft 第一方應用程式。 在登入流程中,來賓使用者會選擇 [登入選項],然後選取 [登入組織]。 使用者接著輸入您的組織名稱,並繼續使用自己的 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/X/<application ID?tenantId=<your tenant ID>
。
淘汰 Web 檢視登入支援
自 2021 年 9 月 30 日起,Google 將淘汰內嵌的 Web 檢視登入支援。 若應用程式是以內嵌的 Web 檢視來驗證使用者,且您為外部使用者邀請或自助式註冊使用 Google 與 Azure AD B2C 或 Microsoft Entra B2B 的同盟,則 Google Gmail 使用者將無法進行驗證。
以下是影響 Gmail 使用者的已知案例:
- Windows 上的 Microsoft 應用程式 (例如 Teams 和 Power Apps)
- 使用 WebView 控制項、WebView2 或舊的 WebBrowser 控制項進行驗證的 Windows 應用程式。 這些應用程式應移轉至使用 Web 帳戶管理員 (WAM) 流程。
- 使用 Web 檢視 UI 元素的 Android 應用程式
- 使用 UIWebView/WKWebview 的 iOS 應用程式
- 使用 ADAL 的應用程式
此變更不會影響:
- Web 應用程式
- 透過網站存取的 Microsoft 365 服務(例如 SharePoint Online、Office Web 應用程式和 Teams Web 應用程式)
- 使用系統 Web 檢視進行驗證的行動應用程式 (iOS 上為 SFSafariViewController,Android 上為 [自訂] 索引標籤)。
- Google Workspace 身分識別,例如,當您使用 SAML 型同盟 搭配 Google Workspace 時
- 使用 Web 帳戶管理員 (WAM) 或 Web 驗證訊息代理程式 (WAB) 的 Windows 應用程式。
內嵌 Web 檢視所需的動作
修改您的應用程式,以使用系統瀏覽器進行登入。 如需詳細資訊,請參閱 MSAL.NET 檔中的內嵌 Web 檢視與系統瀏覽器。 依預設,所有 MSAL SDK 都會使用系統瀏覽器。
有何影響
自 9 月 30 日起,Microsoft 將在全球推出裝置登入流程,其可做為仍在使用內嵌 Web 檢視應用程式的因應措施,以確保驗證不會遭到封鎖。
如何使用裝置登入流程登入
裝置登入流程會提示在內嵌的 Web 檢視中使用 Gmail 帳戶登入的使用者,先於不同的瀏覽器中輸入代碼,之後才能完成登入。 如果使用者第一次使用其 Gmail 帳戶登入,而瀏覽器中沒有任何使用中的工作階段,則使用者會看到下列順序的畫面。 如果現有的 Gmail 帳戶已經登入,這些步驟的部分步驟可能會排除。
在 [登入] 畫面上,使用者會輸入其 Gmail 位址,然後選取 [下一步]。
下列畫面隨即出現,提示使用者開啟新視窗,瀏覽至 https://microsoft.com/devicelogin,然後輸入所顯示的九位數英數字元代碼。
裝置登入頁面隨即開啟,使用者可在此輸入代碼。
如果代碼相符,基於安全性理由,系統會要求使用者重新輸入他們的電子郵件,以確認其應用程式和登入位置。
使用者使用其電子郵件和密碼登入 Google。
同樣地,系統會要求他們確認其所登入的應用程式。
使用者選取 [繼續]。 提示會確認其已登入。 使用者關閉索引標籤或視窗,並返回第一個畫面,在其中他們現在已登入應用程式。
或者,您可以讓現有和新的 Gmail 使用者使用電子郵件一次性密碼登入。 若要讓 Gmail 使用者使用電子郵件一次性密碼:
- 啟用電子郵件一次性密碼。
- 移除 Google 同盟。
- 重設 Gmail 使用者的兌換狀態,讓他們之後可以使用電子郵件一次性密碼。
若要求延期,具有受影響 OAuth 用戶端識別碼的受影響客戶應該已收到來自 Google 開發人員的電子郵件,其中包含下列一次性原則強制延期相關資訊,必須在 2022 年 1 月 31 日前完成:
- 「如有必要,您可以針對每個列出的 OAuth 用戶端識別碼的內嵌 Web 檢視要求一次性原則強制執行延期,直到 2022 年 1 月 31 日為止。 為了清楚起見,用於內嵌 Web 檢視的原則將在 2022 年 2 月 1 日強制執行,且沒有任何例外或延長。」
移轉至允許的 Web 檢視以進行驗證的應用程式不會受到影響,而且使用者將可以正常透過 Google 驗證。
如果應用程式未移轉至允許的 Web 檢視以進行驗證,則受影響的 Gmail 使用者將會看到下列畫面。
區分 CEF/Electron 與內嵌的 Web 檢視
除了內嵌的 Web 檢視和架構登入支援的淘汰,Google 也會淘汰 Chromium 內嵌架構 (CEF) 型 Gmail 驗證。 針對以 CEF 為建置基礎的應用程式 (例如 Electron 應用程式),Google 將在 2021 年 6 月 30 日停用驗證。 受影響的應用程式已直接收到來自 Google 的通知,因此不在本文件中討論。 本文件屬於之前所述的內嵌 Web 檢視,Google 將在不同日期於 2021 年 9 月 30 日進行限制。
內嵌架構所需的動作
遵循 Google 的指導方針來判斷您的應用程式是否受到影響。
步驟 1:設定 Google 開發人員專案
首先,在 Google 開發人員主控台中,建立新專案來取得用戶端識別碼和用戶端密碼,以供稍後新增至 Microsoft Entra 外部 ID。
移至 Google API (網址為:https://console.developers.google.com),並使用 Google 帳戶來登入。 我們建議使用共用小組 Google 帳戶。
如果系統提示您,請接受服務條款。
建立新的專案:在頁面頂端,選取專案功能表以開啟 [選取專案] 頁面。 選擇 [新增專案]。
在 [新增專案] 頁面上,指定專案的名稱 (例如
MyB2BApp
),然後選取 [建立]:選取 [通知] 訊息方塊中的連結,或使用頁面頂端的專案功能表,開啟新專案。
在左側功能表中,選取 [API 和服務],然後選取 [OAuth 同意] 畫面。
在 [使用者類型] 底下,選取 [外部],然後選取 [建立]。
在 [OAuth 同意] 畫面的 [應用程式資訊] 底下,輸入應用程式名稱。
在 [使用者支援電子郵件] 底下,選取電子郵件地址。
在 [授權的網域] 底下,選取 [新增網域],然後新增
microsoftonline.com
網域。在 [開發人員連絡資訊] 底下,輸入電子郵件地址。
選取 [儲存並繼續] 。
在左側功能表中,選取 [認證]。
選取 [建立認證],然後選取 [OAuth 用戶端識別碼]。
在 [應用程式類型] 功能表中,選取 [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 系統管理中心。 在 [身分識別] 底下,選取 [概觀],然後複製 [租用戶識別碼]。
選取 建立。 複製您的用戶端識別碼和用戶端密碼。 在 Microsoft Entra 系統管理中心中新增識別提供者時,需要使用這些資訊。
您可以將專案保留為測試中的發佈狀態,並將測試使用者新增至 OAuth 同意畫面。 或者,您也可以選取 OAuth 同意畫面上的 [發佈應用程式] 按鈕,讓具有 Google 帳戶的任何使用者都能使用該應用程式。
注意
在某些情況下,您的應用程式可能需要由 Google 驗證 (例如,如果您更新應用程式標誌)。 如需詳細資訊,請參閱 Google 的驗證狀態說明。
步驟 2:在 Microsoft Entra 外部 ID 中設定 Google 同盟
您現在將設定 Google 用戶端識別碼和用戶端密碼。 您可以使用 Microsoft Entra 系統管理中心或 PowerShell 來執行此動作。 請務必邀請您自己來測試您的 Google 同盟設定。 使用 Gmail 位址,並嘗試使用您受邀的 Google 帳戶兌換邀請。
在 Microsoft Entra 系統管理中心設定 Google 同盟
至少以外部識別提供者管理員身分登入 Microsoft Entra 系統管理中心。
瀏覽至 [身分識別] > [外部身分識別] > [所有識別提供者],然後在 Google 行上,選取 [設定]。
輸入您稍早取得的用戶端識別碼和用戶端密碼。 選取 [儲存]:
使用 PowerShell 設定 Google 同盟
安裝最新版的 Microsoft Graph PowerShell 模組。
使用 Connect-MgGraph 命令連線到您的租用戶。
在登入提示字元中,至少以外部識別提供者系統管理員身分登入。
執行下列命令:
$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 識別提供者新增至使用者流程
此時,會在您的 Microsoft Entra 租用戶中設定 Google 識別提供者。 兌換您的邀請的使用者可以使用 Google 登入。 不過,如果您已建立自助式註冊使用者流程,就需要一併將 Google 新增至使用者流程登入頁面。 若要將 Google 識別提供者新增至使用者流程:
瀏覽至 [身分識別] > [外部身分識別] > [使用者流程]。
選取您想要新增 Google 識別提供者的使用者流程。
在 [設定] 底下,選取 [識別提供者]。
在識別提供者清單中,選取 [Google]。
選取 [儲存]。
我該如何移除 Google 同盟?
您可以刪除 Google 同盟設定。 這樣一來,已兌換其邀請的 Google 來賓使用者便無法登入。 但是,您可以藉由重設其兌換狀態,讓他們再次存取您的資源。
刪除 Microsoft Entra 系統管理中心的 Google 同盟
至少以外部識別提供者管理員身分登入 Microsoft Entra 系統管理中心。
瀏覽至 [身分識別] > [外部身分識別]>[所有識別提供者]。
在 [Google] 行上,選取 ([已設定]),然後選取 [刪除]。
輸入 [是] 以確認刪除。
使用 PowerShell 刪除 Google 同盟
安裝最新版的 Microsoft Graph PowerShell 模組。
使用 Connect-MgGraph 命令連線到您的租用戶。
在登入提示中,至少以外部識別提供者系統管理員身分登入。
輸入下列命令:
Remove-MgIdentityProvider -IdentityProviderBaseId Google-OAUTH
注意
如需詳細資訊,請參閱 Remove-MgIdentityProvider。