I'm new to XACML architecture and would appreciate if you can help me with next question.
Is it possible to use multiple PIP in a way that answer extracted from one PIP is used as input parameter for other PIP?
If so can you provide me with simple XML request example?
Thanks in advance
Yes, it is possible to use multiple PIPs in a way that an attribute resolved by a PIP can be used as an input to another PIP.
Based on XACML architecture, it's up to the PDP to decide how to resolve attributes using PIPs.
How it works on a high level:
Subject-ID=AliceAction-ID=ReadSubject-IDdefined in the policy, PDP tries to ask a PIP or PIPs to resolveAction-IDand provides PIPs the value it has which isSubject-ID(from the input request). E.g., Let's say we have 2 PIPs - PIP A can resolveresource-IDfromSubject-IDand PIP B can resolveAction-IDfromresource-IDresource-IDbased on theSubject-IDfrom input request using PIP A and then usesresource-IDto resolveAction-IDusing PIP B which is then utilized by PDP to evaluate the the policy. If PIP B returns Alice, you get apermitdecision else it would beNotApplicableNote that this depends on how PDP is implemented to resolve attributes using chained PIPs as in your use case.
PDP from a company called Axiomatics is capable of performing a chained PIP lookup.
Disclosure: I work for Axiomatics where we provide XACML based access control solutions