11 Configuring Policies

This chapter discusses how to configure policies in Web services and Web service clients to achieve Quality of Service (QoS) requirements.

The predefined policies are described in Appendix B, "Predefined Policies". This Appendix is the definitive source of information for the format of the policies. Some information from the Appendix is repeated here for your convenience.

If you require both authentication and message protection, then you need to consider the following:

Will message protection be handled in the transport layer? If yes, then there are four sets of policies to choose from: Username over SSL, SAML over SSL (Sender-Vouches), SAML over SSL (Token Bearer), and HTTP token over SSL.

In one set of policies (wss_http_token_over_ssl_client_policy and wss_http_token_over_ssl_service_policy) authentication is also handled in the transport layer. For the other three polices, authentication takes place in the SOAP header.

If you are using the WS-Security V1.0 or V1.1 standard, then both authentication and message protection occur in the SOAP header. There are five pairs of policies supporting the following tokens: username/password, SAML, and X.509 certificates.

Protecting Messages

Message protection involves encrypting the message for message confidentiality and signing the message for message integrity. Oracle Fusion Middleware predefined policies and any policy you create using one of the message-protection assertion templates provide the options for message confidentiality, message integrity, or both.

The following steps summarizes what you must do to configure the clients and services for message protection:

Attach the appropriate message protection policy to each of the clients and services.

If you want message integrity, then the message must be signed.

If you want message confidentiality, then the message must be encrypted.

Message Protection Basics

Message confidentiality involves keeping the data secret, as well as the identities of the sending and receiving parties. Confidentiality is achieved by encrypting the content of messages and obfuscating the identities of the sending and receiving parties. The sender uses the recipient's public key to encrypt the message. Only the recipient's private key can successfully decrypt the message, ensuring that it cannot be read by third parties while in transit. The Web service's base64-encoded public certificate is published in the WSDL for use by the Web service client, as described in "Using Service Identity Certification Extension".

Message integrity is achieved by having an authority digitally sign the message. Digital signatures are used to authenticate the sender of the SOAP message and to ensure the integrity of the SOAP message (that is, to ensure that the SOAP message is not altered while in transit).

When a digital signature is applied to a SOAP message, a unique hash is produced from the message, and this hash is then encrypted with the sender's private key. When the message is received, the recipient decrypts the hash using the sender's public key.

Note:

Generally, the recipient does not need to have the sender's public key in its keystore to validate the certificate. It is sufficient to have the root certificate in the keystore to verify the certificate chain. However, if the sender's public key is not present in the message, as in the case of the Thumbprint and SerialIssuer mechanisms, the sender's public key must be in the recipient's keystore.

This serves to authenticate the sender, because only the sender could have encrypted the hash with the private key. It also serves to ensure that the SOAP message has not been tampered with while in transit, because the recipient can compare the hash sent with the message with a hash produced on the recipient's end.

The message-protection assertion templates and predefined policies can be used to protect request and response messages by doing the following:

Signing messages

Encrypting messages

Signing and encrypting messages

Decrypting messages

Verifying signatures

Decrypting messages and verifying signatures

The Fusion Middleware Control user interface for the predefined message protection policies makes it easy to specify which message parts are signed, encrypted, or both. You can require that the entire body be signed, encrypted, or both, or identity specific header and body elements. The following is an example of partial encryption.

Example for Partial Encryption

In this example, a part of the SOAP message is encrypted using Fusion Middleware Control:

Create a simple Web service that approves a credit card number (cardNr). A sample payload is shown in Example 11-1.

Security SwA Attachments

Packaging as attachments in SOAP messages has become common for any data that cannot be placed inside SOAP Envelope. The primary SOAP message can reference additional entities as attachments or attachments with MIME headers.

Each SwA attachment is a MIME part and contains the MIME header. Include SwA Attachment signs the attachment but not the MIME header corresponding to that. Include MIME Headers signs the corresponding MIME headers as well as the attachments.

Which Policies Offer Message Protection?

The following policies offer message protection. The subsequent sections for each of these policies later in this chapter describe how each policy implements message protection.

Both the WS-Security 1.0 and WS-Security 1.1 standards are supported. Use the assertion template or predefined policy that supports the standard which both the Web service and client share in common. If you are starting anew, use the WS-Security 1.1 standard because it provides more options and requires less PKI deployment.

The assertion templates support partial signing and encryption as well as full signing and encryption of the message body. For those assertion templates or predefined policies that provide SOAP message protection, the default behavior is to protect the entire SOAP message body by signing and encrypting the entire SOAP body. You can configure the assertions and policies to protect selected elements, if you wish.

Authentication-Only Policies and Configuration Steps

"Authentication Only Policies" summarizes the security policies that enforce authentication only, and indicates whether the token is inserted at the transport layer or header.

This section lists the authentication-only predefined policies, indicates the type of Web service to which they apply, and provides a link to the configuration steps you must perform to use them.

oracle/http_basic_auth_over_ssl_client_policy

The http_basic_auth_over_ssl_client_policy policy includes credentials in the HTTP header for outbound client requests.

This policy also verifies that the transport protocol is HTTPS. Requests over a non-HTTPS transport protocol are refused. This policy can be applied to any HTTP-based endpoint.

oracle/http_basic_auth_over_ssl_service_policy

The http_basic_auth_over_ssl_service_policy policy extracts the credentials in the HTTP header and authenticates users against the Oracle Platform Security Services identity store. This policy verifies that the transport protocol is HTTPS. Requests over a non-HTTPS transport protocol are refused. This policy can be enforced on any HTTP-based endpoint.

oracle/http_jwt_token_client_policy

The http_jwt_token_client_policy includes a JWT token in the HTTP header. The JWT token is created automatically. The issuer name and subject name are provided either programmatically or declaratively through the policy. You can specify the audience restriction condition for this policy.

This policy can be applied to any HTTP-based client endpoint.

You must edit the policy file manually; you cannot edit the policy using Fusion Middleware Control. See "oracle/http_jwt_token_client_template" for information about the assertion attributes that you can configure.

By default, the oracle/http_jwt_token_client_policy assertion content is defined as follows:

Settings

Configuration Properties

oracle/http_jwt_token_service_policy

The http_jwt_token_service_policy authenticates users using the username provided in the JWT token in the HTTP header. By default the policy is configured to expect the JWT token to be signed using the asymmetric signature (algorithm-suite attribute set to Basic128Sha256Rsa15).

You can attach this policy to any HTTP-based endpoint.

You must edit the policy file manually; you cannot edit the policy using Fusion Middleware Control. See "oracle/http_jwt_token_service_template" for information about the assertion attributes that you can configure.

By default, the oracle/http_jwt_token_service_policy assertion content is defined as follows:

Settings

Configuration Properties

oracle/http_jwt_token_over_ssl_client_policy

The http_jwt_token_over_ssl_client_policy includes a JWT token in the HTTP header. The JWT token is created automatically. The issuer name and subject name are provided either programmatically or declaratively through the policy. You can specify the audience restriction condition for this policy.

This policy verifies that the transport protocol is HTTPS. Requests over a non-HTTPS transport protocol are refused.

oracle/http_jwt_token_over_ssl_service_policy

The http_jwt_token_service_policy authenticates users using the username provided in the JWT token in the HTTP header. By default the policy is configured to expect the JWT token to be signed using the asymmetric signature (algorithm-suite attribute set to Basic128Sha256Rsa15).

This policy also verifies that the transport protocol is HTTPS. Requests over a non-HTTPS transport protocol are refused. This policy can be applied to any HTTP-based endpoint.

oracle/http_oam_token_service_policy

This policy extracts the credentials in the HTTP header to authenticate users against the Oracle Platform Security Services identity store and propagates that information using an Oracle Access Manager (OAM) token.

You must edit the policy file manually; you cannot edit the policy using Fusion Middleware Control. See "oracle/http_oam_token_service_template" for information about the assertion attributes that you can configure.

By default, the oracle/http_oam_token_service_policy assertion content is defined as follows:

Settings

Configuration Properties

How to Set Up OAM

You must set up OAM on the server-side. To enforce HTTP OAM security, configure OAM Webgate to intercept the request, authenticate the user, and set the OAM_REMOTE_USER HTTP header. OWSM verifies that the OAM_REMOTE_USER_HTTP header is present before allowing the request. For more information, see Oracle Fusion Middleware Administrator's Guide for Oracle Access Management.

oracle/http_oauth2_token_client_policy

This policy includes the OAuth2 access token in the HTTP header. The access token (AT) is obtained from the Mobile & Social OAuth2 Server. You can attach this policy to any HTTP-based SOAP or REST client.

You must use WLST or edit the policy file manually; you cannot edit the policy using Fusion Middleware Control. See "oracle/http_oauth2_token_client_template" for information about the assertion attributes that you can configure.

Settings

Configuration Properties

oracle/http_oauth2_token_opc_oauth2_client_policy

This policy includes the OAuth2 access token in the HTTP header. The access token is obtained from the OAuth Server in the Oracle Cloud.

The property oracle.oauth2.service is set to true by default, which ensures that the client ID is used as the issuer for the user and client JWT tokens for the OAuth2 server. If scope is empty (the default), Oracle WSM automatically gets the service URL and uses the address:port portion as the scope.

