簡體   English   中英

是否可以從與 B2C 聯合的外部 IdP 強制注銷

[英]Is it possible to force sign-out from external IdP federated with B2C

從 Microsoft 文檔開始:

注銷 當您想將用戶從應用程序中注銷時,僅清除應用程序的 cookies 或以其他方式結束 session 是不夠的。 您必須將用戶重定向到 Azure AD B2C 才能注銷。 否則,用戶可能無需再次輸入其憑據即可重新對您的應用程序進行身份驗證。

根據注銷請求,Azure AD B2C:

使 Azure AD B2C 基於 cookie 的 session 無效。 ** 嘗試從聯合身份提供商注銷。**

注銷會清除用戶的單點登錄 state 與 Azure AD B2C,但它可能不會將用戶從其社交身份提供者 Z21D6F40CFB511982E4424E0E250A59 注銷。 如果用戶在后續登錄期間選擇了相同的身份提供者,他們可能會在不輸入憑據的情況下重新進行身份驗證。 如果用戶想要退出應用程序,並不一定意味着他們想要退出 Facebook 帳戶。 但是,如果使用本地帳戶,則用戶的 session 正常結束。

B2C 嘗試從聯合身份提供者注銷意味着什么? 它如何嘗試完成注銷? 如果在聯合 SAML/OIDC 元數據 URL 中提供,它是否會嘗試使用 SingleLogoutService? 還是需要在 B2C/自定義策略方面進行一些額外的配置?

我已經(按照 B2C 文檔)將 Salesforce 和 Auth0 聯合添加到自定義策略中。 注銷時,Azure AD B2C cookie-based session 無效。 盡管如果我選擇任何聯合 IdP 再次登錄,我觀察到此 session 不會失效,因為我在沒有輸入 IdP 憑據的情況下重新進行了身份驗證。

有沒有辦法強制從聯合 IdP 中退出?

https://docs.microsoft.com/en-us/azure/active-directory-b2c/session-behavior?pivots=b2c-custom-policy#sign-out

本文檔將引導您了解如何嘗試從聯合身份提供者注銷。 審查部分:

注銷會清除用戶的單點登錄 state 與 Azure AD B2C,但它可能不會將用戶從其社交身份提供者 Z21D6F40CFB511982E4424E0E250A59 注銷。 如果用戶在后續登錄期間選擇了相同的身份提供者,他們可能會在不輸入憑據的情況下重新進行身份驗證。 如果用戶想要退出應用程序,並不一定意味着他們想要退出 Facebook 帳戶。 但是,如果使用本地帳戶,則用戶的 session 正常結束。

並非所有 IdP 都必須尊重這一點 - 就像社交身份提供者一樣。 如果您嘗試注銷 Facebook 之類的社交身份提供者,它會產生一種奇怪的行為 - 我看到很多情況下最終用戶討厭他們將社交 IdP 用於多種服務,而您的服務出現並與他們的 session 混淆。

按着這些次序:

  • OpenId Connect - 如果身份提供者熟知配置端點指定 end_session_endpoint 位置。 注銷請求未傳遞 id_token_hint 參數。 如果聯合身份提供者需要此參數,則注銷請求將失敗。

  • OAuth2 - 如果身份提供者元數據包含 end_session_endpoint 位置。

  • SAML - 如果身份提供者元數據包含 SingleLogoutService 位置。

幕后發生的是通過 iframe 進行的前通道注銷。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM