所以,我现在正在旋转。我已经使用ASP.NET Core身份设置了IdentityServer4,并且需要一种处理角色和权限的方法,以便可以过滤出系统中谁有权访问端点。所以这里是两难的地方。
我应该将所有权限和角色注入访问令牌。我看到了很多开发人员,但是正如我记得Brock Allen和Dominick Baier在this talk(at the time I've copied video)中提到的那样,这不是一个好主意,因为如果您有多个Apis,该怎么办(我暂时不会,但将来可能会)需要不同的权限集(显然,您可以通过请求授权的client_id注入权限和角色,但idk是最好的主意)。但是另一方面,Auth0具有RBAC实现,并将它们注入令牌。
是否可以选择在WebApi中包含UserManager
和RoleManager
并具有到IdentityServer数据库的连接字符串(我在下面的图片中附加了我的基本流程和基本体系结构)?在这种情况下,我将在每个请求的数据库上都有一个查询,但是,嘿,SQL Server很快:)。
这些方法中的任何一种是好方法还是最好的方法位于中间某个位置(或者没有最好的方法?
角色和权限往往是特定于应用程序的,在授权服务器上管理起来会更加困难。
[我发现在大多数情况下,API声明缓存是一个更好的解决方案-因为它可以非常清晰地分离出关注点。
请参阅我的这些资源以获取更多信息;