You must use WLST or edit the policy file manually; you cannot edit the policy using Fusion Middleware Control. See "oracle/http_oauth2_token_client_template" for information about the assertion attributes that you can configure.

You attach this policy and the oracle/oauth2_config_client_policy to the client application. The required token.uri property of the oracle/oauth2_config_client_policy policy specifies the OAuth2 server.

You also attach any of the following Oracle WSM JWT service policies to the web service. The Oracle WSM server-side agent validates the access token.

Settings

Configuration Properties

oracle/http_oauth2_token_over_ssl_client_policy

This policy is the same as http_oauth2_token_client_policy, except that the AT is propagated over 1-way SSL to the resource. This policy includes the OAauth2 access token in the HTTP header. The AT is obtained from the Mobile and Social OAuth2 Server.

The policy verifies that the outbound transport protocol is HTTPS. If a non-HTTPS transport protocol is used, the request is refused. You can attach this policy to any HTTP-based client.

You attach this policy and the oracle/oauth2_config_client_policy to the client application. The required token.uri property of the oracle/oauth2_config_client_policy policy specifies the OAuth2 server.

You also attach any of the following Oracle WSM JWT service policies to the web service. The Oracle WSM server-side agent validates the AT.

Configuration Properties

How to Set Up WebLogic Server

oracle/http_oauth2_token_opc_oauth2_over_ssl_client_policy

This policy includes the OAuth2 access token in the HTTP header. The access token is obtained from the OAuth2 Server in the Oracle Cloud.

The property oracle.oauth2.service is set to true by default, which ensures that the client ID is used as the issuer for the user and client JWT tokens for the OAuth2 server. If scope is empty (the default), Oracle WSM automatically gets the service URL and uses the address:port portion as the scope.

The policy verifies that the outbound transport protocol is HTTPS. If a non-HTTPS transport protocol is used, the request is refused. You can attach this policy to any HTTP-based SOAP or REST client.

You attach this policy and the oracle/oauth2_config_client_policy to the client application. The required token.uri property of the oracle/oauth2_config_client_policy policy specifies the OAuth2 server.

You also attach any of the following Oracle WSM JWT service policies to the web service. The Oracle WSM server-side agent validates the AT.

Configuration Properties

How to Set Up WebLogic Server

oracle/http_oauth2_token_identity_switch_over_ssl_client_policy

This policy is similar to the policy oracle/ http_oauth2_token_over_ssl_client_policy, with the subject.precedence property set to false by default.

This policy includes the OAuth2 access token in the HTTP header.) The access token is obtained from the Mobile and Social OAuth2 Server.) It also verifies that the outbound transport protocol is HTTPS. If a non-HTTPS transport protocol is used, the request is refused.

This policy performs dynamic identity switching by propagating a different identity than the one based on the authenticated subject. This policy can be attached to any HTTP-based SOAP or REST client.

You attach this policy and the oracle/oauth2_config_client_policy policy to the client application. The token.uri property of the required oracle/oauth2_config_client_policy policy specifies the OAuth2 server.

You also attach any of the following Oracle WSM JWT service policies to the web service. The Oracle WSM server-side agent validates the AT.

subject.precedence is set to false to allow for the use of a client-specified username rather than the authenticated subject. The user name is obtained only from the username property of the csf-key.

If subject.precedence is set to false and csf-key and user name are configured, the web service client application must have the oracle.wsm.security.WSIdentityPermission permission. That is, applications from which Oracle WSM accepts the externally-supplied identity must have the WSIdentityPermission permission. This is to avoid potentially rogue applications from providing an identity to Oracle WSM. See granting WSIdentityPermission permission, as described in "Set the WSIdentityPermission Permission".

By default, the oracle/http_oauth2_token_identity_switch_over_ssl_client_policy assertion content is defined as follows:

This policy includes the OAuth2 access token in the HTTP header. The access token is obtained from the OAuth Server in the Oracle Cloud.

The property oracle.oauth2.service is set to true by default, which ensures that the client ID is used as the issuer for the user and client JWT tokens for the OAuth2 server. If scope is empty (the default), Oracle WSM automatically gets the service URL and uses the address:port portion as the scope.

It also verifies that the outbound transport protocol is HTTPS. If a non-HTTPS transport protocol is used, the request is refused. This policy can be attached to any HTTP-based SOAP or REST client, invoking the service over SSL.

This policy also performs dynamic identity switching by propagating a different identity than the one based on the authenticated subject.

You attach this policy and the oracle/oauth2_config_client_policy policy to the client application. The token.uri property of the required oracle/oauth2_config_client_policy policy specifies the OAuth2 server.

You also attach any of the following Oracle WSM JWT service policies to the web service. The Oracle WSM server-side agent validates the AT.

subject.precedence is set to false to allow for the use of a client-specified username rather than the authenticated subject. The user name is obtained only from the username property of the csf-key.

If subject.precedence is set to false and csf-key and user name are configured, the web service client application must have the oracle.wsm.security.WSIdentityPermission permission. That is, applications from which Oracle WSM accepts the externally-supplied identity must have the WSIdentityPermission permission. This is to avoid potentially rogue applications from providing an identity to Oracle WSM. See granting WSIdentityPermission permission, as described in "Set the WSIdentityPermission Permission".

By default, the oracle/http_oauth2_token_identity_switch_opc_oauth2_over_ssl_client_policy assertion content is defined as follows:

You must use WLST or edit the policy file manually; you cannot edit the policy using Fusion Middleware Control. See "oracle/oauth2_config_client_template" for information about the assertion attributes that you can configure.

Settings

Configuration Properties

oracle/http_saml20_token_bearer_client_policy

The http_saml20_token_bearer_client_policy policy includes SAML 2.0 tokens in the HTTP header. The SAML token with confirmation method Bearer is created automatically. This policy can be enforced on any HTTP-based endpoint. By default, the authenticated user from the Subject (user principal) is used to generate the SAML assertion for identity propagation.

Settings

Configuration Properties

oracle/http_saml20_bearer_token_over_ssl_client_policy

This policy includes SAML 2.0 tokens in outbound HTTP request messages. The SAML token with confirmation method Bearer is created automatically. By default, the authenticated user from the Subject (user principal) is used to generate the SAML assertion for identity propagation.

Settings

Configuration Properties

oracle/wss_http_token_client_policy

The oracle/wss_http_token_client_policy policy includes credentials in the HTTP header for outbound client requests. It is the analogous client policy to the oracle/wss_http_token_service_policy service endpoint policy.

oracle/wss_username_token_client_policy

Note:

This policy is not secure; it transmits the password in clear text. You should use this policy in low security situations only, or when you know that the transport is protected using some other mechanism. Alternatively, consider using the SSL version of this policy, oracle/wss_username_token_over_ssl_client_policy.

This policy includes credentials in the WS-Security UsernameToken header for all outbound SOAP request messages. A plain text mechanism is supported, in addition to a password not being required. It is the analogous client policy to the oracle/wss_username_token_service_policy service endpoint policy.

How to Set Up the Web Service Client At Design Time

The client must include a WS-Security UsernameToken element (<wsse:UsernameToken/>) in the SOAP request message. The client provides a username and password for authentication.

oracle/wss_username_token_service_policy

Note:

This policy is not secure; it transmits the password in clear text. You should use this policy in low security situations only, or when you know that the transport is protected using some other mechanism. Alternatively, consider using the SSL version of this policy, oracle/wss_username_token_over_ssl_service_policy.

This policy uses the credentials in the UsernameToken WS-Security SOAP header to authenticate users. The plain text mechanism is supported.

Settings

Configuration Properties

How to Set Up the Web Service Client

You can specify a value for saml.issuer.name on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The saml.issuer.name property defaults to a value of www.oracle.com. See "Adding an Additional SAML Assertion Issuer Name" for additional considerations.

You can specify a value for propagate.identity.context on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The propagate.identity.context property defaults to a value of blank. See "Propagating Identity Context with Oracle WSM" for additional considerations.

Settings

Configuration Properties

You can specify a value for propagate.identity.context on the Configurations page, or override it using the Security Configuration Details control when you attach the policy. The propagate.identity.context property defaults to a value of blank. See "Propagating Identity Context with Oracle WSM" for additional considerations.

Settings

Configuration Properties

How to Set Up the Web Service Client

You can specify a value for saml.issuer.name on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The saml.issuer.name property defaults to a value of www.oracle.com. See "Adding an Additional SAML Assertion Issuer Name" for additional considerations.

You can specify a value for propagate.identity.context on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The propagate.identity.context property defaults to a value of blank. See "Propagating Identity Context with Oracle WSM" for additional considerations.

Settings

Configuration Properties

You can also specify a value for propagate.identity.context on the Configurations page, or override it using the Security Configuration Details control when you attach the policy. The propagate.identity.context property defaults to a value of blank. See "Propagating Identity Context with Oracle WSM" for additional considerations.

The SAML login module extracts the username from the verified token and passes it to the provider.

oracle/wss11_kerberos_token_client_policy

This policy includes a Kerberos token in the WS-Security header in accordance with the WS-Security Kerberos Token Profile v1.1 standard.

Service principal names (SPN) are a key component in Kerberos authentication. SPNs are unique identifiers for services running on servers. Every service that uses Kerberos authentication needs to have an SPN set for it so that clients can identify the service on the network. If an SPN is not set for a service, clients have no way of locating that service and Kerberos authentication is not possible.

