azure-ad-b2c - Microsoft 身份平台 (AAD v2.0) 保护的 Azure AD B2C API - 过期的访问令牌在重新启动之前有效
问题描述
我有一个受 Microsoft 身份平台 (AAD v2.0) 保护的 API,但是虽然我已将访问令牌配置为在 B2C 登录用户流中具有 5 分钟的生命周期,但我可以在访问令牌过期后成功使用它。
我有这样的设置:
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApi(options =>
{
Configuration.Bind("AzureAdB2C", options);
options.TokenValidationParameters.NameClaimType = "name";
},
options => { Configuration.Bind("AzureAdB2C", options); });
services.AddControllers();
services.AddAuthorization(options =>
{
// Create policy to check for the scope 'user_access'
options.AddPolicy("UserAccess",
policy => policy.Requirements.Add(new ScopesRequirement("user_access")));
});
控制器受以下属性保护:[Authorize]
我使用 Postman 和标题调用控制器 GET 方法Authorization: Bearer <access token>
我使用(省略参数)获取访问令牌:
GET https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/authorize?
我使用以下方法获取访问令牌:
POST https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/token
该expires_in
字段正确显示 5 分钟。登录策略与用于 API 设置的相同。
如果我在访问令牌过期之前重新启动 API,我可以继续使用它。如果我在 API 过期后重新启动它,它会在重新启动后停止工作。如果我不重新启动它只会继续工作。
这是在调试和本地主机中。
我本来希望访问令牌一旦过期就会被 API 拒绝。我错过了什么?
解决方案
推荐阅读
- javascript - 如何在 Javascript 条形图中传递 JSON 数据?
- javascript - 如何使用 laravel 和 jquery 在数据表中添加行跨度
- amazon-web-services - 我是否可以在不拥有域的情况下在 AWS 提供的 ALB 子域上设置 SSL?
- google-sheets - 从一个单元格中查找多个值
- excel - 使用 MS excel 文件中的 URL 链接下载多个图像
- database - db关闭时如何处理flyway
- python - 正则表达式在标记之间拾取文本并包含最后一个标记
- javascript - 如何将两个API响应数组合并到一个数组中并返回数据Angular 8
- html - 如何在一个包含多个 div 的 div 中选择特定的 P 元素?
- yocto - 使用基本身份验证服务 sstate-cache