【发布时间】:2017-06-26 12:21:07
【问题描述】:
坦率地说,我有一个实体级授权要求。我希望获得有关此权限结构的一些指导,我如何在 .NET 4.5 中实现它,以及是否有办法改进它。
这里是:
我有一组数据结构如下:
在哪里
-
Fleet是零个或多个Cars的集合。 - 一个
Fleet可以包含其他Fleets
以后可以出于组织目的对舰队进行重组和移动。
我在系统中有几个角色具有与这些实体相关的权限:
- 车主:可以在车队中添加或移除汽车
- 经理:为汽车分配司机
- 司机:允许简单地驾驶汽车
- 技工:可以修车
授权逻辑允许系统中的User 被授予对具有一个或多个角色的Fleet 或Car 的访问权限。
这里有一些场景可以帮助解释:
- 如果我授予
UserJim 以Driver的角色访问Fleet#5,他就可以驾驶车队#2 下的任何汽车.由此产生的权限允许他驾驶 #4、5、6 号汽车 - 如果我授予用户 Maura 作为 Mechanic 访问
Car #1的权限,则生成的权限仅允许她修理 #1 车。 - 如果我授予用户 Sarah 使用角色
Owner和Mechanic访问 Fleet #2,则允许她向 Fleet #2、4、5 添加和删除汽车 并且她可以修理 #1、2、3、4、5、6 号车。 - 如果我授予用户 Jeremy 以
OwnerAND 以Driver身份访问 Fleet #6 的用户 Jeremy,则生成的权限允许他添加并将车辆移至所有车队并驾驶 7 号、8 号车。他不能驾驶除 7 号和 8 号车以外的任何其他车辆。
这种实体级授权的好方法是什么?
如果重要的话,我们使用 .NET 4.5.1 和 EF6 Code First,构建在 ASP.net Boilerplate 之上。
【问题讨论】:
-
我来晚了,但是这个细粒度的授权解决方案可以帮助你:zanzibar.academy
标签: claims-based-identity access-control role-base-authorization role-based role-based-access-control