Settings

Configuration Properties

How to Set Up the Web Service Client

The Web service client that is enforcing Kerberos client side policies needs to know the service principal name of the service it is trying to access. You can specify a value for service.principal.name on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The default value (place holder) is HOST/localhost@oracle.com.

How to Set Up the Web Service Client at Design Time

You must set the service principal name. The service principal name specifies the name of the service principal for which the client requests a ticket from the KDC.

If the Kerberos authentication is successful, then send the obtained Kerberos ticket and authenticator to the Web service enclosed in a BinarySecurityToken element in the SOAP Security header.

oracle/wss11_kerberos_token_service_policy

This policy is enforced in accordance with the WS-Security Kerberos Token Profile v1.1 standard.

Service principal names (SPN) are a key component in Kerberos authentication. SPNs are unique identifiers for services running on servers. Every service that uses Kerberos authentication needs to have an SPN set for it so that clients can identify the service on the network. If an SPN is not set for a service, clients have no way of locating that service and Kerberos authentication is not possible.

Message Protection-Only Policies and Configuration Steps

Table B-3 summarizes the policies that enforce only message protection, and indicates whether the policy is enforced at the transport layer or SOAP header.

Message protection-only policies do not authenticate or authorize the requester.

There may be either one or two Security policies attached to a policy subject. A Security policy can contain an assertion that belongs to the authentication or message protection (as in this case) subtype categories, or a single assertion that belongs to both subtype categories. You can then use an assertion that belongs to the authorization subtype to authorize the requester.

oracle/wss10_message_protection_client_policy

This policy provides message protection (integrity and confidentiality) for outbound SOAP requests in accordance with the WS-Security 1.0 standard.

As an alternative, you can specify a value for keystore.recipient.alias on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The keystore.recipient.alias specifies the alias used to look up the public key in the keystore when retrieving a key for encryption of outbound SOAP messages.

You can specify a value for keystore.sig.csf.key and keystore.enc.csf.key on the Configurations page, or override them on a per-client basis using the Security Configuration Details control when you attach the policy.

How to Set Up the Web Service Client at Design Time

This policy requires you to set up the Web service client keystore, as described in "Setting Up the Web Service Client Keystore". The policy specifically requires that the client's and Web service's respective keystores already contain digital certificates containing each other's public key.

Example 11-3 shows the typical structure of a signature included in the Security header in conformance with the WS-Security 1.0 standards. In this example, the body element of the SOAP message is signed.

Example 11-4 is an example of the typical structure of encryption elements included in the Security header in conformance with the WS-Security 1.0 standards. In this example, the body element is encrypted.

Store the trusted certificate that corresponds to the client's private key (used to sign the message) in the keystore. You also need to store the service's private key in the keystore for decrypting the message, and the CA root certificate.

As an alternative, you can specify a value for keystore.recipient.alias on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The keystore recipient alias specifies the alias used to look up the public key in the keystore when retrieving a key for encryption of outbound SOAP messages.

You can specify a value for keystore.enc.csf.key on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy.

How to Configure the Web Service Client at Design Time

This policy requires you to set up the Web service client keystore, as described in "Setting Up the Web Service Client Keystore". The policy specifically requires that the client's and Web service's respective keystores already contain digital certificates containing each other's public key.

This policy uses symmetric key technology, which is an encryption method that uses the same shared key to encrypt and decrypt data. The symmetric key is used to sign the message.

Example 11-5 is an example of the typical structure of encryption elements included in the Security header in conformance with the WS-Security 1.1 standards. In this example, the body element is encrypted.

Store the trusted certificate that corresponds to the client's private key (used to sign the message) in the keystore. You also need to store the service's private key in the keystore for decrypting the message, and the CA root certificate.

Table B-4 summarizes the policies that enforce both message protection and authentication, and indicates whether the policy is enforced at the transport layer or SOAP header. These polices are described in the sections that follow.

You can specify a value for propagate.identity.context on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The propagate.identity.context property defaults to a value of blank. See "Propagating Identity Context with Oracle WSM" for additional considerations.

Settings

Configuration Properties

You can specify a value for propagate.identity.context on the Configurations page, or override it using the Security Configuration Details control when you attach the policy. The propagate.identity.context property defaults to a value of blank. See "Propagating Identity Context with Oracle WSM" for additional considerations.

You can specify a value for propagate.identity.context on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The propagate.identity.context property defaults to a value of blank. See "Propagating Identity Context with Oracle WSM" for additional considerations.

Settings

Configuration Properties

You can specify a value for propagate.identity.context on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The propagate.identity.context property defaults to a value of blank. See "Propagating Identity Context with Oracle WSM" for additional considerations.

You can specify a value for propagate.identity.context on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The propagate.identity.context property defaults to a value of blank. See "Propagating Identity Context with Oracle WSM" for additional considerations.

Settings

Configuration Properties

You can specify a value for propagate.identity.context on the Configurations page, or override it using the Security Configuration Details control when you attach the policy. The propagate.identity.context property defaults to a value of blank. See "Propagating Identity Context with Oracle WSM" for additional considerations.

You can specify a value for propagate.identity.context on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The propagate.identity.context property defaults to a value of blank. See "Propagating Identity Context with Oracle WSM" for additional considerations.

Settings

Configuration Properties

You can specify a value for propagate.identity.context on the Configurations page, or override it using the Security Configuration Details control when you attach the policy. The propagate.identity.context property defaults to a value of blank. See "Propagating Identity Context with Oracle WSM" for additional considerations.

oracle/wss_username_token_over_ssl_client_policy

This policy includes credentials in the WS-Security UsernameToken header in outbound SOAP request messages. The plain text mechanism is supported. The policy also uses SSL for achieving transport layer security.

You can specify a value for saml.issuer.name on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The saml.issuer.name property defaults to a value of www.oracle.com. See "Adding an Additional SAML Assertion Issuer Name" for additional considerations.

As an alternative, you can specify a value for keystore.recipient.alias on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The keystore recipient alias specifies the alias used to look up the public key in the keystore when retrieving a key for encryption of outbound SOAP messages.

You can specify a value for keystore.sig.csf.key and keystore.enc.csf.key on the Configurations page, or override them on a per-client basis using the Security Configuration Details control when you attach the policy.

How to Set Up the Web Service Client at Design Time

This policy requires you to set up the Web service client keystore, as described in "Setting Up the Web Service Client Keystore". The policy specifically requires that the client's and Web service's respective keystores already contain digital certificates containing each other's public key.

Example 11-3 shows the typical structure of a signature included in the Security header in conformance with the WS-Security 1.0 standards. In this example, the body element of the SOAP message is signed.

Example 11-4 is an example of the typical structure of encryption elements included in the Security header in conformance with the WS-Security 1.0 standards. In this example, the body element is encrypted.

oracle/wss10_saml_hok_token_with_message_protection_service_policy

This policy enforces message-level protection and SAML holder of key based authentication for inbound SOAP requests in accordance with the WS-Security 1.0 standard.

A CertificateExpiredException is returned if an expired certificate is present in the keystore, regardless of whether this certificate is being referenced. To resolve this exception, remove the expired certificate from the keystore.

Store the trusted certificate of the SAML authority in the keystore.

Store the trusted certificate that corresponds to the client's private key (used to sign the message) in the keystore. You also need to store the service's private key in the keystore for decrypting the message, and the CA root certificate.

Configuration Properties

How to Set Up the Web Service Client

You can specify a value for saml.issuer.name on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The saml.issuer.name property defaults to a value of www.oracle.com. See "Adding an Additional SAML Assertion Issuer Name" for additional considerations.

You can specify a value for user.roles.include on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy.

You can specify a value for keystore.sig.csf.key and keystore.enc.csf.key on the Configurations page, or override them on a per-client basis using the Security Configuration Details control when you attach the policy.

You can specify a value for propagate.identity.context on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The propagate.identity.context property defaults to a value of blank. See "Propagating Identity Context with Oracle WSM" for additional considerations.

How to Set Up the Web Service Client at Design Time

This policy requires you to set up the Web service client keystore, as described in "Setting Up the Web Service Client Keystore". The policy specifically requires that the client's and Web service's respective keystores already contain digital certificates containing each other's public key.

Include a WS-Security Header Element (<saml:Assertion>) that inserts a SAML token in the outbound SOAP message. The confirmation type is always sender-vouches.

Example 11-3 shows the typical structure of a signature included in the Security header in conformance with the WS-Security 1.0 standards. In this example, the body element of the SOAP message is signed.

Example 11-4 is an example of the typical structure of encryption elements included in the Security header in conformance with the WS-Security 1.0 standards. In this example, the body element is encrypted.

oracle/wss10_saml_token_with_message_integrity_service_policy

This policy enforces message-level integrity protection and SAML-based authentication for inbound SOAP requests in accordance with the WS-Security 1.0 standard.

You can specify a value for propagate.identity.context on the Configurations page, or override it using the Security Configuration Details control when you attach the policy. The propagate.identity.context property defaults to a value of blank. See "Propagating Identity Context with Oracle WSM" for additional considerations.

As an alternative, you can specify a value for keystore.recipient.alias on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The keystore recipient alias specifies the alias used to look up the public key in the keystore when retrieving a key for encryption of outbound SOAP messages.

