根据JWT中存储的角色设置授权策略

时间:2020-02-10 18:42:17

标签: jwt authorization asp.net-core-3.1

我已经建立了一个Asp.Net Core 3.1 Api应用程序,该应用程序将令牌授予用户。

用户可能具有多个角色。 JWT在“角色”声明中包含以下角色:

Role: ["Finance", "Manager"]

身份验证有效,但是我正在尝试使用以下方法设置授权:

services.AddAuthorization(options =>
        {
            options.AddPolicy("Admin", policy => policy.RequireRole("Admin"));
        });

我的问题是,此策略必须读取“ Admin”的存在,这是“ Role”声明的一部分。如何制定在声明数组中查找元素的策略?我已经尝试了RequireClaim,也尝试按照policy.RequireClaim(“ Role”)。RequireClaim(“ Admin”)的方法将其链接。

1 个答案:

答案 0 :(得分:1)

我通过以下重载解决了它:

services.AddAuthorization(options =>
            {
                options.AddPolicy("Admin", policy => policy.RequireClaim("Roles", "Admin"));
            });
相关问题