问题标签 [rbac]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
38847 浏览

mysql - 基于角色的访问控制的数据库架构

我目前正在为本地协会开发成员管理,目前正在开发数据库模式。我想与您分享它以改进它,并为其他人提供基于角色的访问模型 (RBAC) 的示例。我将不胜感激任何建设性的批评,尤其是关于我在表格之间使用的关系。

链接到高分辨率:http: //i.stack.imgur.com/WG3Vz.png

继承人的架构:数据库架构

这个怎么运作:

我正在将现有客户(实际上是协会的成员)从外部应用程序映射到我的管理应用程序中。(客户表)

该关联在 Division、Subdivisions 等中结构化(intern_structures 表)。每个客户都可以是多个部门、子部门、部门等的成员。

每个客户都可以在此类会员(部门,...)中担任一个或多个角色,例如总裁,精算师,财务主管等,并且每个角色都具有某些特权,该角色的所有者可以将其应用于其部门,细分,部门等中的其他人.

凭证与应用程序的某个操作相关联。凭证的所有者可以对他范围内的其他成员执行此操作。可以有多个“独立”应用程序,但它们都共享相同的身份验证/授权系统。

应用程序由模块/子模块/操作等构成。示例可能是“个人详细信息”模块,该模块包含一个名为“图片”的子模块,您可以在此图片上应用“查看、删除、编辑”操作。但是您不能删除任何图片,除非您尝试删除其图片的人在您有足够角色的部门/部门中。

内部结构和应用结构都是树,实现为邻接表嵌套集。邻接表确保完整性,嵌套集允许我快速遍历树。

一个例外是您可以直接向某人提供某些凭据(client_credentials)。如果有人需要对不在他的部门/部分中的人执行某些操作,则需要这样做。

因此,某人可以成为多个部门/部门的成员,并在他所属的每个部门/部门中获得多个角色。我将合并某人通过他的多个角色拥有的所有凭据。并且凭证总是正面的,这意味着限制性凭证是不可能的。

0 投票
6 回答
24529 浏览

java - 基于角色的访问控制

有没有java开源的基于角色的访问控制系统?

0 投票
1 回答
254 浏览

sql - 将角色建模为 User 表上的布尔列的缺点

我正在使用 CanCan 为 RBAC 开发 Rails 应用程序,我只有 3 个角色,也许我会在某个地方再添加 1 或 2 个角色。

过去,我一直将角色作为自己的实体,通过 m2m 链接表加入用户。有这么少的静态角色,这似乎有点矫枉过正。所以我想简单地为每个角色添加布尔列到我的用户表中。我也可以使用位掩码(就像 CanCan 示例一样),但我不太热衷于在单个列中存储多个值。

所以我的问题是,在这种情况下最好的做法是什么:位掩码、多个布尔列或正确规范化的 m2m 关系?

0 投票
1 回答
1950 浏览

php - RBAC 中的 BizRules(业务规则)真的安全吗?

RBAC(基于角色的访问控制)中的 BizRules 的想法让我感到恶心。它基本上是一种定义脚本以在授权期间针对数据运行的方法。

例如 Yii 框架支持:http ://www.yiiframework.com/doc/api/1.1/CAuthManager#createRole-detail

public CAuthItem createRole(string $name, string $description='', string $bizRule=NULL, mixed $data=NULL)

以下是执行业务规则的源代码:

因此,您可以执行以下操作:

它基本上评估了在其上下文中将 $params 设置为给定数组的 bizRule。

在安全性方面,我不喜欢那些业务规则。有更好的方法吗?

0 投票
1 回答
1447 浏览

asp.net - ASP.NET,基于开放 LDAP 角色的安全性

我在 asp.net 中开发了几个应用程序,并通过 Open LDAP 进行身份验证。应用程序运行良好,我对身份验证没有任何问题。

主要问题是管理用户角色和职责,并且需求变化非常频繁。任何人都可以建议一个开源框架来管理用户角色或任何其他方式来管理用户角色,即在开放 LDAP 等中......

我研究过一些像 Visual Guard 这样的商业解决方案,但我正在寻找开源。

0 投票
2 回答
772 浏览

.net - 需要一些关于我自己的基于角色的访问控制 (RBAC) 的建议

我有一个非常简单的个人资料页面,用户可以在其中上传图片和视频。我已经实现了自己的角色系统,但我没有使用 .NET(我想学习并构建自己的角色系统)。我最多有 10'000 个用户,大约 50-100 个用户同时使用它。

