WS-Policy is a specification that allows web services to use XML to advertise their policies (on security, quality of service, etc.) and for web service consumers to specify their policy requirements.
WS-Policy is a W3C recommendation as of September 2007.
WS-Policy represents a set of specifications that describe the capabilities and constraints of the security (and other business) policies on intermediaries and end points (for example, required security tokens, supported encryption algorithms, and privacy rules) and how to associate policies with services and end points.
Assertions can either be requirements put upon a web service or an advertisement of the policies of a web service.
Two "operators" (XML tags) are used to make statements about policy combinations:
- wsp:ExactlyOne - asserts that only one child node must be satisfied.
- wsp:All - asserts that all child nodes must be satisfied.
Logically, an empty wsp:All tag makes no assertions.
If both provider and consumer specify a policy, an effective policy will be computed which usually consists of the intersection of both policies. The new policy contains those assertions made by both sides which do not contradict each other. However, synonymous assertions are considered incompatible by a policy intersection. This can easily be explained by the fact that policy intersection is a syntactic approach, which does not incorporate the semantics of the assertions. Furthermore, it ignores the assertion parameters.
Opposed to what the name might suggest, a policy intersection is (although quite similar) not a set-intersection.