You can specify a value for keystore.sig.csf.key and keystore.enc.csf.key on the Configurations page, or override them on a per-client basis using the Security Configuration Details control when you attach the policy.

You can specify a value for saml.issuer.name on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The saml.issuer.name property defaults to a value of www.oracle.com. See "Adding an Additional SAML Assertion Issuer Name" for additional considerations.

You can specify a value for user.roles.include on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy.

You can specify a value for propagate.identity.context on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The propagate.identity.context property defaults to a value of blank. See "Propagating Identity Context with Oracle WSM" for additional considerations.

How to Set Up the Web Service Client at Design Time

This policy requires you to set up the Web service client keystore, as described in "Setting Up the Web Service Client Keystore". The policy specifically requires that the client's and Web service's respective keystores already contain digital certificates containing each other's public key.

Example 11-3 shows the typical structure of a signature included in the Security header in conformance with the WS-Security 1.0 standards. In this example, the body element of the SOAP message is signed.

Example 11-4 is an example of the typical structure of encryption elements included in the Security header in conformance with the WS-Security 1.0 standards. In this example, the body element is encrypted.

oracle/wss10_saml_token_with_message_protection_service_policy

This policy enforces message-level protection and SAML-based authentication for inbound SOAP requests in accordance with the WS-Security 1.0 standard.

You can specify a value for propagate.identity.context on the Configurations page, or override it using the Security Configuration Details control when you attach the policy. The propagate.identity.context property defaults to a value of blank. See "Propagating Identity Context with Oracle WSM" for additional considerations.

Store the trusted certificate that corresponds to the client's private key (used to sign the message) in the keystore. You also need to store the service's private key in the keystore for decrypting the message, and the CA root certificate.

As an alternative, you can specify a value for keystore.recipient.alias on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The keystore recipient alias specifies the alias used to look up the public key in the keystore when retrieving a key for encryption of outbound SOAP messages.

You can specify a value for keystore.sig.csf.key and keystore.enc.csf.key on the Configurations page, or override them on a per-client basis using the Security Configuration Details control when you attach the policy.

You can specify a value for saml.issuer.name on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The saml.issuer.name property defaults to a value of www.oracle.com. See "Adding an Additional SAML Assertion Issuer Name" for additional considerations.

You can specify a value for user.roles.include on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy.

You can specify a value for propagate.identity.context on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The propagate.identity.context property defaults to a value of blank. See "Propagating Identity Context with Oracle WSM" for additional considerations.

How to Set Up the Web Service Client at Design Time

This policy requires you to set up the Web service client keystore, as described in "Setting Up the Web Service Client Keystore". The policy specifically requires that the client's and Web service's respective keystores already contain digital certificates containing each other's public key.

Example 11-3 shows the typical structure of a signature included in the Security header in conformance with the WS-Security 1.0 standards. In this example, the body element of the SOAP message is signed.

Example 11-4 is an example of the typical structure of encryption elements included in the Security header in conformance with the WS-Security 1.0 standards. In this example, the body element is encrypted.

oracle/wss10_saml20_token_with_message_protection_service_policy

This policy enforces message-level protection and SAML-based authentication for inbound SOAP requests in accordance with the WS-Security 1.0 standard.

You can also specify a value for propagate.identity.context on the Configurations page, or override it using the Security Configuration Details control when you attach the policy. The propagate.identity.context property defaults to a value of blank. See "Propagating Identity Context with Oracle WSM" for additional considerations.

Store the trusted certificate that corresponds to the client's private key (used to sign the message) in the keystore. You also need to store the service's private key in the keystore for decrypting the message, and the CA root certificate.

As an alternative, you can specify a value for keystore.recipient.alias on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The keystore recipient alias specifies the alias used to look up the public key in the keystore when retrieving a key for encryption of outbound SOAP messages.

You can specify a value for keystore.sig.csf.key and keystore.enc.csf.key on the Configurations page, or override them on a per-client basis using the Security Configuration Details control when you attach the policy.

You can specify a value for saml.issuer.name on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The saml.issuer.name property defaults to a value of www.oracle.com. See "Adding an Additional SAML Assertion Issuer Name" for additional considerations.

You can specify a value for user.roles.include on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy.

You can specify a value for propagate.identity.context on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The propagate.identity.context property defaults to a value of blank. See "Propagating Identity Context with Oracle WSM" for additional considerations.

How to Set Up the Web Service Client at Design Time

This policy requires you to set up the Web service client keystore, as described in "Setting Up the Web Service Client Keystore". The policy specifically requires that the client's and Web service's respective keystores already contain digital certificates containing each other's public key.

Example 11-3 shows the typical structure of a signature included in the Security header in conformance with the WS-Security 1.0 standards. In this example, the body element of the SOAP message is signed.

Example 11-4 is an example of the typical structure of encryption elements included in the Security header in conformance with the WS-Security 1.0 standards. In this example, the body element is encrypted.

You can specify a value for propagate.identity.context on the Configurations page, or override it using the Security Configuration Details control when you attach the policy. The propagate.identity.context property defaults to a value of blank. See "Propagating Identity Context with Oracle WSM" for additional considerations.

This policy requires you to set up the keystore. When using the ski reference mechanism, use OpenSSL or another such utility to create the certificate.

Store the trusted certificate that corresponds to the client's private key (used to sign the message) in the keystore. You also need to store the service's private key in the keystore for decrypting the message, and the CA root certificate.

As an alternative, you can specify a value for keystore.recipient.alias on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The keystore recipient alias specifies the alias used to look up the public key in the keystore when retrieving a key for encryption of outbound SOAP messages.

You can specify a value for keystore.sig.csf.key and keystore.enc.csf.key on the Configurations page, or override them on a per-client basis using the Security Configuration Details control when you attach the policy.

How to Set Up the Web Service Client at Design Time

The client must include a WS-Security UsernameToken element (<wsse:UsernameToken/>) in the SOAP request message. The client provides a username and password for authentication.

This policy requires you to set up the Web service client keystore, as described in "Setting Up the Web Service Client Keystore". The policy specifically requires that the client's and Web service's respective keystores already contain digital certificates containing each other's public key.

Example 11-3 shows the typical structure of a signature included in the Security header in conformance with the WS-Security 1.0 standards. In this example, the body element of the SOAP message is signed.

Example 11-4 is an example of the typical structure of encryption elements included in the Security header in conformance with the WS-Security 1.0 standards. In this example, the body element is encrypted.

Store the trusted certificate that corresponds to the client's private key (used to sign the message) in the keystore. You also need to store the service's private key in the keystore for decrypting the message, and the CA root certificate.

As an alternative, you can specify a value for keystore.recipient.alias on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The keystore recipient alias specifies the alias used to look up the public key in the keystore when retrieving a key for encryption of outbound SOAP messages.

You can specify a value for keystore.sig.csf.key and keystore.enc.csf.key on the Configurations page, or override them on a per-client basis using the Security Configuration Details control when you attach the policy.

You can specify a value for csf-key on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy.

This policy requires you to set up the Web service client keystore, as described in "Setting Up the Web Service Client Keystore". The policy specifically requires that the client's and Web service's respective keystores already contain digital certificates containing each other's public key.

Example 11-3 shows the typical structure of a signature included in the Security header in conformance with the WS-Security 1.0 standards. In this example, the body element of the SOAP message is signed.

Example 11-4 is an example of the typical structure of encryption elements included in the Security header in conformance with the WS-Security 1.0 standards. In this example, the body element is encrypted.

oracle/wss10_username_token_with_message_protection_service_policy

This policy enforces message-level protection (message integrity and confidentiality) and authentication for inbound SOAP requests in accordance with the WS-Security 1.0 standard.

Store the trusted certificate that corresponds to the client's private key (used to sign the message) in the keystore. You also need to store the service's private key in the keystore for decrypting the message, and the CA root certificate.

As an alternative, you can specify a value for keystore.recipient.alias on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The keystore recipient alias specifies the alias used to look up the public key in the keystore when retrieving a key for encryption of outbound SOAP messages.

You can specify a value for keystore.sig.csf.key and keystore.enc.csf.key on the Configurations page, or override them on a per-client basis using the Security Configuration Details control when you attach the policy.

You can specify a value for csf-key on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy.

This policy requires you to set up the Web service client keystore, as described in "Setting Up the Web Service Client Keystore". The policy specifically requires that the client's and Web service's respective keystores already contain digital certificates containing each other's public key.

Example 11-3 shows the typical structure of a signature included in the Security header in conformance with the WS-Security 1.0 standards. In this example, the body element of the SOAP message is signed.

Example 11-4 is an example of the typical structure of encryption elements included in the Security header in conformance with the WS-Security 1.0 standards. In this example, the body element is encrypted.

This policy requires you to set up the keystore. When using the ski reference mechanism, use OpenSSL or another such utility to create the certificate.

Store the trusted certificate that corresponds to the client's private key (used to sign the message) in the keystore. You also need to store the service's private key in the keystore for decrypting the message, and the CA root certificate.

As an alternative, you can specify a value for keystore.recipient.alias on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The keystore recipient alias specifies the alias used to look up the public key in the keystore when retrieving a key for encryption of outbound SOAP messages.

You can specify a value for keystore.sig.csf.key and keystore.enc.csf.key on the Configurations page, or override them on a per-client basis using the Security Configuration Details control when you attach the policy.

