【问题标题】:Getting Roles from Token从 Token 获取角色
【发布时间】:2021-09-30 18:25:27
【问题描述】:

我正在尝试从 azure Web 令牌验证角色类型。这是我的授权政策。

services.AddAuthentication(options => {
                options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
            }).AddJwtBearer(o => {
                o.Authority = Configuration["Identity:Authority"];
                o.RequireHttpsMetadata = false;
            });


services.AddAuthorization(options => {
                options.AddPolicy("ApiAccess", policy => {
                    policy.RequireClaim(System.Security.Claims.ClaimTypes.Role, "apiAccess");
                });
});

我可以在令牌中看到我的角色类型的角色。但是,如果我尝试访问我的网络应用程序中的任何页面,则表明我的角色不正确。

"roles": [
        "apiAccess"
    ],

【问题讨论】:

  • policy.RequireClaim 正在验证令牌映射到角色,您在哪里将自己分配给角色?

标签: oauth-2.0 jwt bearer-token


【解决方案1】:

您确定System.Security.Claims.ClaimTypes.Role 解析为roles?如果你直接使用roles 字符串呢:

policy.RequireClaim("roles", "apiAccess");

还是改用.RequireRole 方法?

policy.RequireRole("apiAccess")

【讨论】:

    猜你喜欢
    • 2011-07-04
    • 2012-06-11
    • 2021-04-07
    • 2017-10-18
    • 2022-01-02
    • 1970-01-01
    • 2011-11-29
    • 2022-11-23
    • 1970-01-01
    相关资源
    最近更新 更多