繁体   English   中英

ASP.NET Core 的基于策略的授权是否需要令牌中的特定声明类型?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM