【发布时间】:2020-12-13 17:31:55
【问题描述】:
我正在使用标准 OIDC .NET 库向 ADB2C 发出质询请求。据我了解,这会自动尝试使用缓存中的刷新令牌登录并获得授权,而无需重新请求凭据。
这似乎工作得很好,除了 1 个浏览器 - Android 上的 Chrome。不管我怎么尝试,这个浏览器似乎丢失了刷新令牌,所以大约 1 小时后,它又开始要求提供凭据。我在 Chrome web/mac、edge、IE、safari、FF 上对此进行了交叉检查,它们的行为都符合预期,以保持恒定的登录状态。
有什么想法吗?这应该是独立于我所理解的浏览器,但也许我错过了一个技巧?
更新
即使在访问受 AD 保护的 Web 应用程序时,这似乎也是类似的行为。同样,Chrome 会失去刷新,但其他浏览器都可以。
更新
在令牌过期后尝试访问站点时,我在 Fiddler 中看到了这一点
铬
设置 Cookie:x-ms-cpim-csrf=XXX;域=auth.mywebsite.com;路径=/;相同站点=无;安全的; HttpOnly
边缘
设置 Cookie:x-ms-cpim-sso:mytenant.onmicrosoft.com_0=XXX;域=auth.mywebsite.com;路径=/;相同站点=无;安全的; HttpOnly
所以是的,这是有区别的,但是为什么以及如何解决?
【问题讨论】:
-
你在前端使用 MSAL.js 吗?
-
否,在 .NET 核心 mvc 应用程序中使用此库,并在内存令牌缓存中使用此库 github.com/Azure-Samples/active-directory-b2c-dotnetcore-webapp。
标签: google-chrome openid-connect azure-ad-b2c