gpt4 book ai didi

azure - 当 RedirectURI 返回 protected 应用程序时注销所有帐户

转载 作者:行者123 更新时间:2023-12-02 08:18:58 28 4
gpt4 key购买 nike

我正在使用 MSALjs 注销我的应用程序上的用户。当触发 msalService.logoutRedirect() 时,页面会重定向并注销。但是,我的应用程序没有“不 protected ”的路由,因此注销后的重定向 (postLogoutRedirectUri) 设置为返回到应用程序的最后一个事件页面。当它返回到应用程序时,MSAL 防护会自动找到有效的 MS session 并自动重新登录(重定向后)。

如果我将 postLogoutRedirectUri 更改为 https://login.microsoftonline.com/common/oauth2/logout,则注销会正常工作,并且我会正确注销。但是,我希望立即提示重新登录,这就是为什么我打算返回应用程序,以便 MsalGuard 可以提示登录。

根据最近的GitHub issue ,一位 MSAL 贡献者说道:

This is a nuance of how B2C works. By default B2C might not log you out of your federated identity provider when you call the logout endpoint, this is explained in more detail here. I unfortunately don't know enough about B2C configuration to give you a definitive answer but you may need to create a custom policy which redirects to the AAD logout endpoint you mentioned: 'https://login.microsoftonline.com/common/oauth2/logout' as this endpoint is the one that ultimately closes your session with AAD. You can also have B2C pass through your postLogoutRedirectUri to this endpoint so that AAD redirects you back to your application after the logout instead of ending on the "Close this window" screen, if desired.

如何设置才能正确触发注销并注销所有 session ?

此外,如果我手动更改 openid-config 的元数据,使 "end_session_endpoint" 等于上面的 microsoftonline 注销链接,则该行为似乎更符合我的意愿期待。

最佳答案

您可以将应用程序注销后重定向 URI 发送到联合 IdP 注销 URL。您可以在 MSAL 配置对象中设置 postLogoutRedirectURI。

并在联合 IdP 中,将注销 URL 设置为应用程序。

该方法仅在您使用 1 个联合 IdP 并且是唯一可用的 IdP 时才有效。


function signOut() {
const logoutRequest = {
postLogoutRedirectUri: "https://login.microsoftonline.com/common/oauth2/v2.0/logout?
post_logout_redirect_uri=https://myapp.com"
msalConfig.auth.redirectUri
};
myMSALObj.logoutPopup(logoutRequest);
}

否则,请在您的应用中创建一个不 protected 页面,该页面重定向到 protected 页面,但将 MSAL 提示参数设置为“登录”。至少随后会出现 B2C 登录页面,并允许用户选择他们想要的登录方式。如果他们选择联合 IdP,他们仍可能获得 SSO。

关于azure - 当 RedirectURI 返回 protected 应用程序时注销所有帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70626401/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com