我正在使用ASP.NET Core与OpenIddict,JWT,资源所有者授予和基于声明的角色 . 未执行任何策略的授权正如预期的那样工作 .
我想对某些控制器和操作方法强制执行授权策略 . 我的所有用户都有角色声明,因此我在启动时执行了以下操作:
services.AddAuthorization(options =>
{
options.AddPolicy("Admin", p => p.RequireClaim("Admin");
});
我在动作方法上做了以下几点:
[Authorize("Admin")]
public async Task<string> Index()
{
return "Yes";
}
没有“管理员”,我能够访问资源,添加“管理员”后,我不能 .
我假设因为我生成的JWT令牌没有用户声明 .
-
我的JWT是否应包含令牌的用户角色声明?
-
如何使用OpenIddict发送角色声明?
1 回答
您需要请求
roles
范围,以便在访问令牌中复制角色(将来可能会更改) .