Example of Security Policy With Policy Alternatives

2-86 Securing WebLogic Web Services for Oracle WebLogic Server See Creating Shared Java EE Libraries and Optional Packages in Developing Applications for Oracle WebLogic Server for information on creating shared libraries and setting up your environment so the Web service can find the shared policy files.

2.20.2 Implementation Notes

Keep the following considerations in mind when implementing element-level security: ■ You can include multiple element-level assertions in a policy; all are executed. ■ You can include multiple sp:XPath expressions in a single assertions; all are executed. ■ The EncryptedElements assertion causes the identified element and all of its children to be encrypted. ■ The ContentEncryptedElements assertion does not encrypt the identified element, but does encrypt all of its children. ■ The RequiredElements assertion may be used to test for the presence of a top-level element in the SOAP header. If the element is not found, a SOAP Fault will be raised. RequiredElements assertions cannot be used to test for elements in the SOAP Body.

2.21 Smart Policy Selection

Multiple policy alternatives for any given Web service are supported, which provides the service with significant flexibility. Consider that a Web service might support any of the following: ■ Different versions of the standard. For example, the Web service might allow WSRM 1.0 and WSRM 1.1, WSS1.0 and WSS 1.1, WSSC 1.1 and WWSSC 1.2, SAML 1.1 or SAML 2.0. ■ Different credentials for authentication. For example, the Web service might allow either username token, X509, or SAML token for authentication. ■ Different security requirements for internal and external clients. For example, external authentication might require a SAML token, while internal employee authentication requires only a username token for authentication. The Web services client can also handle multiple policy alternatives. The same client can interoperate with different services that have different policy or policy alternatives. For example, the same client can talk to one service that requires SAML 1.1 Token Profile 1.0 for authentication, while another service requires SAML 2.0 Token Profile 1.1 for authentication.

2.21.1 Example of Security Policy With Policy Alternatives

Example 2–22 shows an example of a security policy that supports both WS-Security 1.0 and WS-Security 1.1. Note: Within the wsp:ExactlyOne element, each policy alternative is encapsulated within a wsp:All element. Configuring Message-Level Security 2-87 Example 2–22 Policy Defining Multiple Alternatives ?xml version=1.0? wsp:Policy xmlns:wsp=http:schemas.xmlsoap.orgws200409policy xmlns:sp=http:docs.oasis-open.orgws-sxws-securitypolicy200512 wsp:ExactlyOne wsp:All sp:AsymmetricBinding wsp:Policy sp:InitiatorToken wsp:Policy sp:X509Token sp:IncludeToken=http:docs.oasis-open.orgws-sxws-securitypolicy200512Include TokenAlwaysToRecipient wsp:Policy sp:WssX509V3Token10 wsp:Policy sp:X509Token wsp:Policy sp:InitiatorToken sp:RecipientToken wsp:Policy sp:X509Token sp:IncludeToken=http:docs.oasis-open.orgws-sxws-securitypolicy200512Include TokenNever wsp:Policy sp:WssX509V3Token10 wsp:Policy sp:X509Token wsp:Policy sp:RecipientToken sp:AlgorithmSuite wsp:Policy sp:Basic256 wsp:Policy sp:AlgorithmSuite sp:Layout wsp:Policy sp:Lax wsp:Policy sp:Layout sp:IncludeTimestamp sp:ProtectTokens sp:OnlySignEntireHeadersAndBody wsp:Policy sp:AsymmetricBinding sp:SignedParts sp:Body sp:SignedParts sp:Wss10 wsp:Policy sp:MustSupportRefKeyIdentifier sp:MustSupportRefIssuerSerial wsp:Policy sp:Wss10 wsp:All wsp:All sp:AsymmetricBinding wsp:Policy sp:InitiatorToken 2-88 Securing WebLogic Web Services for Oracle WebLogic Server wsp:Policy sp:X509Token sp:IncludeToken=http:docs.oasis-open.orgws-sxws-securitypolicy200512Include TokenAlwaysToRecipient wsp:Policy sp:RequireThumbprintReference sp:WssX509V3Token11 wsp:Policy sp:X509Token wsp:Policy sp:InitiatorToken sp:RecipientToken wsp:Policy sp:X509Token sp:IncludeToken=http:docs.oasis-open.orgws-sxws-securitypolicy200512Include TokenNever wsp:Policy sp:RequireThumbprintReference sp:WssX509V3Token11 wsp:Policy sp:X509Token wsp:Policy sp:RecipientToken sp:AlgorithmSuite wsp:Policy sp:Basic256 wsp:Policy sp:AlgorithmSuite sp:Layout wsp:Policy sp:Lax wsp:Policy sp:Layout sp:IncludeTimestamp sp:ProtectTokens sp:OnlySignEntireHeadersAndBody wsp:Policy sp:AsymmetricBinding sp:SignedParts sp:Body sp:SignedParts sp:Wss11 wsp:Policy sp:MustSupportRefKeyIdentifier sp:MustSupportRefIssuerSerial sp:MustSupportRefThumbprint sp:MustSupportRefEncryptedKey sp:RequireSignatureConfirmation wsp:Policy sp:Wss11 wsp:All wsp:ExactlyOne wsp:Policy Configuring Message-Level Security 2-89

2.21.2 Configuring Smart Policy Selection