You can 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.
Before you begin
Prior to completing this task, you must import your application into
an assembly tool.
For information on how to import
your application, see Importing
enterprise applications.
About this task
Complete the following steps. You must configure either the client-side
extensions in step 2 or the server-side extensions in step 3.
Procedure
- Start the assembly tool.
- Switch to the Java 2 Platform, Enterprise Edition (J2EE) perspective.
Click Window > Open Perspective > J2EE.
- 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 must configure.
Complete the following steps to locate the client-side extensions:
- Expand the Web Services > Client section and double-click the
name of the Web service.
- Click the WS Extension tab and expand the Request Generator
Configuration section.
- 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 must configure. Complete
the following steps to locate the server-side extensions:
- Expand the Web Services > Services section and double-click
the name of the Web service.
- Click the Extensions tab and expand the Response Generator
Service Configuration Details section.
- 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
.
- 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:
- Specify a name for the confidentiality element in the Confidentiality
Name field. For example, you might specify conf_webskey.
- 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.
- 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 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:
- Click OK to save your configuration.
Example
The following sample is a part of a SOAP message; the 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>