我有一个ASP.net MVC webapp,它使用Azure AD B2C来验证用户 . ASP.net mvc app中的cookie设置为在滚动超时20分钟后过期 . AD B2C中的设置如下:
-
Access and ID token lifetime = 20 minutes
-
刷新令牌生存期= 14天
-
刷新令牌滑动窗口生命周期=有界,90天
-
声明代表政策ID = tfp
-
Web app session lifetime = 20 minutes
-
WebApp session timeout = rolling
-
单点登录配置=应用程序
登出请求中的 -
请求ID令牌=否
这是序列:
-
打开应用程序网址
-
登录AD b2c,重定向回app主页
-
close the tab on browser
-
30分钟后在新的浏览器选项卡中打开主页URL
-
由于ASP.net MVC cookie会话超时,app重定向到AD B2C
-
Azure AD B2C不是要求凭据,而是静默登录用户
-
用户被重定向回主页
为什么Azure AD B2C cookie未到期且用户未被要求再次进行身份验证?我认为使用AD B2C中的上述设置应该会导致用户重新登录,这是我想要的行为 .
注意,“保持登录状态”选项已禁用,用户无法设置 .
此外,我没有使用offline_access范围,因此我的应用程序没有提供刷新令牌 . 因此,不是导致问题的刷新令牌 .
2 回答
您可能遇到了与我相同的问题 . 请参阅Azure AD B2C logout after session timeout上的答案
根据我的理解,在上面描述的场景中,刷新令牌仍然有效,并且将用于获取新的ID令牌而无需用户交互 .
刷新令牌是安全令牌,您的应用可以使用该令牌获取新的ID令牌并访问OAuth 2.0流中的令牌 . 它们代表用户为您的应用提供对资源的长期访问,而无需与这些用户进行交互 .
参考文件 - Azure AD B2C: Token reference