问题标签 [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 投票
10 回答
50913 浏览

ruby-on-rails - 最佳基于角色的访问控制 (RBAC) 数据库模型

跟踪 Web 应用程序基于角色的访问控制的最佳数据库模式是什么?

我正在使用 Rails,但是 Google 链接的 RBAC 插件看起来没有维护(只有 300 次提交到 SVN;最新的是差不多一年前)。

这个概念很简单,可以从头开始实施,但又足够复杂和重要,值得一试。

那么其他人如何构建和实现他们的 RBAC 模型呢?

0 投票
3 回答
1729 浏览

asp.net - 用于asp.net的rbac?

是否有用于 asp.net 的开放式 rbac 框架?Rails 有一些解决方案,但我找不到用于 asp.net 的简单 rbac 系统。有什么可以使用和扩展的吗?

0 投票
4 回答
24535 浏览

.net - 如何检索用户所属的所有角色(组)?

有没有办法在不通过方法明确检查的情况下获取 Windows 身份验证用户所在的角色列表WindowsPrincipal.IsInRole

0 投票
2 回答
3439 浏览

ldap - 在 LDAP 中表示 RBAC 参与者

当使用 LDAP 存储实现 RBAC 模型时(我使用 Apache Directory 1.0.2 作为测试平台),一些参与者显然可以映射到特定的对象类:

  • 资源 - 我没有看到一个清晰的映射。applictionEntity 似乎只是为了这个目的而切线
  • 权限 - 权限可以被视为单一用途的角色;显然我没有考虑 LDAP 权限,因为它们管理对 LDAP 对象和属性的访问,而不是对资源的 RBAC 权限
  • 角色 - 直接映射到 groupOfNames 或 groupOfUniqueNames,对吗?
  • 用户 - 人

在过去,我看到过在目录中不以任何方式处理资源的模型,并且权限和角色被映射到 Active Directory 组。

有没有更好的方式来代表这些演员?讨论模式的良好映射和意图的文档怎么样?

0 投票
6 回答
273 浏览

.net - 角色检查应该在调用堆栈的哪个位置进行?

在我的典型应用程序中,用户单击 aspx 页面中的按钮,调用 C# 业务对象,然后运行存储过程。

角色检查应该在堆栈顶部、堆栈底部还是在每个级别进行?似乎如果恶意用户可以调用一个方法,他可以调用任何方法,因此为了有效的安全性,您需要检查每个方法(并且要编写很多额外的代码)。

这是一个典型的调用堆栈来说明我的问题:

0 投票
2 回答
4295 浏览

database-design - 基于角色的访问控制数据库设计

这个问题不是关于 RBAC 系统本身的数据库设计,而是当 Web 应用程序允许其用户提交内容时,如何将此数据库与特定于应用程序的数据库一起使用。

就目前而言,我的 RBAC 应该可以轻松地用于简单的后端管理应用程序,员工可以在其中添加和更新记录——例如,在线商店通常没有用户提交的内容。这两个数据库可以保持独立。但是,我不确定如何将我的 RBAC 设计用于允许其用户提交内容的网站/应用程序。我将在两个数据库中有两个用户表,它们需要添加/更新记录的权限。

  1. 我是否将我的 RBAC 数据库合并到网站数据库中并共享用户表?

  2. 我要把这两个分开吗?

  3. 做点别的吗?

如果选项 2 我这样做:

  • (A) 将网站数据库中的用户复制到 RBAC 用户表中

  • (B) 在网站数据库中创建与用户表的关系

  • (C) 在网站数据库中为网站用户创建一个新的 RBAC 系统,并为管理员用户提供单独的 RBAC?

A 似乎很糟糕,因为我正在复制数据,但似乎很容易实现。B 似乎很难与两个单独的用户表建立关系。C 也是重复的,但我可以在不影响“管理员”RBAC 的情况下大量自定义此 RBAC。

我基本上想让我的 RBAC 系统尽可能地可重用,并且让特定于应用程序的用户能够提交内容让我有点难以理解。

我的这个小 RBAC 系统主要是我学习的一种方式,所以请不要通用“你应该使用框架 x/y/z”。使用我最近发现的一个术语,我有点像一个车轮书呆子,每当我好奇的时候就喜欢重新发明它们!:)

