首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于索赔的OpenId连接身份验证

基于索赔的OpenId连接身份验证
EN

Stack Overflow用户
提问于 2016-07-23 23:03:17
回答 1查看 897关注 0票数 5

我使用ASP.NET核心与OpenIddict,JWT,资源所有者授权和基于索赔的角色。没有强制执行任何策略的授权正在按预期工作。

我想对一些控制人员和行动方法执行授权政策。我的所有用户都有角色声明,因此我在启动过程中做了以下操作:

代码语言:javascript
运行
复制
services.AddAuthorization(options =>
{
    options.AddPolicy("Admin", p => p.RequireClaim("Admin");
});

我在行动方法上做了以下几点:

代码语言:javascript
运行
复制
[Authorize("Admin")]
public async Task<string> Index()
{
    return "Yes";
}

如果没有"Admin",在添加"Admin“之后,我就可以访问资源了。

我假设这是因为我生成的JWT令牌没有用户声明。

  • 我的JWT是否应该包含让令牌工作的用户角色声明?
  • 如何使用OpenIddict发送角色声明?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-24 00:50:11

您需要请求roles作用域,以便在访问令牌中复制角色(将来可能会发生变化)。

代码语言:javascript
运行
复制
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
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38547157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档