【问题标题】:Azure AD B2C Session Timeout Has No EffectAzure AD B2C 会话超时无效
【发布时间】:2020-12-21 19:15:00
【问题描述】:

我在 Azure AD B2C 中有一个自定义策略,并且正在尝试实现会话超时。如果用户第一次登录,然后超时到期,然后他们尝试再次登录,应该再次提示他们输入用户名和密码。

首先,我按照此处的说明在我的 TrustFrameworkBase.xml 中的 JwtIssuer 的 TechnicalProfile 中将 token_lifetime_secs 和 id_token_lifetime_secs 设置为 20 分钟(1200 秒):https://docs.microsoft.com/en-us/azure/active-directory-b2c/configure-tokens-custom-policy

然后我上传了更新后的 TrustFrameworkBase.xml。

然后我使用自定义策略从我的应用程序登录并等待了 20 分钟。我尝试再次登录,并立即通过身份验证并返回我的应用程序。没有像预期的那样再次提示我输入用户名和密码。

stackexchange 上有两个之前的问题似乎与此相同,但它们共享相同的解决方案,但不再有效(它已于 2020 年 5 月停用),因此我正在寻找新的解决方案:

【问题讨论】:

  • 您尝试的时间是否超过了 20 分钟?
  • 即使一个小时后也没有任何变化。接下来我会尝试做 24 小时,但这可能很难测试。

标签: azure-active-directory azure-ad-b2c


【解决方案1】:

这是因为您调整了令牌生命周期而不是会话生命周期。 https://docs.microsoft.com/en-us/azure/active-directory-b2c/session-behavior-custom-policy

改为如下更改会话生存期

<UserJourneyBehaviors>
   <SingleSignOn Scope="Application" />
   <SessionExpiryType>Absolute</SessionExpiryType>
   <SessionExpiryInSeconds>86400</SessionExpiryInSeconds>
</UserJourneyBehaviors>

下次您访问 B2C 页面时,是 cookie 为您提供 SSO,而不是令牌。

【讨论】:

  • 我已将此 XML 添加到我的登录名和密码重置自定义策略中,但它们似乎不起作用。每次我在登录后返回 B2C 页面时,都会提示我输入电子邮件/密码。 This page 提到可以通过有效会话跳过用户名/密码,但我无法做到这一点。除了UserJourneyBehaviors 元素之外,是否还有需要更改的设置/配置?
  • 这是默认行为。确保您没有将参数 prompt=login 传递给 AAD B2C。
猜你喜欢
  • 2018-08-10
  • 2018-10-13
  • 2017-09-09
  • 1970-01-01
  • 1970-01-01
  • 2022-11-28
  • 1970-01-01
  • 2021-12-23
  • 2017-05-02
相关资源
最近更新 更多