How to Set Up the Web Service Client at Design Time

The Web service client needs to provide valid X.509 authentication credentials in the SOAP message through the WS-Security binary security token.

This policy requires you to set up the Web service client keystore, as described in "Setting Up the Web Service Client Keystore". The policy specifically requires that the client's and Web service's respective keystores already contain digital certificates containing each other's public key.

Example 11-3 shows the typical structure of a signature included in the Security header in conformance with the WS-Security 1.0 standards. In this example, the body element of the SOAP message is signed.

Example 11-4 is an example of the typical structure of encryption elements included in the Security header in conformance with the WS-Security 1.0 standards. In this example, the body element is encrypted.

oracle/wss10_x509_token_with_message_protection_service_policy

This policy enforces message-level protection and certificate-based authentication for inbound SOAP requests in accordance with the WS-Security 1.0 standard.

Store the trusted certificate that corresponds to the client's private key (used to sign the message) in the keystore. You also need to store the service's private key in the keystore for decrypting the message, and the CA root certificate.

oracle/wss11_kerberos_token_with_message_protection_client_policy

This policy includes a Kerberos token in the WS-Security header, and uses Kerberos keys to guarantee message integrity and confidentiality, in accordance with the WS-Security Kerberos Token Profile v1.1 standard.

You can specify a value for keystore.sig.csf.key and keystore.enc.csf.key on the Configurations page, or override them on a per-client basis using the Security Configuration Details control when you attach the policy.

Example 11-5 is an example of the typical structure of encryption elements included in the Security header in conformance with the WS-Security 1.1 standards. In this example, the body element is encrypted.

oracle/wss11_kerberos_token_with_message_protection_service_policy

This policy is enforced in accordance with the WS-Security Kerberos Token Profile v1.1 standard.

How to Set Up Oracle Platform Security Services (OPSS)

Store the trusted certificate that corresponds to the client's private key (used to sign the message) in the keystore. You also need to store the service's private key in the keystore for decrypting the message, and the CA root certificate.

This policy includes a Kerberos token in the WS-Security header, and uses Kerberos keys to guarantee message integrity and confidentiality, in accordance with the WS-Security Kerberos Token Profile v1.1 standard.

You can specify a value for keystore.sig.csf.key and keystore.enc.csf.key on the Configurations page, or override them on a per-client basis using the Security Configuration Details control when you attach the policy.

Example 11-5 is an example of the typical structure of encryption elements included in the Security header in conformance with the WS-Security 1.1 standards. In this example, the body element is encrypted.

How to Set Up Oracle Platform Security Services (OPSS)

Store the trusted certificate that corresponds to the client's private key (used to sign the message) in the keystore. You also need to store the service's private key in the keystore for decrypting the message, and the CA root certificate.

This policy enables identity switching. Identity switching means that the policy propagates a different identity than the one based on the authenticated Subject. Instead of using the username from the Subject, this policy allows you to set a new user name when sending the SAML Web service request.

This policy enables message level protection and SAML token population for outbound SOAP requests using mechanisms described in WS-Security 1.1.

Settings

Configuration Properties

How to Set Up the Web Service Client

You attach the wss11_saml_token_identity_switch_with_message_protection_client_policy to a Web service client of any type.

subject.precedence is set to false to allow for the use of a client-specified username rather than the authenticated subject. (If subject.precedence is false, the user name to create the SAML assertion is obtained only from the csf-key username property.) The wss11_saml_token_identity_switch_with_message_protection_client_policy policy requires that an application to which the policy is attached must have the WSIdentityPermission permission. That is, applications from which Oracle WSM accepts the externally-supplied identity must have the WSIdentityPermission permission. This is to avoid potentially rogue applications from providing an identity to Oracle WSM.

As an alternative, you can specify a value for keystore.recipient.alias on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The keystore recipient alias specifies the alias used to look up the public key in the keystore when retrieving a key for encryption of outbound SOAP messages.

You can specify a value for keystore.sig.csf.key and keystore.enc.csf.key on the Configurations page, or override them on a per-client basis using the Security Configuration Details control when you attach the policy.

You can specify a value for saml.issuer.name on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The saml.issuer.name property defaults to a value of www.oracle.com. See "Adding an Additional SAML Assertion Issuer Name" for additional considerations.

You can specify a value for saml.audience.uri on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy.

You can specify a value for user.roles.include on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy.

How to Set Up the Web Service Client at Design Time

This policy requires you to set up the Web service client keystore, as described in "Setting Up the Web Service Client Keystore". The policy specifically requires that the client's and Web service's respective keystores already contain digital certificates containing each other's public key.

Example 11-5 is an example of the typical structure of encryption elements included in the Security header in conformance with the WS-Security 1.1 standards. In this example, the body element is encrypted.

oracle/wss11_saml_token_with_message_protection_client_policy

This policy enables message level protection and SAML token population for outbound SOAP requests using mechanisms described in WS-Security 1.1.

As an alternative, you can specify a value for keystore.recipient.alias on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The keystore recipient alias specifies the alias used to look up the public key in the keystore when retrieving a key for encryption of outbound SOAP messages.

You can specify a value for keystore.sig.csf.key and keystore.enc.csf.key on the Configurations page, or override them on a per-client basis using the Security Configuration Details control when you attach the policy.

You can specify a value for saml.issuer.name on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The saml.issuer.name property defaults to a value of www.oracle.com. See "Adding an Additional SAML Assertion Issuer Name" for additional considerations.

You can specify a value for user.roles.include on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy.

You can specify a value for propagate.identity.context on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The propagate.identity.context property defaults to a value of blank. See "Propagating Identity Context with Oracle WSM" for additional considerations.

How to Set Up the Web Service Client at Design Time

This policy requires you to set up the Web service client keystore, as described in "Setting Up the Web Service Client Keystore". The policy specifically requires that the client's and Web service's respective keystores already contain digital certificates containing each other's public key.

Example 11-5 is an example of the typical structure of encryption elements included in the Security header in conformance with the WS-Security 1.1 standards. In this example, the body element is encrypted.

oracle/wss11_saml_token_with_message_protection_service_policy

This policy enforces message-level integrity protection and SAML-based authentication for inbound SOAP requests in accordance with the WS-Security 1.1 standard.

Configuration Properties

You can specify a value for propagate.identity.context on the Configurations page, or override it using the Security Configuration Details control when you attach the policy. The propagate.identity.context property defaults to a value of blank. See "Propagating Identity Context with Oracle WSM" for additional considerations.

Store the trusted certificate that corresponds to the client's private key (used to sign the message) in the keystore. You also need to store the service's private key in the keystore for decrypting the message, and the CA root certificate.

As an alternative, you can specify a value for keystore.recipient.alias on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The keystore recipient alias specifies the alias used to look up the public key in the keystore when retrieving a key for encryption of outbound SOAP messages.

You can specify a value for keystore.sig.csf.key and keystore.enc.csf.key on the Configurations page, or override them on a per-client basis using the Security Configuration Details control when you attach the policy.

You can specify a value for saml.issuer.name on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The saml.issuer.name property defaults to a value of www.oracle.com. See "Adding an Additional SAML Assertion Issuer Name" for additional considerations.

You can specify a value for user.roles.include on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy.

You can specify a value for propagate.identity.context on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The propagate.identity.context property defaults to a value of blank. See "Propagating Identity Context with Oracle WSM" for additional considerations.

How to Set Up the Web Service Client at Design Time

This policy requires you to set up the Web service client keystore, as described in "Setting Up the Web Service Client Keystore". The policy specifically requires that the client's and Web service's respective keystores already contain digital certificates containing each other's public key.

Example 11-5 is an example of the typical structure of encryption elements included in the Security header in conformance with the WS-Security 1.1 standards. In this example, the body element is encrypted.

oracle/wss11_saml20_token_with_message_protection_service_policy

This policy enforces message-level integrity protection and SAML-based authentication for inbound SOAP requests in accordance with the WS-Security 1.1 standard.

Configuration Properties

You can specify a value for propagate.identity.context on the Configurations page, or override it using the Security Configuration Details control when you attach the policy. The propagate.identity.context property defaults to a value of blank. See "Propagating Identity Context with Oracle WSM" for additional considerations.

Store the trusted certificate that corresponds to the client's private key (used to sign the message) in the keystore. You also need to store the service's private key in the keystore for decrypting the message, and the CA root certificate.

As an alternative, you can specify a value for keystore.recipient.alias on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The keystore recipient alias specifies the alias used to look up the public key in the keystore when retrieving a key for encryption of outbound SOAP messages.

You can specify a value for keystore.enc.csf.key on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy.

How to Set Up the Web Service Client at Design Time

This policy uses symmetric key technology, which is an encryption method that uses the same shared key to encrypt and decrypt data. The symmetric key is used to sign the message.

Example 11-5 is an example of the typical structure of encryption elements included in the Security header in conformance with the WS-Security 1.1 standards. In this example, the body element is encrypted.

How to Set Up Oracle Platform Security Services (OPSS)

Store the trusted certificate that corresponds to the client's private key (used to sign the message) in the keystore. You also need to store the service's private key in the keystore for decrypting the message, and the CA root certificate.

