是否有人有任何架构,数据模型或建议用于创建考虑多租户的用户/角色管理系统。例如,组织A中的用户可以被分配给某个项目,某个应用程序,组织B中的角色。任何想法?我一直在阅读RBAC,只是寻找一个很好的例子。
由于
答案 0 :(得分:3)
答案 1 :(得分:2)
你看过Rhino security了吗?它可能不会完全符合您的要求,但Ayende在帮助您完成安全模型方面做得非常出色。同样的发展过程,可以给你一个很好的起点。
答案 2 :(得分:2)
有关 RBAC 的简要信息: 基于角色的访问控制系统是一种基于组织用户的角色限制对“某些源或应用程序或应用程序的某些功能”的访问的方法。
此处,限制可以通过多个权限进行,这些权限由管理员用户创建以限制访问权限,这些权限共同代表一个角色,该角色将分配给用户。
如果我们在RBAC中稍微深入一点,它基本上包含3个功能。
1)身份验证 - 确认用户的身份。通常通过用户帐户和密码或凭证来完成。
2)授权 - 它定义了用户在应用程序中可以执行和不可执行的操作。防爆。允许“修改订单”,但不允许“创建新订单”。
3)审核用户对应用程序的操作。 - 它跟踪用户对应用程序的操作,以及谁已授予哪些用户访问权限?这是RBAC系统的基本顶视图。
对于多租户应用程序,我建议使用角色和权限'管理群组和用户。
让我们举个例子。
该应用程序有多个客户端(租户):
Client A – has – 100 users [Tenant A]
Client B – has – 50 users [Tenant B]
Client C – has – 100 users [Tenant C]
因此,情况应该是这样的,应该允许该客户端的每个客户端和用户仅访问应用程序的特定功能,并且这些客户端的管理员应该只能管理他们的用户。
所以,为了解决这个问题,我们可以
组'客户A'及其后代组将包含'客户A'的用户,以及其他客户或组织的用户。
因此,将为用户分配适当的组,并将角色分配给特定组。
您可以查看本文 - 其中介绍了如何通过我工作的VisualGuard提供的随时可用的框架来处理用户和角色管理的多租户应用程序。
答案 3 :(得分:1)
你在.NET中,但对于PHP世界中的我们,Zend Framework提供了一个轻量级的访问控制框架,使您能够构建自己的ACL实现,使您能够理解概念并在.NET中构建自己的概念。 http://framework.zend.com/manual/en/zend.acl.introduction.html。
如果您需要其他帮助,我可以提供一个MYSQL工作台文件,其中包含我们当前正在使用的实现