更改 Azure AD B2C 访问令牌生命周期不起作用

Posted

技术标签:

【中文标题】更改 Azure AD B2C 访问令牌生命周期不起作用【英文标题】:Changing Azure AD B2C Access Token lifetime doesn't work 【发布时间】:2020-03-09 04:01:59 【问题描述】:

我去了我的 Azure B2C → 用户流(策略) → “注册并登录 V2”类型的流 → 属性 → 令牌生命周期。

在那里,我将“访问和 ID 令牌生命周期(分钟)”从 60 更改为 15。然后我保存了。我清空了缓存并刷新了页面以确保该值确实被修改了。

今天,24 多小时后,我所有的访问令牌仍然有 60 分钟的生命周期。我不明白。我直接从一个全新的授权码中获得了访问令牌。

我应该等待更长时间吗?它是 Azure 中的错误吗?还是我做错了什么?

【问题讨论】:

这在 V2 用户流上重现。看起来像一个错误。 我们已向工程团队报告。 @J-Flex 能否请您将邮件发送至 AADB2CPreview@microsoft.com,并附上您的租户 ID? 我有更多关于我的问题的信息:检索访问令牌时,我在 http 响应中得到了 900 的过期时间,但令牌内的过期时间仍然是发出后一小时。跨度> 【参考方案1】:

我没有在我这边重现您的问题。此更改不会延迟生效。确保您使用相同的应用程序(clientId)来检索访问令牌。

这是我的测试步骤和结果,供您参考。

1.将令牌生命周期设置为 60 分钟。

使用身份验证代码流获取访问令牌。

获取授权码。

https://tonyb2ctest.b2clogin.com/tonyb2ctest.onmicrosoft.com/oauth2/v2.0/authorize?p=B2C_1_testsignupin
&client_id=c3a6429c-01XXX-ae02-1579b3f3fa9c
&response_type=code
&redirect_uri=https://windowXXXsbowman.azurewebsites.net/.auth/login/aad/callback
&response_mode=query
&scope=https://tonyb2ctest.onmicrosoft.com/api/user_impersonation
&state=12345

获取访问令牌

https://tonyb2ctest.b2clogin.com/tonyb2ctest.onmicrosoft.com/oauth2/v2.0/token?p=B2C_1_testsignupin

2.将令牌生命周期设置为 15 分钟。

【讨论】:

好的,我有一个奇怪的结果:我只查看了令牌(“exp”)内的过期时间,它总是从现在开始的一小时,但是在我得到的 http 响应的响应中令牌确实像您的屏幕截图中那样说 900s。你令牌中“exp”的值是否也在 900 秒后? @JFlex 我可以重现您的问题。我已将其报告给 Azure B2C 支持团队。如果有任何更新,会通知您。

以上是关于更改 Azure AD B2C 访问令牌生命周期不起作用的主要内容,如果未能解决你的问题,请参考以下文章

是否可以强制禁用 Azure AD B2c 中的访问令牌?

在 Postman 中为 Azure AD B2C 请求访问令牌

在 Postman 中为受 Azure AD B2C 保护的 Azure Function App 请求访问令牌

在 Azure AD B2C 中请求令牌时缺少范围“scp”

Azure AD B2C 与 ASP.NET Web API 发出令牌,用于 Web API 中的身份验证和访问 MS Graph API

仅验证从 Azure B2C AD 生成的 JWT 令牌的签名 [重复]