问题标签 [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.
security - 社交和共享网站(例如 Facebook 和 Google+)如何处理代码中的安全策略?
我听说大多数网站都使用临时安全性。如何在代码中指定和执行安全策略?例如,只有 bob 的朋友可以看到他的电子邮件地址。如果政策在整个代码中交织在一起,他们如何管理它,因为它很容易出错。我已经开始为 Web 应用程序开发信息流控制包,只是好奇大公司使用什么?
authorization - 解决 XACML 策略冲突
XACML 如何处理策略冲突?如果 PAP(策略管理点)在包含<policy>
的两个文件中有两个不同的元素,policy.xml
其中两个策略具有相同Target
的 ,那么将评估哪一个?这两个策略都是独立的,包含<policy>
在不同的文件中。
如果两个<policy>
元素都在 a 内<PolicySet>
,它将使用PolicyCombiningAlgId
. 但是由于它们存在隔离,XACML 引擎如何处理这个问题?
java - 如何在 Java 中获得 XACML 控制台打印
作为一个令人难以置信的新人,我正在研究xacml ,并致力于制定一些政策。当然我遇到了问题,通常我会先将一些 print.ln 语句扔到 Java 中,以开始找出代码到达(或未到达)的位置,但我在 OASIS 文档中看不到任何内容用于打印输出或调试的 XACML。
所以,我想知道是否有办法做到这一点,或者我是否可以投入一些东西来弄清楚某些东西在策略/规则评估中的工作方式或原因。
具体问题是我从政策规则中获得许可,它似乎评估“P”与“PI”相同,然后为其返回许可。
我认为它可能是 function:any-of 和 string-equal 函数导致它在这里评估一个真实的条件,但我不确定。我正在与另一个人合作,他似乎坚持这不是问题,但我没有完整的代码可以解决。
但是,如果有一种方法可以打印出来,那就太好了,特别是因为我想知道在运行不同的算法(如第一个适用的算法)时我的评估在哪里。
spring-security - Spring Security 和 ABAC(基于属性的访问控制)
我们有一个中型业务应用程序,我们大量使用 Spring Security 角色和权限 ( RBAC ),并大量使用来打开和关闭某些实例的角色以及隐藏在标签内SpEL@PreAuthorize
中的规则。
我认为我们实际实施的(不知道是ABAC)。XACML看起来非常复杂和臃肿,所以我不热衷于这里的答案:
有没有人在没有XACML的情况下完成了轻量级ABAC实现?我希望这将使我们像域对象那样分离关注点,并且我们的授权策略将与之分离。@PreAuthorize(WRITE)
从我所读到的ABAC的基本原理非常简单。如果当前 Principal 对给定的 Subject 具有该权限,则您有一个 Action(非常类似于 Permission)和一个解决机制。
我知道AccessDecisionVoter
哪个是大致正确的界面,但我不认为它是为了对权限进行投票。然而,使用类似的实例来实施我们的授权策略似乎非常有吸引力。
对不起,漫无边际的问题!基本上我对ABAC很感兴趣,但想避免自制啤酒,但担心当我们需要塞斯纳时XACML是大型喷气式飞机。
authorization - 不适用 XACML 策略语义错误
我目前正在尝试使用 XACML 编写一个简单的策略。不幸的是,我的 XACML 引擎似乎没有找到适用于我的请求的策略。
我所做的是以下内容:
政策 :
要求 :
wso2is - WSO2 身份/如何注册 XACML PIP Java 扩展及其声明
通过浏览 WSO2 文档和几个博客,我发现了三种不同类型的注册表机制来向 Java PIP 模块添加新声明:
通过使用调用的设置文件
entitlement.properties
并为每个变量添加 Java 静态属性,如 WSO2 手册中的示例案例中所述,请参阅: 编写自定义策略信息点;通过使用
supportedAttributesIds.add
链接 如何为 WSO2 IS 编写 PIP 点中的描述;通过使用 setter 方法:
public Set getSupportedIds() { Set<String> ids = new HashSet<String>(); ids.add("http://kmarket.com/id/role"); return ids; }
如 Stackoverflow 帖子How To Add User Defined Attribute in PIP Attribute User Store 中所述
请说明三个选项中的哪一个是更新和推荐的解决方案,用于添加由 Balana PIP 执行的外部数据源查找生成的新字段作为“AttributeFinderModule”类的扩展。
这个例子贴的代码我也测试过,用Java 6 JDK编译,见源码参考 How To Add User Defined Attribute in PIP Attribute User Store 重启后,WSO2服务器继续显示如下错误:
添加扩展的 AttributeFinder Java 扩展时。这是 WSO2 服务器中的已知错误吗?
authorization - WSO2 Identity - XACML PIP 扩展抛出 org.apache.axis2.AxisFault:发生异常
通过 Java 程序添加 Java PIP 扩展时,打包为 .jar 文件并使用 entitlement.properties 配置行:
在服务器重新启动后,服务器会抛出一条错误消息,如下所示并在 Web 授权屏幕上可见:
我已经对示例和源代码进行了审查,尝试了几个,还使用了本文发布的最新示例代码https://stackoverflow.com/questions/21521796/how-to-add-user-defined-attribute -in-pip-attribute-user-store。在所有测试条件下,无论扩展添加的代码如何,产生的错误始终完全相同。
是否有一种技术可以在 PIP 引擎中调试内部错误消息并找到该问题的根源错误,该问题会抑制 Axis 服务?
状态更新:
然而,我在 PIP 扩展测试方面没有进展。定义的 WSO2 服务器无法获取和加载名为“RedAttributeFinder”的 Java 扩展类,该类按照http://xacmlinfo.org/2011/12/18/writing-jdbc-pip-module/中的说明注册。我们在服务器启动和日志中也看不到任何类加载器错误消息,只是如上所述的“AxisFault”错误消息。包名被修改为名称“com.red.carbon.pip”。
该类是使用以下定义激活的:
我们的代码将使用默认的“subjectid”作为输入参数,并创建一个包含六个字段的列表作为输出。是否需要定义字段、添加的字段并将其定义在模式 .xsd 或 .xml 文件中,如果是,是否有可用的文档?在我们的测试中,我们没有使用 XML 定义的“数据源”,因为此时不需要使用数据库服务。
问题:在 WSO2 服务器上激活配置并加载 PIP 扩展代码并使其对 PDP 扩展控制台显示可见,或纠正“AxisFault”错误需要哪些定义?
authorization - WSO2 身份服务器 – 如何为扩展 PIP 编写 XACML 策略
使用“RedAttributeFinder”类的 PIP 扩展代码现在正在工作。它正确地将其声明注册到 WSO2 PDP 扩展控制台显示中。
我现在开始创建 XACML 策略,处理返回扩展程序提供的动态数据值的字段(例如名为“ http://w3.red.com/subject/employeeCountryCode的字段 ”的字段)。
数据查找的关键字段是:urn:oasis:names:tc:xacml:1.0:resource:resource-id
,它以电子邮件格式映射用户身份。
问题一: 在 WSO2 开始时注册的“RedAttributeFinder”类中如何调用“getAttributesValues”方法。什么触发了从 PDP 进程(或其传入请求)调用方法?
在示例代码以及我的实现中,关键字段是作为 PEP 请求实现的一部分加载的资源 ID。
这是“getAttributesValues()”的关键输入,将返回一个国家代码(类似于 WSO2 示例代码中的角色 [blue, silver, gold] 定义 [可在此处获取https://svn.wso2.org/repos /wso2/carbon/platform/trunk/components/identity/org.wso2.carbon.identity.samples.entitlement.pip/ ]。
在示例中,我看到角色值所需的解析,例如“蓝色”是策略目标定义的一部分。
问题2: 目标部分中的这种放置是否需要调用动态 PIP 查找,每个请求一个,或者它也可以放置在策略的其他部分,例如在规则中?
我能够使用规则定义测试 PEP 到 PDP 的交互,仅通过定义静态变量,接收“许可”,我想更改为从 PIP 实现及其扩展获得的动态数据的规则,解决新的问题代码添加的字段。
algorithm - wso2中的XACML自定义规则组合算法
我是 WSO2 IS 的用户,我需要在我的 WSO2 IS 中添加自定义 RuleCombining 算法。我正在使用这个balana示例,当我 在 WSO2 IS 中创建此策略时,我收到此错误:不支持的权利策略。无法解析策略,这是 WSO2 IS 的日志:
编辑:
谢谢大卫的回答,
在同一个示例页面中,我们可以看到我们可以使用自定义函数、算法和数据类型扩展 WSO2 IS,添加一个 balana 配置文件:
但是,如果您想要求 WSO2 身份服务器通过读取配置文件来初始化 Balana。您可以通过在 /repository/conf/security 目录下创建一个名为“balana-config.xml”的新配置文件来实现。例如,假设您要添加新的规则组合算法以与 WSO2 身份服务器授权引擎一起使用。然后您可以按照使用 Balana 配置它的相同方式进行操作。有关更多详细信息,请参阅此博客文章。但是,我想总结一下要遵循的步骤。
但是按照步骤操作后,它似乎不起作用。
对此问题的任何其他帮助将不胜感激。
我正在考虑将公理作为 XACML 引擎,但似乎很难获得用于测试或初始目的的版本。你能告诉我这个问题吗?
regex - 当 XACML 谈到“正则表达式匹配”时,它指的是哪些正则表达式规则?
我已经在正则表达式上花费了很多时间,我认为这些正则表达式简洁准确地表示了我想要允许的资源 URI 和操作字符串范围,但是对于每个看似有效的匹配,它都会返回一个拒绝。我还没有看到一个有用的、真实的(而不是 hello-world)XACML 正则表达式的例子,而且我见过的许多例子甚至没有转义 IP 地址中的点!
正则表达式在不同的上下文中意味着不同的东西,这就是为什么 Perl 正则表达式被专门称为这样的原因。通用术语“regexp”的使用没有告诉我任何信息,正如我看到的许多 XACML 示例没有告诉我任何可以扩展的信息一样。
我是否错过了 string-regexp-match 和/或 anyURI-regexp-match 的一组明确的规则或富有想象力的用途?
谢谢你容忍我的咆哮。
顺便说一句,我没有发现 XACML 的解析器只对丢失的 DTD 发出警告并继续解析真正的错误。
最后一个问题:build.gradle 的这个依赖摘录中是否有任何内容可能会阻止正则表达式匹配,即使是像我看到的为 XACML 记录的一些内容那样懦弱和简单的东西?