请考虑一个具有定义如下的标签的主题:
subject/object label = [i1, i2, ..., in]
,其中i
是另一个主题的subjectId
。
在策略(ALFA / XACML)中,如何对主题标签和对象标签进行比较,以使两个列表中的任何元素都不相同。
例如:
subject_label = [i2, i4, i9]
object_label = [i1, i3, i7, i9]
由于两个标签都包含DENY
,因此最终的决定将是i9
。如果在任何列表中均未找到匹配项,则访问结果将为PERMIT
。
答案 0 :(得分:1)
您要使用的是tasks:
- name: DEBUG
debug:
msg: 'KEY: {{ item.key }}, VALUE: {{ item.value.0.is_active }}'
loop: '{{ lookup("dict", DOMAIN_GROUPS_ASSIGNMENT) }}'
(或等效于其他数据类型)。此函数有两个参数:
如果第一个袋子中至少有一个值等于第二个袋子中的一个值,则返回true。对于字符串,比较区分大小写。
stringAtLeastOneMemberOf
这是XACML / XML表示形式:
namespace com.axiomatics{
/**
* Ths policy will checks the contents of the user label and the the resource label.
* It will deny access if there is at least one value in the user label equal to at least
* one value in the resource label.
*/
policy denyIfSameContent{
apply firstApplicable
/**
* This rule will deny access is user.label contains at least 1 value that is also present
* in object.label
*/
rule denyIfSameContent{
deny
condition stringAtLeastOneMemberOf(user.label, object.label)
}
}
}