ASP.NET核心微服务中基于权限的身份验证

时间:2019-09-13 13:26:30

标签: c# asp.net-core authorization microservices asp.net-core-webapi

我有:Users, Groups, Roles, Permissions, UserRoles, UserGroups, GroupRoles, RolePermissions, GroupPermission

权限看起来像这样:

Document.Read
Document.Create
Document.Update
Document.Delete

在管理面板中,这些权限被分配给在那里创建的组/角色

It is necessary to make authorization by permissions。现在的想法是:有一个身份验证/授权服务,该服务具有LogIn方法,该方法将提供JWT令牌供其他微服务和客户端使用

但是如何自己存储许可证?事实证明,如果我们将它们作为静态字符串存储在授权api上,则在执行其他其他CheckAccess ("PermissionName")的api时,我们会丢失“类型安全性”并可能搞砸。 如果您在每个单独的微服务上存储权限,则此问题消失,但是存在将这些权限注册到数据库中并将它们分配给角色/组的问题。

我当然很想在服务中写上CheckAccess (Permissions.Document.Read)

也许有一种方法可以动态地在api方法上动态挂起各种权限?

或者也许我从根本上想错了?

0 个答案:

没有答案