Programming Security for Web Services

     Previous  Next    Open TOC in new window    View as PDF - New Window  Get Adobe Reader - New Window
Content starts here

Introduction to the Web Services Security Service Module

This section provides an introduction to Web Services SSM and describes interfaces clients use to interact with it.

This section covers the following topics:

 


Overview of Web Services

Web services are a special type of service that can be shared by and used as components of distributed Web-based applications. Web services interface with existing back-end applications, such as customer relationship management systems, order-processing systems, and so on.

Traditionally, software application architecture tended to fall into two categories: huge monolithic systems running on mainframes or client-server applications running on desktops. Although these architectures work well for the purpose the applications were built to address, they are closed and cannot be easily accessed by the diverse users of the Web. Thus the software industry has evolved toward loosely coupled service-oriented applications that interact dynamically over the Web. The applications break down the larger software system into smaller modular components, or shared services. These services can reside on different computers and can be implemented by vastly different technologies, but they are packaged and transported using standard Web protocols, such as Extensible Markup Language (XML) and Hyper Text Transfer Protocol (HTTP), thus making them easily accessible by any user on the Web.

This concept of services is not new. Remote Method Invocation (RMI), Component Object Model (COM), and Common Object Request Broker Architecture (CORBA) are all service-oriented technologies. However, applications based on these technologies must be written using that particular technology, often as implemented by a particular vendor. This requirement typically hinders widespread acceptance of such services on the Web. To solve this problem, web services are defined to share the following properties that make them easily accessible from heterogeneous environments:

 


Product Overview

OES provides three Web Server SSMs: the IIS Web Server SSM, the Apache Web Server SSM, and the Web Services SSM (see Figure 2-1). This document only describes the Web Services SSM and the security service application programming interfaces (APIs) that it supports.

Figure 2-1 Web Server and Web Services SSMs

Web Server and Web Services SSMs

The following topics provide more information on the these products:

Web Services Environment

Figure 2-2 shows the major components that make up the OES product environment.

Figure 2-2 OES Product Environment

OES Product Environment

Web Services SSM

The Web Services SSM provides five security service APIs: Authentication, Authorization, Auditing, Role Mapping, and Credential Mapping. These APIs can be used to developed web services clients to access the OES infrastructure and use it to make access control decisions for users attempting to access web server application resources. Once the web services client is implemented, it uses the Web Services SSM (which incorporates the Security Services APIs, the Security Framework, and the configured security providers) to make access control decisions for the web server to which it is connected. Then you can use the Administration Server to configured and deploy a security configuration to protect the web server application resources. Thus, the Web Services SSM enables security administrators and web developers to perform security tasks for applications running on a web server. Additionally, you can use the Web Services SSM to add information provided by the Security Framework (such as roles and response attributes) to the HTTP requests handled by the protected web server applications.

For a description of the Web Services Security Service APIs, see Web Services Interfaces

Client Trust Model

To protect messages in transit between the client and the Web Services SSM, a channel security protocol (SSL 3.0 or TLS 1.0) is used for all communication between the two. The Web Services SSM supports both one-way and two-way SSL (see Figure 2-4). To establish an SSL connection with one-way SSL, only the server is required to present a digital certificate. With two-way SSL authentication, both the client and server must present digital certificates before the SSL connection is enabled between the two. Thus, with two-way SSL, the Web Services SSM not only authenticates itself to the client to complete the SSL handshake (which is the minimum requirement for certificate authentication), but it also requires authentication from the requesting client. The client first authenticates the server's certificate, and then the server authenticates the client's certificate. The client certificate must be signed by a recognized certificate authority (CA).

As mentioned, Web services clients can communicate with the Web Services SSM over one-way or two-way SSL connections. However, when the client communicates over a one-way SSL, each client request be accompanied by a valid client name/password pair or an OES cookie. Figure 2-4 shows the Web Services SSM client trust model.

For more information on authentication, see Authentication Service Interface.

Figure 2-4 Client Trust Model

Client Trust Model

Deployment Model

Figure 2-5 shows how you typically deploy instances of Web Services SSMs to protect application resources. The web servers (the web services clients) are located in the web tier, which is in the Demilitarized Zone (DMZ), and are protected from unwanted traffic on the Internet by a firewall. The DMZ is created by using two firewalls. If the web servers and Web Services SSMs are running on different machines, the Web Services SSMs are located in the application tier behind the second firewall for added security. The Web Services SSM supports Secure Sockets Layer (SSL) communication so all traffic between the web servers and the SSM is encrypted.

Figure 2-5 Typical Web Services Deployment Model

Typical Web Services Deployment Model

Usage Model

Once the Web Services client has established an SSL connection with the Web Services SSM, it can issue requests on behalf of users for access to the web resources protected by the Web Services SSM (see Figure 2-6).

The interaction between the client and the Web Services SSM is as follows (see Figure 2-6):

  1. The client issues a user request that includes the following:
    • A user identity credential (a username/password pair, a signed SAML 1.1 assertion, or OES cookie)
    • The resource to which the user wants access and the action to be performed
    • The Authentication Service
  2. The client queries the local Registry Service to retrieve the fully qualified URL for the endpoint of the authentication service. If the authentication service exists on the local machine, the SSM returns the URL to the client. If it does not exist, the request fails. If the Authentication Service is omitted from the client request, the URL for the default authentication service on the local machine is returned.
  3. The web services client calls the Authentication Service, uses the user credentials to authenticate the user. If authentication succeeds, the service returns an identity assertion token that is an internal representation of the user’s identity. If the authentication fails, the service returns an AuthenticationFaliure SOAP Fault.
  4. The client queries the local Registry Service to retrieve the fully qualified URL for the endpoint of the Authorization Service.
  5. The Authorization Service and the associated Role Mapping Service determine whether the user has been granted the privileges required to access to the specified resource and perform the requested action. The service answers the question "Is this user allowed to perform the particular action on specified resource?" To make the access decision, the service compares the roles granted to the user to the policy written to protect the requested resource. If none of the user’s roles match the roles allowed to access the requested resource, or if the resource does not have any policy to protect it, access is denied.
  6. If access is allowed, the user is granted access to the resource and the request is serviced.

 


Product Features

The Web Services SSM has the following features:


  Back to Top       Previous  Next