.net core 限制AddJwtBearer验证.net core 3.1中的ID令牌
我在.net core 3.1应用程序中实现了令牌验证,如下所示:.net core 限制AddJwtBearer验证.net core 3.1中的ID令牌,.net-core,oauth-2.0,.net Core,Oauth 2.0,我在.net core 3.1应用程序中实现了令牌验证,如下所示: services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(options => { options.Authority = Configuration["AuthorityUrl"]; options.Audience =
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(options =>
{
options.Authority = Configuration["AuthorityUrl"];
options.Audience = Configuration["Audience"];
options.TokenValidationParameters = new TokenValidationParameters
{
NameClaimType = "preferred_username"
};
});
我现在的主要问题是安全威胁,我认为如果用户传递ID令牌,身份验证就会成功传递,这是错误的,因为资源服务器应该只接受访问令牌。这种行为正确吗?如果是,如何将验证限制为仅访问令牌。您的API的任务是验证令牌的属性,并且API通常为下面的项目2和3配置固定值:
- 签名
- 发行人
- 听众
- 到期日
- 范围
- 访问令牌的受众=api.mycompany.com
- id令牌的受众=mywebclientid
此外,一些提供者会在令牌中提供声明,告诉您其类型,尽管这是特定于供应商的。例如,安全性提供了一个“目的”声明-请参见。您的API的任务是验证令牌的属性-并且API通常配置为以下第2项和第3项的固定值:
- 签名
- 发行人
- 听众
- 到期日
- 范围
- 访问令牌的受众=api.mycompany.com
- id令牌的受众=mywebclientid
此外,一些提供者会在令牌中提供声明,告诉您其类型,尽管这是特定于供应商的。例如,Curity提供了一个“目的”声明-请参见。您是对的,我也使用了Curity两年,它的目的声明帮助我发现了其他提供商,但没有发现其他提供商。谢谢你的帮助你是对的,我也使用了2年的安全,它有目的的索赔,帮助我发现,但不是其他供应商。谢谢你的帮助