Authenticating web services clients using HTTP basic authentication

A simple way to provide authentication data for the service client is to authenticate to the protected service endpoint by using HTTP basic authentication. HTTP basic authentication uses a user name and password to authenticate a service client to a secure endpoint.

Before you begin

You can use either message-level security (WS-Security) or transport-level security:
  • Use message-level security when security is essential to the web service application. HTTP basic authentication uses a user name and password to authenticate a service client to a secure endpoint. The basic authentication is encoded in the HTTP request that carries the SOAP message. When the application server receives the HTTP request, the user name and password are retrieved and verified using the authentication mechanism specific to the server.
  • Use transport-level security to enable basic authentication. Transport-level security can be enabled or disabled independently from message-level security. Transport-level security provides minimal security. You can use this configuration when a web service is a client to another web service.

About this task

WebSphere® Application Server can have several resources, including web services, protected by a Java™ Platform, Enterprise Edition (Java EE) security model.

HTTP basic authentication is orthogonal to the security support provided by WS-Security or HTTP Secure Sockets Layer (SSL) configuration.

A simple way to provide authentication data for the service client is to authenticate to the protected service endpoint using HTTP basic authentication. The basic authentication is encoded in the HTTP request that carries the SOAP message. When the application server receives the HTTP request, the user name and password are retrieved and verified using the authentication mechanism specific to the server.

Although the basic authentication data is base64-encoded, sending data over HTTPS is recommended. The integrity and confidentiality of the data can be protected by the SSL protocol.

In some cases, a firewall is present using a pass-through HTTP proxy server. The HTTP proxy server forwards the basic authentication data into the Java EE application server. The proxy server can also be protected. Applications can specify the proxy data by setting properties in a stub object.

Procedure

  1. Develop and assemble a web services application.
    1. You can configure and assemble HTTP authentication for the application using an assembly tool, or programmatically. Modify the HTTP properties programmatically if you want the values that are set programmatically to take precedence over the values that are defined in the binding. If you configure HTTP basic authentication programmatically, the properties are configured in the Stub or Call instance. However, you only can programmatically configure HTTP proxy authentication.
  2. Deploy the application.
    1. For more information about deploying web services applications, read about deploying web services.
  3. Configure HTTP authentication for the application.
    1. If you choose to configure HTTP basic authentication with the administrative console, the Web Services Security binding information is modified.