我在处理我的 RBAC 的数据库中有三个表:

角色管理员、用户、经理、访客
权限SendEmail、AdvancedSearch、RemoveUser ...等。

授权:在此表中,我将角色映射到权限。每次操作需要权限时,我都会进行检查。如果权限<->角色在表中,我返回 true 并且操作被授权。

所以,这里有几个关于这个场景的问题。

  • 这是一种检查授权的轻量级方法吗?通过在用户执行的每个页面加载和操作上查询数据库。
  • 我应该将其保存在 XML 文件中以获得更快的结果吗?
  • 这种 RBAC 有更好的结构吗?

提前致谢!

0 投票
4 回答
4180 浏览

.net - 设置用户/角色管理系统 - 多租户

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

谢谢

0 投票
1 回答
707 浏览

security - 安全架构 - 驱动 UI 和特权(权利)的设置 - 基于角色,每个用户帐户

大公司如何实现他们的安全要求,这些要求集中并用于驱动人们可以做的事情(允许调用某个 Web 服务、提交订单等)以及驱动 UI(禁用按钮、菜单选项、个人表单域)?

我正在考虑 RBAC 架构:用户 -> 角色、角色 -> 特权。

具有基于许多单独的 field-account-user-role-amountThreshhold 权限的复杂应用程序将有很多很多“角色”,并且随着角色数量的增加,管理这些变得复杂。

管理所有这些可能的选项似乎令人生畏,而我之前的经验是在应用程序中硬编码这样的逻辑。

前任:If (User.Roles("IsAccounting")) { btnEditOrder.enabled = false; }

我的任务是设计/实现一个安全服务/架构,它将用作任何/所有应用程序(所有 .NET,但一些 GUI 和一些面向过程)的通用身份验证/授权点。

这是不可能开箱即用的,因为围绕客户帐户的业务组织和基于财务金额的权限层。

例如:John 是用户,他可以查看和提交帐户“Microsoft”和“Google”的请求。Mike 可以查看“Microsoft”和“Google”请求,但只能提交“Google”请求。

帐户/用户的数量庞大且多变。

如果我遵循 RBAC,将会有数百个“角色”来容纳所有必需的权利(特权)。这无济于事,因为最终目标是提供易于管理的 GUI 工具,以便管理人员可以将其直接下属分配给适当的角色。

我正在考虑使用以下 API(伪代码中的草稿)来实现这个安全部分:

应用程序中的用法是这样的: if (securityContext.RequestManager.CanSubmitRequest("Google")) {...}

这样一来,就会有成千上万的“Can(params)”方法来检查权限,这并不容易管理或使用这种模式。

任何链接/想法/指针表示赞赏。

这是一个 .NET 商店,但我从 .NET(成员资格/AzMan)中看到的任何内容都不会为我们提供所需的粒度和委派要求。ActiveDirectory / Oracle LDAP 集成会很好,但不是必需的。

旧(当前)系统使用 LDAP 对用户进行身份验证,但所有授权都在内部完成并存储在经典的“用户、角色、权限”表中。

0 投票
2 回答
257 浏览

php - 在 2 个数据库之间共享用户

我正在用 PHP 开发这个应用程序。该应用程序将包含一个管理区域,该区域还将包含员工功能。应用程序的另一部分是面向客户的网站。

管理区域有自己的数据库。面向客户的网站也有自己的数据库。

在管理数据库中,我有一个包含用户的表,我还计划实现 RBAC,以便用户可以拥有角色、权限等。

面向客户的网站还允许客户注册,并将其存储在客户网站数据库的用户表中。

我需要的是能够让员工在客户网站上登录。他们还需要具有控制他们可以修改客户网站的哪些部分以及他们可以更改客户网站数据库中的哪些行的权限。

实现这一点的最佳方法是什么?

干杯:)

0 投票
4 回答
901 浏览

php - 如何解决具有多个角色的用户的 Zend_Acl 权限冲突?

我正在尝试使用 Zend_Acl 创建一个 RBAC。我的问题是我希望用户能够拥有多个角色,但我不确定如何解决各种角色之间的权限冲突?在同时存在允许和拒绝的情况下,允许是否应该始终覆盖拒绝?与往常一样,非常感谢您抽出时间查看我的问题。干杯!