As an alternative, you can specify a value for keystore.recipient.alias on the Configurations page, or override it on a per-client basis using the Security Configuration Details control when you attach the policy. The keystore recipient alias specifies the alias used to look up the public key in the keystore when retrieving a key for encryption of outbound SOAP messages.

You can specify a value for keystore.sig.csf.key and keystore.enc.csf.key on the Configurations page, or override them on a per-client basis using the Security Configuration Details control when you attach the policy.

How to Set Up the Web Service Client at Design Time

This policy requires you to set up the Web service client keystore, as described in "Setting Up the Web Service Client Keystore". The policy specifically requires that the client's and Web service's respective keystores already contain digital certificates containing each other's public key.

The Web service client needs to provide valid X.509 authentication credentials in the SOAP message through the WS-Security binary security token.

Example 11-5 is an example of the typical structure of encryption elements included in the Security header in conformance with the WS-Security 1.1 standards. In this example, the body element is encrypted.

oracle/wss11_x509_token_with_message_protection_service_policy

This policy enforces message-level protection and certificate-based authentication for inbound SOAP requests in accordance with the WS-Security 1.1 standard.

How to Set Up Oracle Platform Security Services (OPSS)

Store the trusted certificate that corresponds to the client's private key (used to sign the message) in the keystore. You also need to store the service's private key in the keystore for decrypting the message, and the CA root certificate.

Authorization Policies and Configuration Steps

Frequently, authentication is the first step of determining whether a user should be given access to a Web service. After the user is authenticated, the second step is to verify that the user is authorized to access the Web service. This is accomplished using an authorization policy. You can create an authorization policy using the binding_authorization_template or the component_authorization_template assertion templates.

Policies created with these templates perform role- or permission-based access control (RBAC) and check that the authenticated user has been granted one of the roles or permissions allowed access to the Web service.

Appendix B, "Predefined Policies" summarizes the security policies that enforce authorization, and indicates whether the policy is enforced at the transport layer or SOAP header.

Note:

The authorization polices can follow any authentication policy where the subject is established.

You cannot attach both a permitall and denyall policy to the same Web service.

Determining Which Resources to Protect

The authorization policies provide the following properties that you can use to specify which resources you want the policy to protect. Not all of the predefined policies feature all of the properties.

Constraint Pattern -- Expression that represents the constraints against which authorization checks are performed. The constraints expression is specified using the following two messageContext properties:

messageContext.authenticationMethod—Determines the authentication method used to authenticate the user. The only valid value is SAML_SV.

messageContext.requestOrigin—Determines whether the request originated from an internal or external network. This property is valid only when using Oracle HTTP Server and the Oracle HTTP server administrator has added a custom VIRTUAL_HOST_TYPE header to the request. For details about adding this header to a request, see "Configuring Oracle HTTP Server to Specify Request Origin".

Note the following:

The Constraint Pattern properties and their values are case sensitive.

This property is valid for authorization policies based on the binding_authorization_template only. For policies based on other authorization assertion templates, this property is reserved for future use.

Action Pattern -- The Web service operation for which permission-based checks are performed. This value can be a comma-separated list of values. This field accepts wildcards. * means all Web service operations.

The valid values for Action Pattern are determined by the Web service methods. For example, if the Web service method is validate(amountAvailable), enter the Action Pattern as validate.

Resource Pattern -- The name of the resource for which permission-based checks are performed. This field accepts wildcards, and the default is * for all resources in the Web services protected by the policy.

By convention you enter the Resource Pattern as (namespace of Web service + Web service name).

For example, if the namespace of the Web service is http://project11 and the Web service name is CreditValidation, you would enter the Resource Name as http://project11/CreditValidation.

If you specify a specific Resource Pattern, the policy is enforced only for those Web services that match the criteria. That is, entering a specific Resource Pattern limits the scope of the authorization policy. This condition also applies if you have bulk-attached this authorization policy to multiple subjects. The default of * protects all resources (namespace of Web service + Web service name) of the bulk-attached Web services.

Permission Check Class -- By default, it is oracle.wsm.security.WSFunctionPermission. The class must be in the classpath.

Authorization Setting -- Possible values are Permit All, Deny All, and Selected Roles. If you choose Selected Roles, you must then select from the enterprise (Global) roles defined in WebLogic Server, which may include the following:

AdminChannelUser

Anonymous

AppTester

CrossDomainConnector

Deployer

Monitor

Operator

OracleSystemRole

How Authorization Permissions Are Determined

Conceptually, determining whether an authenticated subject is authorized to access a particular resource protected by a Web service policy has two parts that work in tandem.

You have the option to change the Permission Check Class configuration property for the policy, which identifies the permission class as per JAAS standards. The permission class must be available in the application or server classpath.

OPSS uses the Policy Settings page for the Web service to determine which resources require an authorization check. Then, access to the resource is allowed if the authenticated subject has been granted WSFunctionPermission (or other permission) for that resource via OPSS.

Note:

If you changed the Permission Check Class configuration property for the policy to a custom class, use the custom class here as well.

Then, on the OPSS Application Policies page, you would use http://project11/CreditValidation#validate for the Resource Name to specify that the authenticated subject has permission to invoke this resource:

You can grant the WSFunctionPermission permission to a user, a group, or an application role. If you grant WSFunctionPermission to a user or group it will apply to all applications that are deployed in the domain.

OPSS Resource Name Can Include Operation Name

In previous releases of Fusion Middleware Control, the Resource Name on the OPSS Application Policies page was determined by name-space-of-webservice/ServiceName. For example, if the name space of a Web service was http://project1/ and the service name was CreditValidation, the Resource Name would have been http://project1/CreditValidation. You could also use an asterisk (*) wildcard for providing permission to all the actions or all resources.

In this release, the resource target of the WSFunctionPermission is enhanced to include the actual Web service operation name. The syntax for the Resource Name is now name-space-of-webservice/servicename#[operation name]. (For a component it is compositename/componentname#[operation name].)]

You must now include at least the name-space-of-webservice/service name. That is, you can no longer use an asterisk (*) wildcard for providing permission to all the actions or all resources.

Instead, to specify all operations for a Web service, simply leave the operation name blank. For example, name-space-of-webservice/servicename#

Permission Action is always invoke.

oracle/binding_authorization_denyall_policy

This policy provides a simple role-based authorization policy based on the authenticated subject.

This policy denies all users with any role.

This policy should follow an authentication policy where the subject is established and can be attached to any SOAP-based endpoint.

Settings

To add roles, click the check box next to each role you want to add in the Roles Available column and click Move. To add all roles, click Move All.

To remove roles, click the check box next to each role you want to remove in the Roles Selected to Add column, and click Remove. To remove all roles, click Remove All.

To search for roles, enter a search string in the Role Name search box and click the go arrow. The Roles Available column is updated to include only those roles that match the search string.

Click OK.

To delete roles:

Select the role that you want to delete in the Selected Roles list.

Click Delete.

Configuration Properties

None defined.

How to Set Up Oracle Platform Security Services (OPSS)

If you specify one or more of the WebLogic Server enterprise roles, the authenticated subject must already have that role. You use the WebLogic Server Administration Console to grant a role to a user or group, as described in the Oracle WebLogic Server Administration Console Help.

Settings

To add roles, click the check box next to each role you want to add in the Roles Available column and click Move. To add all roles, click Move All.

To remove roles, click the check box next to each role you want to remove in the Roles Selected to Add column, and click Remove. To remove all roles, click Remove All.

To search for roles, enter a search string in the Role Name search box and click the go arrow. The Roles Available column is updated to include only those roles that match the search string.

Click OK.

To delete roles:

Select the role that you want to delete in the Selected Roles list.

Click Delete.

Configuration Properties

None defined.

How to Set Up Oracle Platform Security Services (OPSS)

If you specify one or more of the WebLogic Server enterprise roles, the authenticated subject must already have that role. You use the WebLogic Server Administration Console to grant a role to a user or group, as described in the Oracle WebLogic Server Administration Console Help.

oracle/binding_permission_authorization_policy

This policy provides a permission-based authorization policy based on the authenticated subject.

This policy ensures that the subject has permission to perform the operation. To do this, the Authorization Policy executor leverages OPSS to check if the authenticated subject has been granted oracle.wsm.security.WSFunctionPermission (or whatever permission class is specified in Permission Check Class) using the Resource Pattern and Action Pattern as parameters.

This policy should follow an authentication policy where the subject is established and can be attached to any SOAP-based endpoint.

Settings

Attributes You Can Configure

You have the option to change the permission_class configuration property for the policy, which identifies the permission class as per JAAS standards. The permission class must be available in the application or server classpath.

How to Set Up Oracle Platform Security Services (OPSS)

Use Fusion Middleware Control to grant the WSFunctionPermission (or other) permission to the user, group, or application that will attempt to authenticate to the Web service.

You have the option to change the permission_class configuration property for the policy, which identifies the permission class as per JAAS standards. The class must be available in the server classpath. The default is oracle.wsm.security.WSFunctionPermission.

Settings

To add roles, click the check box next to each role you want to add in the Roles Available column and click Move. To add all roles, click Move All.

To remove roles, click the check box next to each role you want to remove in the Roles Selected to Add column, and click Remove. To remove all roles, click Remove All.

To search for roles, enter a search string in the Role Name search box and click the go arrow. The Roles Available column is updated to include only those roles that match the search string.

