问题标签 [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.
c# - 自定义 ACL 授权并根据权限返回行
我正在构建某种复杂的库存系统,接受供应商的报价等。
通常我会拥有读/写/编辑/删除之类的基本权限,并且我可以轻松地更新每个页面上的读写布尔变量以检查是否为 true 这样做,否则就这样做。
但事实并非如此。我有一些权限,例如 (Owner, SamePseudoCity),这分别意味着允许用户访问他只创建的记录,另一个意味着以用户身份返回属于 PsuedoCity 的记录。
目前,UI 具有具有适用权限的局部变量,当 UI 从数据库请求一些数据时,它会调用 BL,该 BL 首先获得用户有权获得的权限并将它们绑定到 UI/Page 局部变量。
它还检查权限列表是否包含“所有者”,然后它将获取由 UserID 创建的记录,如果它包含“SamePseudoCity”,它将获取同一城市的所有记录。
我不确定这是否是一个好的设计,是否可以修改它。我知道这里没有对错,但有臭的设计、好的设计和更好的设计。所以我只是在寻找一些想法,如果有人以前实现过这个。
如果仍然不清楚,我花了很多时间来解释我的问题,请告诉我,我可以从我的代码中发布一些片段。
authorization - 如何使用 XACML 中的义务跟踪属性的值
想知道是否有办法加载先前由 PIP 扩展属性查找器加载的属性值并将其 ( $myattr1
) 转换为义务,以便以明文形式获得打印输出消息,主要用于执行调试任务。
在我想添加到我的规则中的 XACML 义务之下(以抽象符号编写):
更新的代码部分
下面是一个示例,如何将文本消息与来自 PIP 查找的动态数据结合起来,通过 ObligationExpressions 生成输出:
authorization - XACML 编辑器使用和字符串比较
参考<condition>
WSO2 编辑器中逻辑(真/假)的实现。为什么 XACML 版本 3 策略编辑器拒绝任何其他面向字符串的比较函数,除了使用 "urn:oasis:names:tc:xacml:1.0:function:string-is-in" ?
示例:接受的语法
导致错误的语法示例: 所有其他字符串比较函数,包括 REGEX 函数:
当前的错误通常导致需要将一般策略方案从“拒绝”效果转变为“允许”效果,并结合“匹配”逻辑,从开发人员的角度来看这是不受欢迎的,因为“拒绝” " 规则用于具有更丰富的功能,例如用于错误处理的详细的 ObligationExpressions。在这种情况下应用该<Condition>
语句可生成更全面的代码。
我很高兴获得有关如何将<Condition>
语句与一般字符串比较函数一起使用的建议,例如:
或其他生成布尔结果的字符串相关操作。
尝试使用 ALFA 实现相同的逻辑,这里是来源:
这也会引发与通过 WSO2 Try-It 函数相同的错误消息:
看起来 AttributeDesignator 包需要另一个迭代周期才能解析元素。我们怎样才能做到这一点?
最新更新: 在这里陷入了一些圈子,由于 WSO2 XML 编辑器的语法拒绝,测试没有取得进展。
问题是 AttributeID“ http://w3.red.com/subject/groupsUserBelong ”的属性指示符返回一个包含七个元素的列表。这七个元素反映了该主题的所有数据,因此从逻辑上讲,7 的值是有意义的。
我的逻辑如下:我定义了一个组名变量,确实是一个像“myGroup”这样的字符串,然后我需要迭代从 PIP 返回的 LinkedHashSet 的 7 个元素,相关与否,并扫描每个元素搜索像“myGroup”这样的模式(或单词)。一旦发现相等,布尔值“true”被设置为结果。现在在条件的外部,我计划添加一个 NOT 函数来反转布尔状态,因此条件将生成一个“拒绝”的情况,即未找到该组,由此触发带有详细错误消息的 ObligationEpression。
看起来核心问题是如何迭代七个元素的列表以及如何在一个元素中找到单词,因为字符串子集没有找到单词并且不接受其他函数。
编辑器通过此消息拒绝其他语法结构:
最新更新: 此行为看起来像 WSO2 策略 XML 编辑器中的错误。该工具不支持:
A.3.12 高阶包函数
例如:任意样例
有关支持的逻辑,请参见: http ://docs.oasis-open.org/xacml/3.0/xacml-3.0-core-spec-os-en.html
可以使用以下“条件”语句模拟该问题:
authorization - 有人在任何 Java 应用程序中使用 Balana 实现了 XACML 3.0 的委托配置文件和义务吗?
我目前正在对 XACML 3.0 的新功能进行一些研究,称为管理委托配置文件和基于属性的访问控制 (ABAC) 的义务。任何人都可以帮助我获得一些好的阅读和资源来对这个领域做进一步的研究,而且如果我打算使用 Java 在我的 Web 应用程序中实现这些概念,那么前面的优点和缺点是什么,我该如何整合这些证明概念?
目前,我使用Balana作为后端安全框架来解析我的请求/响应,这显然不支持委派,所以最好使用什么框架。或者如果我想自己做我能做什么以及在当前实施中我需要做出哪些改变。
.net - WIF 和基于除角色之外的逻辑的授权(也用于禁用按钮)
我们有一个Asp.Net-Web-Api服务器端和 wpf(桌面)客户端。
WIF ( Windows Identity Foundation ) 解决方案是否适合以下情况:
- 我们不仅需要阻止对web-api 的访问,还需要将授权信息传递给客户端以禁用按钮?
- 授权不仅基于角色。授权权限根据操作的类型和可能应用操作的对象的类型而有所不同?例如,一个动作可以是“attach_document”,一个对象可以是“Project”。或者“超级实体”的某个实例的“edit_subentities”......?
- 授权也将基于应用于User Attributes和Object Properties的逻辑。为了澄清,我们有一个组织的树结构。一个用户属于某个组织,一个对象应该与某个组织相关。仅对于某些角色,权限取决于对象的组织是否是经过身份验证的用户组织的下属这一事实。...?
其次(不确定问是否正确),
- 如果WIF适合,了解任何关键字以在谷歌上搜索如何开始执行逻辑部分的解决方案会很有帮助
- 有没有更好的选择?
抱歉,如果问题太宽泛或不清楚或不正确。在花时间进行试验之前,了解WIF解决方案不是我们案例中的最佳选择会很有帮助。坦克很多!
ruby-on-rails-4 - 多表与基于角色的授权
问题
决定从基于角色的授权切换到为用户提供单独的表的用例是什么?当一种方法比另一种更易于实现/维护时,是否有推荐的设计模式或约定?
细节
我正在构建一个 Rails 4.2+ 应用程序,但这个问题并不是严格意义上的 Ruby/Rails,尽管如果 Rails 有约定,我想听听它是什么。
在此应用程序中,客户输入并提交数据,但还需要能够查看其提交状态以及添加其他信息(文档、说明等)。这就是客户所做的一切:提交数据、检查提交状态并获取电子邮件通知。如果客户决定向多个帐户输入提交,它们可以关联到多个帐户。
另一方面,员工实际处理客户的提交并与单个帐户相关联。从理论上讲,员工也有可能成为客户并拥有自己的提交内容。
每种类型的用户的“视图层”都非常不同,每个人都扮演着非常不同的角色。这可以通过多个表以及基于角色的表来解决。
但是,每种类型用户的数据会有所不同。
例如,客户输入进入“客户”表以及几个关联表的个人信息,客户将在系统中被视为“联系人”。
另一方面,员工不需要在系统中拥有相同级别的个人信息,因为该信息仅在处理提交时需要。不过,如前所述,员工可能会成为客户,如果我进行基于角色的授权,实施起来将是一场噩梦。
员工还将有额外的身份验证要求,例如两步身份验证(客户不需要此)。
当我查看这个应用程序时,我真正看到的是 2 个不同的应用程序一起运行:客户端和员工端。
我看过的大多数研究和问题似乎都在不断地建议使用单个用户表并实施角色以进行授权。不过,这意味着我将在整个应用程序中使用大量条件。甚至在 SO 上的大多数其他开发人员(我在研究中遇到了几个类似的问题)似乎都看不起用户的多个表。
android - 安卓设备上的 XACML?
我正在对 Android 应用程序进行一些学术研究和实现。我正在寻找合适的策略语言,例如 XACML。
是否有适用于 Android 设备的 XACML 版本或扩展?
xpath - 使用 XPath 在资源和主题之间检查 XACML 规则
我不知道如何编写可以解决此要求的规则:
假设我有这个请求:
我想编写一个包含具有Permit效果的规则的策略,当对于Category
资源的每个元素,主题具有Category
相同的@name
并且这两个Category
元素都具有至少一个 common 时CategoryValue
。
在上面的这个例子中:
- 资源有“cat1”和“A” - 主题有“cat1”,其中一个值为 A:允许
- 资源有“cat2”和“A”、“E”、“F”、“G” - 主题有“cat2”,值为 E(或 F):允许
- 规则的最终结果:允许
我的问题不是functionId
我应该使用哪个,而是如何结合这些条件以使规则按照我描述的方式运行?如何比较GenericValue
具有相同节点的元素@name
?
我想我将不得不string-at-least-one-member-of
在主题和资源“cat1”的值之间使用函数,然后在主题和资源“cat2”之间使用函数,但真正的困难是 PDP 不知道元素的值,所以@name
我Category
不能直接在规则中对其进行硬编码,我不知道如何特别选择它们来执行检查。
对此有任何想法吗?
authorization - 将时间范围内的时间作为条件的 XACML 规则
我想使用 ALFA 语言语法编写一个使用条件语句构建 XACML 函数的规则:“urn:oasis:names:tc:xacml:2.0:function:time-in-range”。出于易于处理义务的原因,我更愿意在条件函数中使用它,而不是在目标表达式中。
这可能吗?我在手册中没有找到任何参考。
在@David Brossard。按照下面的方案,我使用以下 ALFA 代码测试了该策略:
语法验证运行正常,但从 WSO2 PDP 代码返回的评估结果中存在错误,为 02:00:00、10:00:00 和 22:00 的所有三个测试提供“许可” :00。
我已经隔离了这个问题。WSO2 Try-It 工具默认生成“字符串”,而 XACML 需要时间数据类型。要修复它,必须提出手动请求,并且@David Brossard 显示的逻辑完美运行。这是一个示例请求,生成一个“许可”。
结合条件语句的“TimeInRange”函数非常有帮助。
xacml - ALFA 到 XACML 插件
Axiomatics 提交给 OASIS 的 Alfa 语言看起来相当不错。但是我想知道是否有从 Alfa 到 XACML 的免费编译器。Axiomatics Eclipse 插件附带的许可文件声明它用于非商业/评估。而且它没有与 Maven 等集成。有没有免费的替代品?