azure ad b2c会话未过期

azure ad b2c会话未过期,azure,azure-ad-b2c,Azure,Azure Ad B2c,我有一个ASP.net MVC webapp,它使用Azure AD B2C对用户进行身份验证。ASP.net mvc应用程序中的cookie设置为在滚动超时20分钟后过期。广告B2C中的设置如下所示: 访问和ID令牌生存期=20分钟 刷新令牌生存期=14天 刷新令牌滑动窗口生存期=有界,90天 表示策略ID=tfp的声明 Web应用程序会话生存期=20分钟 WebApp会话超时=滚动 单点登录配置=应用程序 注销请求中的请求ID令牌=否 顺序如下: 打开应用程序url 登录广告b2c,重

我有一个ASP.net MVC webapp,它使用Azure AD B2C对用户进行身份验证。ASP.net mvc应用程序中的cookie设置为在滚动超时20分钟后过期。广告B2C中的设置如下所示:

  • 访问和ID令牌生存期=20分钟
  • 刷新令牌生存期=14天
  • 刷新令牌滑动窗口生存期=有界,90天
  • 表示策略ID=tfp的声明
  • Web应用程序会话生存期=20分钟
  • WebApp会话超时=滚动
  • 单点登录配置=应用程序
  • 注销请求中的请求ID令牌=否
顺序如下:

  • 打开应用程序url
  • 登录广告b2c,重定向回应用程序主页
  • 关闭浏览器上的选项卡
  • 30分钟后在新浏览器选项卡中打开主页url
  • 由于ASP.net MVC cookie会话超时,应用程序重定向到AD B2C
  • Azure AD B2C无需请求凭据,而是以静默方式登录用户
  • 用户被重定向回主页
为什么Azure AD B2C cookie没有过期,用户没有被要求再次验证?我假设在AD B2C中使用上述设置会导致用户重新登录,这是我想要的行为

注意,“让我登录”选项已禁用,用户无法设置


此外,我没有使用脱机访问范围,因此不会向我的应用程序提供刷新令牌。因此,导致问题的不是刷新令牌

根据我的理解,在上述场景中,刷新令牌仍然有效,并将用于获取新的ID令牌,无需用户交互

刷新令牌是安全令牌,您的应用程序可以使用它在OAuth 2.0流中获取新ID令牌和访问令牌。它们为您的应用程序提供代表用户长期访问资源的权限,而无需与这些用户交互


参考文档-

您可能遇到与我相同的问题。请参见

上的答案,我没有使用脱机访问范围,因此我的应用程序无法取回刷新令牌。所以你提到的这个案例没有发生。谢谢Ivan,但是你在AzureAD上设置的策略没有办法设置滚动超时,就像你在B2C上可以设置的那样。只要用户处于活动状态,我们就想让他登录。一旦用户处于非活动状态,在超时后,我们希望注销使用。我也从微软的技术支持部门得到了同样的答案,但是你在AD上设置的策略似乎不支持滚动超时,而只支持绝对超时。你知道是否有办法解决这个问题吗?@Vicky只要用户处于活动状态,就会有一个有效的广告B2C会话,这是Azure端要检查的第一个会话。只有当你的广告B2C会话超时时,Azure才会检查你的Azure广告会话(默认情况下为365天有效),将此更改为15分钟可以解决此问题,因为它是基础会话,仅由Azure本身使用,对您的应用程序不可见。您是否遇到过用户在设置策略后意外注销的问题,如我在回复中所述?谢谢。我会试试看。