我将在我的网站上使用 MySQL 和 PHP,但这无关紧要,因为这是我在这里询问的数据库设计。

如果我的问题不清楚,请告诉我,我会进一步解释。谢谢大家的时间。

0 投票
1 回答
861 浏览

oracle - 通过 Solaris RBAC 执行 Oracle RAC 集群命令?

执行Oracle RAC集群管理命令等$ORA_CRS_HOME/bin/crs_start需要 root 权限。

使用Solaris RBAC(基于角色的访问控制),可以授予非root用户执行这些命令的权限,但这些命令仍然在内部失败。例子:

是否有适用于 Oracle RAC 的完整 RBAC 解决方案,或者执行程序是否需要root

编辑:请注意,我的原件/etc/security/exec_attr包含:

正如Martin在下面建议的那样,需要将其更改为添加gid=0为:

0 投票
1 回答
508 浏览

windows-server-2003 - 以编程方式将角色分配给 Microsoft AzMan 中的范围?

AzMan在 Windows Server 2003 上使用,并且我编写了一个管理应用程序,该应用程序完全隐藏AzManMMC安全团队之外。
但是,我很难实现MMC.

我有一个名为 的角色User,以及一个名为 的角色Branch User,它只包含User角色。我想User在所有数据(Role Assignments)级别分配角色Branch User,在范围级别分配角色。
但是,我找不到以编程方式将Branch User角色分配给范围而不丢失其定义的方法。我可以分配角色(通过调用CreateRole范围),但它似乎只是创建了一个新的空白角色。当我在 中右键单击它MMC,单击属性,然后单击Show Definition,它没有任何内容。

此外,如果我尝试调用AddTaskIAzRole对象来添加User它,它不会像预期的那样工作。它会将角色中的所有任务添加User到我的Branch User角色中,但不会添加角色本身。

有没有办法做到这一点?

0 投票
1 回答
279 浏览

language-agnostic - 访问控制列表

我一直在为即将到来的项目阅读(基于角色的)访问控制列表,并且在弄清楚它将如何为我工作时遇到了一些麻烦。

在我看到的示例中,他们总是谈论允许和拒绝访问控制器/模型的特定操作。例如:组“访客”可以read发帖,“会员”可以readedit,“管理员”可以create, read, update, delete

这些事情对我来说似乎有点太全球化了。在我自己的情况下(为这个例子调整它),会有大量的组,每个组只能edit发布属于某个类别(或其他一些标准)的帖子。

我认为让它对我有用的唯一方法是为每个类别的帖子创建一个新的 ACO:

然后分别授予每个人的访问权限(对于需要访问所有权限的管理员来说,这可能是一个皇家 PITA)

ACL 模式如何涵盖这样的情况?有没有更好的方法?

我最终将在 PHP 中使用 Cake 实现这一点,因此欢迎使用 PHP 的示例,但不是必需的!

0 投票
3 回答
3495 浏览

design-patterns - 访问控制设计模式

我正在开发一个 PHP 应用程序,我想为我的一些对象添加访问控制。我没有将这个问题标记为 PHP,因为我觉得这个问题不是特定于语言的。

假设我有一个“服务类”

许多服务使用它作为基类。一个伪示例是:

后来我想添加访问控制。示例“getCompanyInfoById”方法是“读取”操作,因此需要“读取”权限。

此时我可以通过以下方式实现它:

  1. 将访问控制添加到服务类。每个方法(例如 getCompanyInfoById)都必须在内部调用“hasPrivilege”方法,然后才能完成操作并返回结果。
  2. 将所有服务对象包装在某种代理对象中,该对象将在调用内部对象中的方法之前检查权限。
  3. 完全分离访问控制,并强制“调用者”在调用方法之前检查权限。

每个选项的缺点:

  1. 这需要更改所有服务,并要求它们了解访问控制。我觉得这违背了关注点的分离。
  2. 这破坏了 OOP 特性,例如多态性。调用者不再知道任何服务支持哪些接口。
  3. 这是最灵活的,但最大的缺点是检查权限现在是隐式的。开发人员可能会“忘记”或复杂的代码路径会导致调用未经授权的服务。

有没有更好的方法来解决这个问题?