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

问题描述 投票:0回答:1

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

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

Role: ["Finance", "Manager"]

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

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

[我的问题是,该政策必须阅读“角色”声明的一部分“管理”的存在。如何制定在声明数组中查找元素的策略?我尝试了RequireClaim,也尝试按照policy.RequireClaim(“ Role”)。RequireClaim(“ Admin”)将其链接无济于事。

jwt authorization asp.net-core-3.1
1个回答
0
投票

我通过此重载解决了它:

services.AddAuthorization(options =>
            {
                options.AddPolicy("Admin", policy => policy.RequireClaim("Roles", "Admin"));
            });
© www.soinside.com 2019 - 2024. All rights reserved.