[英]Does ASP.NET Core's policy-based authorization require specific claim types in the token?
我正在考虑在我的 ASP.NET Core API 中从基于角色的授权切换到基于策略的授权。
我目前正在使用 JWT 来处理授权,当前用户的角色作为ClaimTypes.Role
添加到访问令牌中。 我的猜测是,默认的[Authorize]
属性使用ClaimsPrincipal.IsInRole()
方法来授权请求,该方法又专门查看声明类型等于ClaimTypes.Role
的声明。
现在,如果我切换到基于策略的授权,我需要用我的访问令牌中的权限替换角色。 问题是,我可以继续将这些权限作为ClaimTypes.Role
添加到我的令牌中,还是应该使用不同的ClaimTypes
?
无需修改 ClaimTypes.Role,您可以继续使用它。
根据这篇文章的描述,我建议你可以使用基于策略的授权也会检查角色声明。
builder.Services.AddAuthorization(options =>
{
options.AddPolicy("AtLeast21", policy =>
policy.RequireRole(""));
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.