Ada*_*dam 5 jwt openid-connect aspnet-contrib asp.net-core openiddict
我将 ASP.NET Core 与 OpenIddict、JWT、资源所有者授予和基于声明的角色一起使用。不执行任何策略的授权正在按预期进行。
我想对某些控制器和操作方法强制执行授权策略。我的所有用户都有角色声明,因此我在启动中执行了以下操作:
services.AddAuthorization(options =>
{
options.AddPolicy("Admin", p => p.RequireClaim("Admin");
});
Run Code Online (Sandbox Code Playgroud)
我对操作方法做了以下操作:
[Authorize("Admin")]
public async Task<string> Index()
{
return "Yes";
}
Run Code Online (Sandbox Code Playgroud)
没有“管理员”,我能够访问该资源,添加“管理员”后我不能。
我假设是因为我生成的 JWT 令牌没有用户声明。
您需要请求要roles在访问令牌中复制的角色的范围(将来可能会更改)。
POST /connect/token HTTP/1.1
Host: server.example.com
Content-Type: application/x-www-form-urlencoded
grant_type=password&username=johndoe&password=A3ddj3w&scope=roles
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1111 次 |
| 最近记录: |