Consider a subject and object both having a label defined as follows:
subject/object label = [i1, i2, ..., in], where i is some subjectId of another subject.
In a policy (ALFA/XACML), how can I perform a comparison against the subject and object label such that no elements in either list are the same.
For example:
subject_label = [i2, i4, i9]
object_label = [i1, i3, i7, i9]
The resulting decision would be DENY as both labels contain i9. If no match was found in any list, then the access result would be PERMIT.
What you are looking to use is
stringAtLeastOneMemberOf(or equivalent for other datatypes). This function takes in 2 parameters:It returns true if there is at least one value in the first bag equal to one value in the second bag. For strings, the comparison is case-sensitive.
And here is the XACML/XML representation: