Encrypting the message elements in generator security constraints with keywords

Complete the following steps to specify which message parts to encrypt when you configure the consumer security constraints for either the request generator or the response generator. The request generator is configured for the client and the response generator is configured for the server. In the following steps, configure either the client-side extensions in step 2 or the server-side extensions in step 3.

  1. Click Window > Open Perspective > J2EE.

  2. Optional:

    Locate the client-side extensions using the Project Explorer window. The Client Deployment Descriptor window is displayed. This Web service contains the extensions that you need to configure. Complete the following steps to locate the client-side extensions:

    1. Expand the Web Services > Client section and double-click the name of the Web service.

    2. Click the WS Extension tab and expand the Request Generator Configuration section.

  3. Optional:

    Locate the server-side extensions using the Project Explorer window. The Web Services Editor window is displayed. This Web service contains the extensions that you need to configure. Complete the following steps to locate the server-side extensions:

    1. Expand the Web Services > Services section and double-click the name of the Web service.

    2. Click the Extensions tab and expand the Response Generator Service Configuration Details section.

  4. Expand the Required Confidentiality section. Confidentiality refers to encryption while integrity refers to digital signing. Confidentiality reduces the risk of someone intercepting the message as it moves across a network. With confidentiality specifications, the message is encrypted before it is sent and decrypted when it is received at the intended target. For more information on encryption, see XML encryption.

  5. Click Add to specify which parts of the message to encrypt. The Confidentiality Dialog window is displayed. Complete the following steps to specify the message parts:

    1. Specify a name for the confidentiality element in the Confidentiality Name field. For example, you might specify conf_webskey.

    2. Specify an order in the Order field. The value, which must be a positive integer value, specifies the order in which the encryption is processed. An order value of 1 specifies that the encryption is done first.

  6. Click Add under Message parts and select the Message parts dialect. The http://www.ibm.com/websphere/webservices/wssecurity/dialect-was dialect specifies which message part is encrypted using keywords. If you select this dialect, you can select one of the following keywords under Message parts keyword:

    bodycontent

    Specifies the user data portion of the message. If you select this keyword, the body is encrypted.

    usernametoken

    Specifies a username token that contains the basic authentication information such as a user name and a password. Usually, the username token is encrypted so that the user information is secure. If you select this keyword, the the username token element is encrypted.

    digestvalue

    Specifies a unique digest value. When a part of the SOAP message is signed, a unique digest value is created and is used by the receiving party to check the integrity of the message. You can encrypt the digestvalue element to secure the digest value.

    Note: You must have a matching configuration for the consumer side.

    In addition to the message parts, you also can specify that WebSphere® Application Server encrypt the nonce and timestamp elements. For more information, see the following articles:

  7. Click OK to save your configuration.

For example, the following sample is a part of a Simple Object Access Protocol (SOAP) message whose message content is encrypted using the bodycontent keyword and the http://www.ibm.com/websphere/webservices/wssecurity/dialect-was dialect:

<soapenv:Body soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
   <EncryptedData Id="wssecurity_encryption_id_8770799378696212005" 
    Type="http://www.w3.org/2001/04/xmlenc#Content" xmlns="http://www.w3.org/2001/04/xmlenc#">
      <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
      <CipherData>            
         <CipherValue>nIlF+Uthee0H96HbtRrolJ/tBmOazyryNYRwr/reF4nqtbHqGtNuew==</CipherValue>
      </CipherData>
   </EncryptedData>
</soapenv:Body>

After you specify which message parts to encrypt, specify which method is used to encrypt the message parts. For more information, see Configuring encryption information for the generator binding.

 

Related tasks

Adding time stamps for confidentiality to generator security constraints with an XPath expression

Adding the nonce for confidentiality to generator security constraints with an XPath expression

Configuring encryption information for the generator binding