Click OK.

To delete roles:

Select the role that you want to delete in the Selected Roles list.

Click Delete.

Configuration Properties

None defined.

How to Set Up Oracle Platform Security Services (OPSS)

If you specify one or more of the WebLogic Server enterprise roles, the authenticated subject must already have that role. You use the WebLogic Server Administration Console to grant a role to a user or group, as described in the Oracle WebLogic Server Administration Console Help.

Settings

To add roles, click the check box next to each role you want to add in the Roles Available column and click Move. To add all roles, click Move All.

To remove roles, click the check box next to each role you want to remove in the Roles Selected to Add column, and click Remove. To remove all roles, click Remove All.

To search for roles, enter a search string in the Role Name search box and click the go arrow. The Roles Available column is updated to include only those roles that match the search string.

Click OK.

To delete roles:

Select the role that you want to delete in the Selected Roles list.

Click Delete.

Configuration Properties

None defined.

How to Set Up Oracle Platform Security Services (OPSS)

If you specify one or more of the WebLogic Server enterprise roles, the authenticated subject must already have that role. You use the WebLogic Server Administration Console to grant a role to a user or group, as described in the Oracle WebLogic Server Administration Console Help.

oracle/component_permission_authorization_policy

This policy provides a permission-based authorization policy based on the authenticated subject.

This policy ensures that the subject has permission to perform the operation. To do this, the Authorization Policy executor leverages OPSS to check if the authenticated subject has been granted oracle.wsm.security.WSFunctionPermission (or whatever permission class is specified in Permission Check Class) using the Resource Pattern and Action Pattern as parameters. Resource Pattern and Action Pattern are used to identify if the authorization assertion is to be enforced for this particular request. Access is allowed if the authenticated subject has been granted WSFunctionPermission.

You can grant the WSFunctionPermission permission to a user, a group, or an application role. If you grant WSFunctionPermission to a user or group it will apply to all applications that are deployed in the domain.

This policy should follow an authentication policy where the subject is established and can be attached to any SCA-based endpoint.

Settings

To add roles, click the check box next to each role you want to add in the Roles Available column and click Move. To add all roles, click Move All.

To remove roles, click the check box next to each role you want to remove in the Roles Selected to Add column, and click Remove. To remove all roles, click Remove All.

To search for roles, enter a search string in the Role Name search box and click the go arrow. The Roles Available column is updated to include only those roles that match the search string.

Click OK.

To delete roles:

Select the role that you want to delete in the Selected Roles list.

Click Delete.

Configuration Properties

None defined.

How to Set Up Oracle Platform Security Services (OPSS)

If you specify one or more of the WebLogic Server enterprise roles, the authenticated subject must already have that role. You use the WebLogic Server Administration Console to grant a role to a user or group, as described in the Oracle WebLogic Server Administration Console Help.

How to Successfully Invoke Services Using This Policy

To successfully invoke a service that has the whitelist_authorization_policy attached, you must do one of the following:

If the service accepts SAML sender vouches for authentication (for example, a SAML token service policy is attached to the service), you must attach the corresponding SAML token client policy to the client.

If the service accepts username/password for authentication (for example, a username token service policy is attached to the service), you must attach the corresponding username token client policy to the client and make sure that the client is in a trusted role as defined in the policy. (By default, the role defined in the predefined policy is trustedEnterpriseRole. You need to modify this role in the predefined policy.)

If the service is invoked using Oracle HTTP Server, and it is configured to indicate that the request came from a private internal network (see "Configuring Oracle HTTP Server to Specify Request Origin"), then a client on the internal network only has to attach the corresponding username token client policy at the client side.

Configuring Oracle HTTP Server to Specify Request Origin

The Constraint Pattern property setting contains a requestOrigin field that specifies whether the request originated from an internal or external network. This property is valid only when using Oracle HTTP Server and the Oracle HTTP server administrator has added a custom VIRTUAL_HOST_TYPE header to the request.

To do so, the administrator must modify the httpd.conf file as follows:

Verify that the module mod_headers is loaded.

Set the VIRTUAL_HOST_TYPE header name in the RequestHeader. Valid values are internal and external. Use the following command syntax:

In these examples, all the requests coming from outside of the private network are routed through virtual host:8888 and all the requests coming from the internal private network are routed through virtual host:7777.

Note that you must also add these ports in the httpd.conf file as listen ports so that the applications are available on the ports externally.

Restart the Oracle HTTP Server.

WS-Addressing Policies and Configuration Steps

