问题标签 [abac]
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.
design-patterns - 访问控制设计模式
我正在开发一个 PHP 应用程序,我想为我的一些对象添加访问控制。我没有将这个问题标记为 PHP,因为我觉得这个问题不是特定于语言的。
假设我有一个“服务类”
许多服务使用它作为基类。一个伪示例是:
后来我想添加访问控制。示例“getCompanyInfoById”方法是“读取”操作,因此需要“读取”权限。
此时我可以通过以下方式实现它:
- 将访问控制添加到服务类。每个方法(例如 getCompanyInfoById)都必须在内部调用“hasPrivilege”方法,然后才能完成操作并返回结果。
- 将所有服务对象包装在某种代理对象中,该对象将在调用内部对象中的方法之前检查权限。
- 完全分离访问控制,并强制“调用者”在调用方法之前检查权限。
每个选项的缺点:
- 这需要更改所有服务,并要求它们了解访问控制。我觉得这违背了关注点的分离。
- 这破坏了 OOP 特性,例如多态性。调用者不再知道任何服务支持哪些接口。
- 这是最灵活的,但最大的缺点是检查权限现在是隐式的。开发人员可能会“忘记”或复杂的代码路径会导致调用未经授权的服务。
有没有更好的方法来解决这个问题?
authorization - Web应用程序的细粒度授权
我有一个 C# .net 应用程序,它同时为公司的内部用户和外部客户提供服务。我需要做细粒度的授权,比如谁访问什么资源。所以我需要基于资源或基于属性的东西,而不是基于角色的授权。
我想到的是:
- 为我的 .net 应用程序实现我自己的授权机制和 sql 表
- 使用/实现标准机制,例如实现 XACML 的软件(例如 Axiomatics)
第一种方法的问题是它既不是集中的也不是标准的,因此其他系统无法使用它进行授权。
第二种方法的问题在于它可能更慢(由于每个资源都需要额外的调用)。此外,我不确定市场上的应用程序支持像 XACML 这样的标准授权有多广泛,以使未来的集成更容易。
那么,一般来说,对于应该为内部用户和外部客户服务的 Web 应用程序进行细粒度授权的良好做法是什么?
rbac - 什么是 XACML 配置文件?
我是 XACML(可扩展访问控制标记语言)的新手,我有点困惑。我不明白个人资料是什么。例如 RBAC 或 SAML 配置文件。
它们之间有什么区别?结构和元素不总是一样的吗?
谢谢你的帮助
design-patterns - 是否总是需要 ACL?
对于具有高度复杂访问控制规则的 Web 应用程序,您是否总是使用 ACL?
在确定我的用户权限时,我有很多考虑因素,包括:
- 他们登录了吗?
- 他们是管理员还是普通用户?
- 他们是否在浏览图中的节点?
- 他们正在浏览什么类型的节点?
- 它们与节点的关系是什么(即到节点的路径)?
- 用户的默认设置是什么?
- 节点的默认设置是什么?
- 将用户连接到节点的图边的设置是什么?
- ETC
事实证明,开发 ACL 很困难。过了一会儿,我求助于对每个动作顶部的基本属性进行“if/then”检查,例如if(isAdmin) {...}
这似乎工作正常,我想知道是否应该将其作为永久解决方案保留。因此,问题是:访问控制的复杂性是否会超过 ACL?还是只是我需要更加努力一点?
authorization - XACML 中的按位与函数
使用 XACML 评估引擎是否有一个可以评估 2 个值的按位与函数?如果没有,是否可以在哪里为评估引擎提供自定义功能?如果是这样,你能提供一些关于如何做到这一点的指示吗?
xpath - 使用 XACML 3.0 对 XML 文档进行细粒度访问控制
我想用 XACML 3.0 为 XML 文档表达一个细粒度的访问控制用例,但我不知道是否可以使用完整的 XPath 表达式,例如
这是我的 XML:
如何限制销售额低于 10,000 的客户访问?
authorization - 如何将 XACML 3.0 请求与策略存储中存储的策略进行匹配
嗨,我只想知道如何将来自 PEP 的 XACML 3.0 请求与使用 PDP 存储在策略存储中的策略进行匹配。我将如何根据策略存储中存储的多个策略评估特定请求。
access-control - RBAC system with two parameters
I’m looking for an example or best practices for a RBAC system with two parameters. Rather than simply having a user associated with a role, and that role associated with a group of permissions; a user can be associated with a role “for a specific project,” and the user can then have the permissions of that role for that project only (or for other projects that the user holds that role for). A user can have a specific role on one project, and a different role on another project; the permissions granted to a role are consistent for every project; and a user’s permissions for a project are based on what role that user has on the project.
(If it makes any difference, I’m trying to limit page access where the page content is developed via a URL query parameter that sets the project id through a GET statement.)
ABAC looks promising, but I’m having trouble wrapping my head around it. My understanding is that a user’s attribute dictates whether the user has the role (and/or permissions). In my case it seems like I might consider the project to be the “user,” and my user as an attribute of the project (true, if my user holds the role for that project or false, if not)
authorization - 用于 XACML 3.0 策略创建的开源策略编辑器工具
我在我的项目中使用 XACML 3.0 进行授权是他们的任何开源策略编辑器工具,以便我可以动态创建策略。
wso2 - 基于资源给出结果的 XACML 策略为 NotApplicable
我正在创建简单的策略,格式就像
当我创建对资源 blue.jpg 的请求以便 emp 可以读取资源 blue.jpg 时,结果不适用政策中的问题或我在请求中遗漏的内容。