Web Services Security constraints
The Web Services Security model used by WebSphere Application Server is the declarative model. A version 5.x application must be secured with Web Services Security by defining the security constraints in the IBM extension deployment descriptors and in IBM extension bindings.
Important: There is an important distinction between Version 5.x and Version 6 and later applications. The information supports Version 5.x applications only used with WAS v6.0.x and later. The information does not apply to Version 6 and later applications.
No APIs exist in WebSphere Application Server for programmatically interacting with Web Services Security. However, Service Provider Programming Interfaces (SPIs) are available for extending some security runtime behaviors. We can secure an application with Web Services Security by defining security constraints in the IBM extension deployment descriptors and in IBM extension bindings.
The development life cycle of a Web Services Security-enabled application is similar to the Java EE programming model. See the following figure for more details.
Figure 1. Application development life cycle
The Web Services Security constraints are defined by the assembler during the application assembly phase if the Java EE application is web services-enabled. Create, define, and edit the Web Services Security constraints with an assembly tool. For more information, read about assembly tools.
Web Services Security constraints
The Web Services Security run time acts on the constraints to enforce Web Services Security for the SOAP message. The scope of the IBM deployment descriptor extension is at the EJB module or web module level. There also are bindings associated with each of the following IBM deployment descriptor extensions:
Client (might be either a Java EE client (application client container) or web services acting as a client)
- ibm-webservicesclient-ext.xmi
- ibm-webservicesclient-bnd.xmi
Server
- ibm-webservices-ext.xmi
- ibm-webservices-bnd.xmi
The IBM extension deployment descriptor and bindings are associated with each EJB module or web module. See Figure 2 for more information. If web services is acting as a client, then it contains the client IBM extension deployment descriptors and bindings in the EJB module or web module.
Figure 2. IBM extension deployment descriptors and bindings
The Web Services Security handler acts on the security constraints defined in the IBM extension deployment descriptor and enforces the security constraints accordingly. There are outbound and inbound configurations in both the client and server security constraints.
In a SOAP request, the following message points exist:
- Sender outbound
- Receiver inbound
- Receiver outbound
- Sender inbound
These message points correspond to the following four security constraints:
- Request sender (sender outbound)
- Request receiver (receiver inbound)
- Response sender (receiver outbound)
- Response receiver (sender inbound)
The security constraints of request sender and request receiver must match. Also, the security constraints of the response sender and response receiver must match. For example, if specified integrity as a constraint in the request receiver, then configure the request sender to have integrity applied to the SOAP message. Otherwise, the request is denied because the SOAP message does not include the integrity specified in the request constraint.
The four security constraints are shown in the following figure of Web Services Security constraints.
Figure 3. Web Services Security constraints
Subtopics
- Example: Sample configuration for Web Services Security for a version 5.x application
To secure a version 5.x application with Web Services Security, define the security constraints in the IBM extension deployment descriptors and in IBM extension bindings. Sample keystore files and default binding information are provided for a sample configuration to demonstrate what IBM deployment descriptor extensions and bindings can do.
Related concepts
Secure web services Web Services Security model in WebSphere Application Server Request sender Request receiver Response sender Response receiver Development and assembly tools
Related tasks
Assembling applications