The Web Services Addressing (WS-Addressing) specification (http://www.w3.org/TR/ws-addr-core/) provides transport-neutral mechanisms to address Web services and messages. In particular, the specification defines a number of XML elements used to identify Web service endpoints and to secure end-to-end endpoint identification in messages.

This section describes the predefined WS-Addressing policies.

oracle/wsaddr_policy

This policy causes the platform to check inbound messages for the presence of WS-Addressing headers conforming to the W3C 2005 Final WS-Addressing Policy standard. In addition, it causes the platform to include a WS-Addressing header in outbound SOAP messages.

How to Set Up the Web Service Client at Design Time

However, if you did not configure the STS config policy from the Web service, or if you are using the SAML sender vouches confirmation method, you must then configure it from the Web service client as described in this section.

How to Set Up the Web Service

oracle/wss_sts_issued_saml_bearer_token_over_ssl_client_policy

This policy inserts a SAML bearer assertion issued by a trusted STS. Messages are protected using SSL.

This policy contains the following assertion template: oracle/wss_sts_issued_saml_bearer_token_over_ssl_client_policy_template. See "WS-Trust Assertion Templates" for more information about the assertion.

Policy Assertion

The oracle/wss_sts_issued_saml_bearer_token_over_ssl_client_policy assertion is as follows:

oracle/wss_sts_issued_saml_bearer_token_over_ssl_service_policy

This policy authenticates a SAML bearer assertion issued by a trusted STS. Messages are protected using SSL.

This policy contains the following assertion template: oracle/wss_sts_issued_saml_bearer_token_over_ssl_service_policy_template. See "WS-Trust Assertion Templates" for more information about the assertion.

Policy Assertion

The oracle/wss_sts_issued_saml_bearer_token_over_ssl_service_policy assertion is as follows:

This policy inserts a SAML HOK assertion issued by a trusted STS (Security Token Service). Messages are protected using proof key material provided by the STS.

This policy contains the following assertion template: oracle/wss11_sts_issued_saml_hok_with_message_protection_client_template. See "WS-Trust Assertion Templates" for more information about the assertion.

Policy Assertion

The oracle/wss11_sts_issued_saml_hok_with_message_protection_client_policy assertion is as follows:

As an alternative, you can specify a value for keystore.recipient.alias, or override it on a per-client basis when you attach the policy. The keystore recipient alias specifies the alias used to look up the public key in the keystore when retrieving a key for encryption of outbound SOAP messages.

You can specify a value for keystore.enc.csf.key, or override them on a per-client basis when you attach the policy.

As an alternative, you can specify a value for keystore.recipient.alias, or override it on a per-client basis when you attach the policy. The keystore recipient alias specifies the alias used to look up the public key in the keystore when retrieving a key for encryption of outbound SOAP messages.

You can specify a value for keystore.enc.csf.key, or override them on a per-client basis when you attach the policy.

This policy contains the following assertion template: oracle/wss11_sts_issued_saml_hok_with_message_protection_service_template. See "WS-Trust Assertion Templates" for more information about the assertion.

Policy Assertion

The oracle/wss11_sts_issued_saml_hok_with_message_protection_service_policy assertion is as follows:

As an alternative, you can specify a value for keystore.recipient.alias, or override it on a per-client basis when you attach the policy. The keystore recipient alias specifies the alias used to look up the public key in the keystore when retrieving a key for encryption of outbound SOAP messages.

You can specify a value for keystore.enc.csf.key, or override them on a per-client basis when you attach the policy.

As an alternative, you can specify a value for keystore.recipient.alias, or override it on a per-client basis when you attach the policy. The keystore recipient alias specifies the alias used to look up the public key in the keystore when retrieving a key for encryption of outbound SOAP messages.

You can specify a value for keystore.enc.csf.key, or override them on a per-client basis when you attach the policy.

MTOM Attachment Policies and Configuration Steps

This section describes the predefined MTOM policies.

There are two potential behaviors for using MTOM with Oracle Infrastructure Web services, depending on how you configure MTOM:

If you configure MTOM from Fusion Middleware Control by attaching the oracle/wsmtom_policy policy (either via local or Global Policy Attachment), the endpoint throws a fault if the request is not MTOM encoded. The MTOM policy rejects inbound messages that are not in MTOM format and verifies that outbound messages are in MTOM format. In this use, requests must be MTOM-enabled.

If you configure MTOM for an ADF BC Web service outside of Fusion Middleware Control, such as by editing the MTOM-enabled switch in oracle-webservices.xml or by directly adding the @MTOM annotation to the Web service, the endpoint can accept MTOM requests but does not return a fault if the request is not MTOM encoded. In this use, requests might be MTOM-enabled, but there is no requirement that they must be.

How to Set Up Oracle Platform Security Services (OPSS)

No configuration is required.

Reliable Messaging Policies and Configuration Steps

WS-ReliableMessaging makes message exchanges reliable. It ensures that messages are delivered reliably between distributed applications regardless of software component, system, or network failures. Ordered delivery is assured and automatic retransmission of failed messages does not have to be coded by each client application.

Consider using reliable messaging if your Web service is experiencing the following problems:

network failures or dropped connections

messages are lost in transit

messages are arriving at their destination out of order

WS-ReliableMessaging considers the source and destination of a message to be independent of the client/server model. That is, the client and the server can each act simultaneously as both a message source and destination on the communications path.

This section describes the predefined Reliable Messaging policies.

WS-RM Policy Properties

Table 11-1 lists the properties that you can set for the WS-RM policies.

Table 11-1 WS-RM Policy Properties

Property Name

Description

Default Value Used by Policy

Possible Values

DeliveryAssurance

Delivery assurance. The following defines the delivery assurance types:

At Most Once—Messages are delivered at most once, without duplication.

At Least Once—Every message is delivered at least once. It is possible that some messages are delivered more than once.

Messages are delivered in the order that they were sent. This delivery assurance can be combined with one of the preceding three assurances.

InOrder

InOrder

AtLeastOnce

AtLeastOnceInOrder

ExactlyOnce

ExactlyOnceInOrder

AtMostOnce

AtMostOnceInOrder

StoreType

Type of message store.

InMemory

InMemory

FileSystem (not fully supported)

JDBC

StoreName

Name of the message store.

oracle

String value

jdbc-connection-name

JNDI reference to a JDBC data source. This field is valid only if StoreType is set to JDBC. This value takes precedence over jdbc-connection-url. The username and password will be used if both are present.

jdbc/MessagesStore

Valid JDBC store

InactivityTimeout

Amount of time, in milliseconds, that can elapse between message exchanges associated with a particular WS-ReliableMessaging sequence. Once this value is reached, the sequence will be terminated and discarded automatically.

600000

The amount of time in milliseconds.

BaseRetransmissionInterval

Interval, in milliseconds, that the source endpoint waits after transmitting a message and before it retransmits the message if it receives no acknowledgment for that message.

3000

The amount of time in milliseconds.

oracle/wsrm10_policy

This policy provides support for version 1.0 of the Web Services Reliable Messaging protocol. This policy can be attached to any SOAP-based client or endpoint.

How to Set Up the Web Service Client

The Web service client will automatically detect the WSDL policy assertions at run time and use them to enable the advertised version of WS-RM on the client.

How to Set Up the Web Service Client at Design Time

For multi-message sequences, the client code must include explicit invocations of methods for delimiting sequence boundaries. Otherwise, every message is wrapped in its own sequence

Edit the client to enable a reliable messaging session for the messages sent to the service. The oracle.webservices.rm.client.RMSessionLifecycle interface provides the client with a mechanism for demarcating WS-RM sequence boundaries.

Example 11-8 illustrates sample WS-RM client code. In the code, a new TestService is created. The TestPort, through which the client will communicate with the service, is retrieved. The port object is cast to a RMSessionLifecycle object and a reliable messaging session is opened on it (openSession). After the messages are sent to the service, the session is closed (closeSession).

How to Set Up Oracle Platform Security Services (OPSS)

oracle/wsrm11_policy

This policy provides support for version 1.1 of the Web Services Reliable Messaging protocol. This policy can be attached to any SOAP-based client or endpoint.

How to Set Up the Web Service Client

The Web service client will automatically detect the WSDL policy assertions at run time and use them to enable the advertised version of WS-RM on the client.

How to Set Up the Web Service Client at Design Time

For multi-message sequences, the client code must include explicit invocations of methods for delimiting sequence boundaries. Otherwise, every message is wrapped in its own sequence

Edit the client to enable a reliable messaging session for the messages sent to the service. The oracle.webservices.rm.client.RMSessionLifecycle interface provides the client with a mechanism for demarcating WS-RM sequence boundaries.

Example 11-8 illustrates a servlet client. In the code, a new TestService is created. The TestPort, through which the client will communicate with the service, is retrieved. The port object is cast to a RMSessionLifecycle object and a reliable messaging session is opened on it (openSession). After the messages are sent to the service, the session is closed (closeSession).

How to Set Up Oracle Platform Security Services (OPSS)

No additional configuration is required.

Management Policies and Configuration Steps

This section describes the predefined Management policies.

oracle/log_policy

This policy causes the request, response, and fault messages to be sent to a message log.

This policy contains the following assertion template: oracle/log_template. See "oracle/security_log_template" for more information about the assertion.

Attaching Policy Files to Web Services and Clients

There are two ways to attach policies to Web service clients and Web services: at the client and service design time, and post deployment.

Post-deployment, you attach security and management policies to SOA composites, ADF, and WebCenter applications using the Oracle Enterprise Manager Fusion Middleware Control. This method provides the most power and flexibility because it moves Web service security to the control of the security administrator.

At design time, Oracle JDeveloper automates ADF and SOA client policy attachment. Or, you can attach Oracle WSM security and management policies to applications programmatically. You typically do this using your favorite IDE, such as Oracle JDeveloper.

Either way, the client-side policy must be the equivalent of the one associated with the Web service. If the two files are different, and there is a conflict in the assertions contained in the files, then the invoke of the Web service operation returns an error.

For example, if the oracle/wss_http_token_over_ssl_service_policy policy requires mutual authentication, the client policy must also be set for mutual authentication.

For the predefined policies, both client and Web service policies are included. If you create a new policy, generating the policy as described in "Creating Web Service Policies" increases the likelihood that the client policy will work with the service policy.

Using Client Programmatic Configuration Overrides

"Attaching Client Policies Permitting Overrides" describes the policy configuration override feature that allows you to specify certain Web service client configuration information when you attach a policy. However, you can also override this configuration information programmatically at design time. This section describes client programmatic overrides.

Table 11-2 shows the properties you can set via programmatic configuration overrides for a given policy. Example 11-9 shows an example of setting these properties from a program.

This property sets the password for the alias of the key within the keystore that will be used for digital signatures. If provided, this value will override any statically configured value. Type: java.lang.String

For WSS11 policies, this property is used only in the case of mutual authentication.

This property sets the alias of the key within the keystore that will be used to decrypt the response from the service. If provided, this value will override any statically configured value. Type: java.lang.String

This property sets the service principal name when trying access a service that is protected using the Kerberos mechanism. If provided this value will override any static configuration value. Type: java.lang.String

If the policy-reference-uri in the STS configuration policy points to an x509-based policy, then you configure the sts.auth.x509.csf.key property to specify the X509 certificate for authenticating to the STS.

If policy-reference-uri in the STS configuration policy points to a username-based policy, then you configure the sts.auth.user.csf.key property to specify a username/password to authenticate to the STS.

Optional property. Override this property to indicate whether the request is on behalf of an another entity. The default value for this flag is true. When set to true and sts.auth.on.behalf.of.csf.key is configured, then it will be given preference and the identity established using that CSF key will be send in the on behalf of.

Otherwise, if the subject is already established, then the username from the subject will be sent as onBehalfOf token.

If sts.auth.on.behalf.of.csf.key is not set and the subject does not exist, on.behalf.of is treated as a token exchange for the requestor and not for another entity. It is not included in an onBehalfOf element in the request.

The mapping attribute used to represent the attesting entity. Only the DN is currently supported. This attribute is applicable only to sender vouches and then only to message protection use cases. It is not applicable to SAML over SSL policies.

When true, the signature certificate and the trusted certificate chain (for CA-issued certificates) are included in JWT token claim. This increases the size of the JWT token, but you do not need to then import the certificate and certificate chain into the service side keystore.

When false, only the thumbprint and alias of the certificate are included in the JWT token.

Optional property that specifies the tenant key from the Oracle WSM keystore for signing the locally-created JWT token.

http_oauth2_token_client_policy

http_oauth2_token_over_ssl_client_policy

Configuration Override Example

Example 11-9 shows an example of a Web service client overriding the keystore and username/password.

If you need to clear an overridden configuration property, set it to an empty string.

Before you clear it, remember that other policies could be using the same property. The properties are client-specific and there could be multiple policies that are attached to the same client that use the same property.

Configuring Local Optimization for a Policy

Oracle WSM supports a SOA local optimization feature for composite-to-composite invocations in which the reference of one composite specifies a Web service binding to a second composite running in the same container. Local optimization enables you to bypass the HTTP stack and SOAP/normalized message conversions during run time.

false -- Local optimization is not used, regardless of the how the policy-level control is configured and the default policy setting for the local-optimization property shown in Table 11-3.

This setting forces the policy to be applied.

The composite-level property is independent of the policy-level configuration. That is, if you want to turn off the optimization regardless of whether a policy is attached, set the composite-level property to false.

By configuring the optimization control for a policy, as described in "Configuring the Policy-Level Optimization Control". The policy-level property controls the optimization wherever the policy is used, except as overridden by the composite-level property.

Configuring the Policy-Level Optimization Control

Notes:

If there is a policy attached to the Web service, the policy may not be invoked if this optimization is used. Therefore, for each policy you need to decide whether you want to use the local optimization.

Oracle recommends that you do not change the optimization settings for the predefined policies because doing so may cause the policies to not be invoked, resulting in unexpected behavior.

The optimization control is available when you create or edit a policy, as shown in Figure 11-4.