【问题标题】:What is the best way to implement different User Roles/Permissions depending on "Project"?根据“项目”实施不同用户角色/权限的最佳方法是什么?
【发布时间】:2022-01-27 16:34:40
【问题描述】:

我们当前的 API 利用 ASP.Net 身份和基于策略的权限进行授权。它使用用户角色作为声明。这些声明被 ClaimsTransformer 类拦截,用户权限从包含用户映射(缓存)的数据库中读取。这一切都很好。

我遇到的问题是 API 的范围扩展到包括不同的“项目”,例如,用户可以在一个项目中是 Creator,而在另一个项目中是 Consumer。有没有办法将这些要求与 .NET Core 的基于角色/策略的授权相协调?还是在每次请求时向数据库查询这些权限的最佳方法是什么?

【问题讨论】:

  • 你好,这里有类似的问题,你可以看看它是否对你有帮助。 link
  • 谢谢,但该链接与我的要求无关

标签: asp.net-core .net-core authorization identityserver4


【解决方案1】:

授权很难,观看此视频是一个很好的起点:

然后使用 policiesrequirements 是我的处理方法,这个资源是一个很好的参考:

下图显示了需求概念在 ASP.Net Core 中的工作原理,您可以在其中定义一个需求,然后让一个或多个处理程序独立地“投票”用户是否获得批准。

【讨论】:

  • 谢谢,我查看了您的链接,但无法理解这对我的情况有何帮助。您能否帮助将这种基于处理程序的方法转化为我的问题陈述?
  • 在处理程序中,您可以让他们检查您的授权数据库。我认为重点是首先将身份验证(用户是谁)与他允许做的事情(授权)分开。方法是不再关注角色,而是关注索赔,比如医生,既可以是医生,也可以是患者。
猜你喜欢
  • 2010-09-17
  • 2017-10-04
  • 1970-01-01
  • 1970-01-01
  • 2016-12-18
  • 1970-01-01
  • 1970-01-01
  • 2017-08-12
  • 2014-07-30
相关资源
最近更新 更多