使用IdentityServer4和ASP.NET Core身份应该在令牌中注入权限和角色

问题描述 投票:-1回答:1

所以,我现在正在旋转。我已经使用ASP.NET Core身份设置了IdentityServer4,并且需要一种处理角色和权限的方法,以便可以过滤出系统中谁有权访问端点。所以这里是两难的地方。

  1. 我应该将所有权限和角色注入访问令牌。我看到了很多开发人员,但是正如我记得Brock Allen和Dominick Baier在this talk(at the time I've copied video)中提到的那样,这不是一个好主意,因为如果您有多个Apis,该怎么办(我暂时不会,但将来可能会)需要不同的权限集(显然,您可以通过请求授权的client_id注入权限和角色,但idk是最好的主意)。但是另一方面,Auth0具有RBAC实现,并将它们注入令牌。

  2. 是否可以选择在WebApi中包含UserManagerRoleManager并具有到IdentityServer数据库的连接字符串(我在下面的图片中附加了我的基本流程和基本体系结构)?在这种情况下,我将在每个请求的数据库上都有一个查询,但是,嘿,SQL Server很快:)。

  3. [暴露了IdentityServer Api上用于管理员工角色和权限的端点(我最不喜欢这个想法,但我只是想把它摆在那里)

这些方法中的任何一种是好方法还是最好的方法位于中间某个位置(或者没有最好的方法?

My rudimentary architecture

oauth-2.0 identityserver4 openid-connect asp.net-core-identity
1个回答
0
投票

角色和权限往往是特定于应用程序的,在授权服务器上管理起来会更加困难。

[我发现在大多数情况下,API声明缓存是一个更好的解决方案-因为它可以非常清晰地分离出关注点。

请参阅我的这些资源以获取更多信息;

© www.soinside.com 2019 - 2024. All rights reserved.