4

有没有人有任何架构、数据模型或建议来创建考虑多租户的用户/角色管理系统。例如,组织 A 中的用户可能被分配到组织 B 中的某个项目、某个应用程序的角色。有什么想法吗?我一直在阅读 RBAC,只是在寻找一个很好的例子。

谢谢

4

4 回答 4

3

这对你有用吗?

如何为访问控制列表 (ACL) 构建数据模型

于 2011-02-28T20:49:46.427 回答
3

关于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]

因此,场景类似于,每个客户端和该客户端的用户应该只被允许访问应用程序的特定功能,而这些客户端的管理员应该只能管理他们的用户。

所以,为了解决这个问题,我们可以

  1. 定义和管理组(租户)
  2. 将用户或帐户定义为组(租户)的成员并对其进行管理
  3. 通过角色或权限限制应用程序中每个租户的访问
  4. 将安全管理委派给每个客户或组织内的本地用户
    如下所示。

组层次结构: 组层次结构1:

其中“客户 A”组及其后代组将包含“客户 A”的用户,对于其他客户或组织也是如此。

因此,用户将被分配到适当的组,而角色将被分配到特定的组。

你可以查看这篇文章——它展示了如何通过我工作的 VisualGuard 提供的即用型框架来处理用户和角色管理的多租户应用程序。

http://www.visual-guard.com/EN/net-powerbuilder-application-security-authentication-permission-access-control-rbac/secure-saas-and-multi-tenant-apps-with-asp-net-或-wcf-Silverlight.php

于 2015-07-30T10:29:07.627 回答
2

你看过犀牛安全吗?它可能无法完全满足您的需求,但 Ayende 在引导您了解安全模型及其开发过程方面做得非常好,可以为您提供一个很好的起点。

于 2011-02-28T20:51:15.413 回答
1

您在 .NET 中,但对于 PHP 世界中的我们来说,Zend 框架提供了一个轻量级的访问控制框架,使您能够构建自己的 ACL 实现,从而使您能够理解这些概念并在 .NET 中构建自己的http:// /framework.zend.com/manual/en/zend.acl.introduction.html

如果您需要其他帮助,我可以提供一个 MYSQL 工作台文件,其中包含我们当前正在使用的实现

于 2011-09-05T06:05:03.833 回答