【问题标题】:Role based Authorization on WebApi Controllers in IdentityServer4?IdentityServer4中WebApi控制器的基于角色的授权?
【发布时间】:2016-12-22 03:17:26
【问题描述】:

如果我有两个 .net 核心 WebApi 控制器,AdminController 和 UserController(在一个项目中)。两者都需要授权,那么如何在 IdentityServer4 中将它们设置为 2 个范围,以便管理员用户可以访问两个控制器,但简单用户无法访问管理员控制器,而只能访问简单用户控制器?我的客户属于 Angular 2 类型。是否有任何示例也显示了基于角色的授权? 谢谢,特立独行

【问题讨论】:

    标签: asp.net-core-1.0 openid-connect identityserver4


    【解决方案1】:

    可能不是您问题的明确答案(因为它不涉及 2 个范围) - 但它可能会引导您到某个地方。

    我假设您使用 TokenValidation middleware,并且您的 api 是使用 IdentityServerAuthentication 设置的

    您可以拥有一个角色声明,它表明用户拥有什么角色(即用户、管理员)。 然后,您可以使用 [Authorize(Roles="admin")] 属性检查管理员 api 的角色,对于用户 api,只需使用确保用户登录的 [Authorize],或将两个角色指定为逗号分隔列表([Authorize(Roles="admin,user")]) 如果需要。

    即:

    [Authorize(Roles="Admin")]
    public class AdminController : ApiController
    {
    

    这是 .net Core 的 Authorize 属性文档的链接:

    https://docs.microsoft.com/en-us/aspnet/core/security/authorization/roles

    【讨论】:

      猜你喜欢
      • 2017-04-12
      • 1970-01-01
      • 2014-07-24
      • 1970-01-01
      • 1970-01-01
      • 2020-06-22
      • 2019-05-27
      • 1970-01-01
      • 2022-01-01
      相关资源
      最近更新 更多