相关疑难解决方法(0)

如何将ASP.net身份角色放入Identityserver4身份令牌

虽然我很高兴IdentityServer4存在并且在许多方面使我在身份验证方面的生活变得更加容易,但我偶然发现了问题以及在社区中为声明添加角色的许多讨论.

我的要求很简单:

  1. 我开发了需要身份验证和授权的应用程序(xamarin表单)
  2. 我需要一个系统来存储我的用户的身份(名称,密码,角色,电话...) - > ASP.net身份
  3. 我需要一个系统来验证我的用户 - > IdentityServer 4
  4. 每个用户的角色非常有限(用户/管理员),不会更改
  5. 我需要一个API后端和一个MVC管理站点(asp.net核心)
  6. 我想使用[Authorize(Roles ="Admin")]限制对某些API/MVC控制器的访问

我花了无数个小时尝试不同的配置,以便在认证后将asp.net Identity角色传递给我的MVC应用程序,但没有运气.目的如第6点所述.

我也花了无数个小时阅读,但我感觉自版本v1.0.0以来,关于角色的实现IdentityServer4.AspIdentity已经发生了很大的变化.

在阅读了很多关于这一点后,仍然不清楚如何实际实现这一点,因为似乎仅在2个月前描述的一些解决方案不再有效.

所以,现在我相信有两条路:

  1. 仅通过请求身份令牌并使用AlwaysIncludeInIdToken将角色置于身份令牌中?
  2. 让客户端使用userinfo端点检索角色,并以某种方式将它们注入到httpcontext(?)中,使用[Authorize(Roles ="Admin")]来检查mvc?

无论如何,这是我的假设.

那么,请详细帮助解释/记录,以便我们能够以持久的方式开始实施吗?一些可行的例子也很棒.

asp.net-mvc asp.net-core identityserver4

8
推荐指数
1
解决办法
3955
查看次数