ADB2C刷新令牌质询在Chrome Android上不起作用

kgqe7b3p  于 2023-10-14  发布在  Go
关注(0)|答案(1)|浏览(93)

我正在使用标准OIDC .NET库向ADB 2C发出质询请求。据我所知,这会自动尝试使用缓存中的刷新令牌登录,并获得授权,而无需重新请求凭据。
这似乎工作绝对罚款,除了在1浏览器- Chrome在Android上。无论我尝试什么,这个浏览器似乎都丢失了刷新令牌,所以大约1小时后,它再次开始要求凭据。我已经在Chrome Web/Mac、Edge、IE、Safari、FF上交叉检查了这一点,它们的行为都符合预期,保持了恒定的登录状态。
有什么想法吗?这应该是浏览器独立于我所理解的,但也许我错过了一个技巧?

更新

即使在访问受AD保护的Web应用程序时,这似乎也是类似的行为。同样,Chrome失去了刷新,但其他浏览器是好的。

更新

我在Fiddler中看到了这一点,当我尝试在令牌过期后访问网站时,

Chrome

设置Cookie:x-ms-cpim-csrf=XXX; domain= auth.mywebsite.com; path=/; SameSite=None;安全; HttpOnly

Edge

设置Cookie:x-ms-cpim-sso:mytenant.onmicrosoft.com_0=XXX; domain= auth.mywebsite.com; path=/; SameSite=None;安全; HttpOnly
所以是的,有一个区别,但为什么和如何修复?

pgx2nnw8

pgx2nnw81#

这可能是Chrome中SameSite cookie的问题,导致cookie无法按您的预期发送。这里有一些提示可以帮助你:

但我认为首先你应该验证这是否是一个SameSite问题,通过使用像Fiddler这样的工具来捕获流量并验证cookie确实丢失了。在Fiddler中比较不同的浏览器,看看是否有一些差异。
请尝试使用匿名模式登录,这样您的浏览器中就不会有cookie。然后,您应该看到身份提供商和应用程序都设置了Cookie。
在Fiddler中,您可以在过滤器选项卡下启用图片中的第一个项目来标记设置cookie的响应,以便更容易检测何时设置cookie。
为了补充这个答案,我写了一篇博客文章,更详细地介绍了这个主题:Debugging cookie problems

相关问题