oauth-2.0 - 从 Token 获取角色
问题描述
我正在尝试从 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"
],
解决方案
你确定可以System.Security.Claims.ClaimTypes.Role
解决roles
吗?如果您roles
直接使用字符串怎么办:
policy.RequireClaim("roles", "apiAccess");
还是使用该.RequireRole
方法?
policy.RequireRole("apiAccess")
推荐阅读
- java - Jenkins - Selenium Maven 测试错误 - 未能执行目标
- prolog - 为什么这两个序言代码会返回不同的结果?
- python - 无法使用 anaconda 安装 Python 3.x
- python-3.x - 获取 kerberos 令牌的延迟:python gssapi securitycontext
- python - 具有递归或时间戳错误的最佳假期搜索
- c# - ManualResetEventSlim.Wait() - TimeSpan 与 int 中的超时
- javascript - 在 JS 中使用 IIFE 通过创建私有变量来保护数据
- automata - 图灵机计算器
- javascript - 对象内对象的交叉比较
- git - 使用无法从开发工作站访问的 Git 存储库