首页 > 解决方案 > 自定义策略和内置用户流中的注销行为更改

问题描述

我的自定义策略遇到了这个奇怪的问题…… 基于 SocialAndLocalAccountsWithMfa 启动包。我们正在寻找的行为如下,并且通过用户流实现是当用户从应用程序注销然后再次点击登录时,应该提示他重新进行身份验证。但是当我使用同一个应用程序执行自定义策略时,它会在不输入凭据的情况下重新进行身份验证。我已经调整了但没有。我添加并更改了以下内容

<UserJourneyBehaviors>
      <SingleSignOn Scope="Policy" KeepAliveInDays="7" />
      <SessionExpiryType>Rolling</SessionExpiryType>
      <SessionExpiryInSeconds>900</SessionExpiryInSeconds>
      <JourneyInsights TelemetryEngine="ApplicationInsights" InstrumentationKey="your-application-insights-key" DeveloperMode="true" ClientEnabled="false" ServerEnabled="true" TelemetryVersion="1.0.0" /-->
</UserJourneyBehaviors>

有没有办法检查用户是否无法退出或任何调试问题的方法?或者改变行为的方法?

当用户点击注销表单应用程序时,应用程序会转到注销 URL。

https://mytenanct.b2clogin.com/mytenanct.onmicrosoft.com/b2c_1a_signup_signin/oauth2/v2.0/logout?post_logout_redirect_uri=https%3A%2F%2Flocalhost%3A44316%2F&x-client-SKU=ID_NET451&x-client-ver= 5.4.0.0

以下是用户从应用程序单击登录并未经身份验证登录时的 url。

  1. 请求网址: https ://mytenanct.b2clogin.com/mytenanct.onmicrosoft.com/b2c_1a_signup_signin/oauth2/v2.0/authorize?client_id=ac8ca2c8-4cc3-43e3-8fd3-dcd592557f99&redirect_uri=https%3A%2F%2Flocalhost%3A44316 %2F&response_mode=form_post&response_type=code%20id_token&scope=openid%20profile%20offline_access%20https%3A%2F%2FMYTENANCT.onmicrosoft.com%2Fdemoapi%2Fread%20https%3A%2F%2FMYTENANCT.onmicrosoft.com%2Fdemoapi%2Fwrite&state=OpenIdConnect.AuthenticationProperties %3Du1frIXk828jwoiEmCMuqTDTomxyjWAjDSV2---SUMJX7jDgjnKFPX4iO5VEbXPGHVgHA6GcLzPWjooSpDcTxM9iAoRUGXxDbyhBCLexjWNEMG7dqSu-wa2AqntAbcV1a0mk9dykGyrypS8gsuPtbNPvkgO_8YRuYSlRiJy8tYSA&nonce=637285777554418842.MjY2ZmVjYmEtMDY0ZS00ZTljLTk0MDUtMzk2MzkxODAyODUyZjc0NTkxZGEtN2I5YS00ODViLThkZTYtMWIwMjUyNjg3ZTc2&x-client-SKU=ID_NET451&x-client-ver=5.4.0.0

任何帮助将不胜感激,以追踪或改变行为

我还配置了 [Single-Sigout][1] 但没有改变行为。

标签: azure-ad-b2c

解决方案


请参考Azure 文档中的描述

当您想将用户从应用程序中注销时,仅清除应用程序的 cookie 或以其他方式结束与用户的会话是不够的。将用户重定向到 Azure AD B2C 以注销。如果您不这样做,用户可能无需再次输入其凭据即可重新验证您的应用程序。

GET https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/logout?post_logout_redirect_uri=https%3A%2F%2Fjwt.ms%2F

确保您将浏览器重定向到该端点并且不要尝试通过反向通道执行 GET,否则它将不会执行任何操作,因为单点登录机制基于浏览器 cookie。

也请参考文档


推荐阅读