Web services also suffers from the same problems as traditional enterprise web applications face. Authentication, Authorization, Confidentiality ,Integrity are few of the them.Assume there are different web services deployed on your local ESB which orchestrate between all the web services. Any body can connect to your ESB and use the web services. There's no restriction in the place.Following figure displays non secured web services.
To avoid the this situation you want that only specific clients can use your web services not every body. And also you want that all the communications between different web services must be encrypted with the keys of respective client,providing confidentiality and integrity.

Implementing Authentication, Authorization and Identity:
Every client request message header contains the following attributes:AuthType and AuthKey --which are not used in normal client request—are used here for creating authentication and authorization.
Every client request message header contains the following attributes:AuthType and AuthKey --which are not used in normal client request—are used here for creating authentication and authorization.
In the WSDL file there are two attributes:
When a client request doesn’t have X509 certificate, the “NoX509CertificateFault” is returned by the service.When a client request presents any X509 certificate, which doesn’t match one already issued, then “InvalidX509CertifiacteFault” is returned by the service.
Create a corresponding web service to the WSDL document.
Create a corresponding web service to the WSDL document.
Implementing Confidentiality and Integrity:
Next step is to encrypt and sign the communication between different services inside the normal business process on ESB to meet Confidentiality and Integrity conditions.We need to endorse each and every web services which are participating in business flow to use the X509 certificate for encryption and signing.
A dialog box opens containing ‘Quality Of Service’ for the corresponding web service. Check ‘Secure Service’ check box. Select ‘Endorsing certificates’ from the list ‘Security Mechanism’. Check ‘Use Development Defaults’.In the ‘Input Message’, select ‘X509’ from the list of ‘Authentication Token’.Check the ‘Signed’ and ‘Endorsing’ options below.

In the same dialog box click on ‘Keystore’ button and provide path for the stored keys on the server to be used. Use the same process for ‘Truststore’ .

The above process just provides an outlook to how to secure web services. It involves more minor steps. That should also be followed.



