There are three options for security when using HTTP as the transport protocol:
HTTP authentication
Many applications require users to provide identifying information. You can restrict access to data based on the authorization level assigned to users.
The Apache implementation of SOAP has an API to set the user ID/password for HTTP basic authentication.
SOAP on Secure Sockets Layer (SSL) with HTTP basic authentication
To make a request over HTTPS, using the SSL support of Apache SOAP, you need a separate Java Secure Socket Extension (JSSE) provider. WebSphere Application Server includes the ibmjsse.jar JAR file, which includes these APIs.The SOAP on SSL scenario is useful for many business-to-business applications because:
For example, if an inventory application is configured as a web service, the service provider has these two SOAP service entries:
Each SOAP service entry should be deployed as a separate enterprise application (EAR) because each service has a different access control policy, which is that anyone can inquire about the inventory but only the inventory clerks can update the contents.
Perform these steps to enable the SOAP on SSL scenario:
In this case, the 'update' application does not know the identity of the requester; it only knows that access is granted.
SOAP on SSL with SOAP signature
Applications might need nonrepudiable proof of exchanged messages. One example is a web service that accepts part orders. The business partners establish a form of trust relationship based on public keys. This can be done using the public key infrastructure (PKI) through a third party certificate authority (CA), or by exchanging public keys through a secure channel. The following service is deployed with a signature verification function: https://a_company.com/partorder.
Configure signature verification with this information:
If the signature is missing or if signature verification fails, the signature verification function can be configured so that the servlet returns a SOAP fault.
To send part orders to the https://a_company.com/partorder service, the service requester should sign her or his SOAP messages with a signature component. The signature component is initialized using two templates:
The <ds:SignedInfo> template controls:
The <ds:KeyInfo> template controls:
You can combine the service request with HTTP basic authentication, if necessary.