Integrating IBM WAS security with existing security systems
WAS plays an integral part of the multiple-tier enterprise computing framework. WAS adopts the open architecture paradigm and provides many plug-in points to integrate with enterprise software components to provide end-to-end security. WebSphere Application Server plug-in points are based on standard J2EE specifications wherever applicable. WAS is actively involved in various standard bodies to externalize and to standardize plug-in interfaces.
In the following example, several typical multiple-tier enterprise network configurations are discussed. In each case, various WAS plug-in points are used to integrate with other business components. The discussion starts with a basic multiple-tier enterprise network configuration:
A list of terms used in this discussion follows...
Protocol firewall Prevents unauthorized access from the Internet to the demilitarized zone. The role of this node is to provide the Internet traffic access only on certain ports and to block other IP ports.
WAS plug-in Redirects all the requests for servlets and JSP pages. Also referred to in WAS literature as Web server redirector was introduced to separate Web server from appserver. The advantage of using Web server redirector is that you can move an appserver and all the application business logic behind the domain firewall.
Domain firewall Prevents unauthorized access from the demilitarized zone to an internal network. The role of this firewall is to allow the network traffic originating from the demilitarized zone and note from the Internet.
Directory Provides information about the users and their rights in the web application (.war). The information can contain user IDs, passwords, certificates, access groups, and so forth. This node supplies the information to the security services like authentication and authorization service.
Enterprise Information System Represents existing enterprise applications and business data in back-end databases. WAS provides the infrastructure to run application business logic and communicate with internal back-end systems and databases web application (.war)s and enterprise beans can access. WebSphere Application Server has a built in HTTPS server that can accept client requests. A typical configuration, however, places WAS behind the domain firewall for better protection. A WAS plug-in to Web server configuration can redirect Web requests to WebSphere Application Server. WAS provides plug-ins for many popular Web servers.
You can configure WAS and the Web server plug-in to communicate through secure SSL channels. You can configure a WAS HTTP server to open communication channels only with a restricted set of Web server plug-ins. You can configure the HTTP server to require client certificate authentication with self-signed certificates and to trust only the signer certificate. For instructions on how to generate self-signed certificates and how to set up secure communications channels between an HTTP server and the WAS plug-in, refer to Configuring IHS plug-in and the Internal Web Server for SSL and Configuring IHS for SSL Mutual Authentication.
The WAS plug-in routes HTTP requests according to the virtual host and port configuration and the URL pattern matching. Client authentication and finer grained access control are handled by WebSphere Application Server behind the firewall.
In cases where the Web server can contain sensitive data and direct access is not desirable, the following configuration uses Tivoli WebSEAL to shield a Web server from unauthorized requests. WebSEAL is a Reverse Proxy Security Server (RPSS) that uses Tivoli Access Manager to perform coarse-grained access control to filter out unauthorized requests before they reach the domain firewall. WebSeal uses Tivoli Access Manager to perform access control as illustrated in the picture. WebSphere Application Server supports various user registry implementations through the pluggable user registry interface. WAS ships Local OS user registry implementation for Windows NT, AIX, AS400, and Lightweight Directory Access Protocol (LDAP).
WAS also supports users in developing their own custom registry and plug-in through the pluggable user registry interface. When integrated with a third party security provider, WAS can share the user registry with the third-party security provider. In the particular example of integrating with WebSEAL, you can configure WAS to use the LDAP user registry, which can be shared with WebSEAL and Tivoli Access Manager. Moreover, you can configure WAS to use the Light Weight Third Party (LTPA) authentication mechanism, which supports the Trust Association Interceptor plug-in point.
Basically, the RPSS performs authentication and adds proper authentication data into the request header and then redirects the request to Web server. A trust relationship is formed between an RPSS and WAS, and the RPSS can assert client identity to WAS to achieve single signon between RPSS and WAS. When the request is forward to WebSphere Application Server, WAS uses the TAI plug-in for the particular RPSS server to evaluate the trust relationship and to extract the authenticated client identity. WAS then maps the client identity to a WAS security credential. For instructions on setting up a trust association interceptor, refer to Trust associations, Configuring trust association interceptors.
When configured to use the LDAP user registry, WAS uses LDAP to perform authentication. The client ID and password are passed from WAS to the LDAP server. You can configure WAS to set up an SSL connection to LDAP so that passwords are not passed in plain text. To set up an SSL connection from WAS to the LDAP server, refer to Configuring SSL for the LDAP client. WAS v5 supports the JCA. The connector architecture defines a standard interface for WAS to connect to heterogeneous Enterprise Information Systems (EIS). Examples of EIS includes database systems, transaction processing such as CICS, and messaging such as Message Queue (MQ). The EIS implementation can perform authentication and access control to protect business data and resources. Resource Adapters authenticate EIS. The authentication data can be provided either by application code or by WebSphere Application Server. WAS provides a principal mapping plug-in point. A principal mapping module plug-in maps the authenticated client principal to a password credential, (that is, user ID and password, for the EIS security domain). WAS ships a default principal mapping module, which maps any authenticated client principal to a configured pair of user IDs and passwords.
Each connector can be configured to use a different set of IDs and passwords. For a description on how to configure JCA principal mapping user IDs and passwords, refer to Managing J2C Authentication Data Entries. A principal mapping module is a special purpose Java Authentication and Authorization Service (JAAS) login module. You can develop your own principal mapping module to fit your particular business application environment. For detailed steps on developing and configuring a custom principal mapping module, refer to the articles, Developing your own Java 2 security mapping module underneath JAAS Programmatic Login and Managing Java Authentication and Authorization Service (JAAS) Login Configuration.
Security and WebSphere MQseries
It is important to note that security logging information on UNIX systems is not protected because of the world-writeable files in the /var file system of MQseries. MQseries ships the following files with its product...
- -rw-rw-rw- /var/mqm/errors/AMQERR01.LOG
- -rw-rw-rw- /var/mqm/errors/AMQERR02.LOG
- -rw-rw-rw- /var/mqm/errors/AMQERR03.LOG
The previously mentioned files are world-writeable and enable any users on the system to fill up the /var file system where all the security logging information is stored. This leaves the security information unprotected because anyone can access the logging information without being tracked.
To work around this problem, create a file system for the embedded messaging component working data on UNIX. Before you install the embedded messaging component of WAS on UNIX platforms, consider creating and mounting a journalized file system called /var/mqm. Use a partition strategy with a separate volume for the WebSphere MQ data. This means that other system activity is not affected if a large amount of WebSphere MQ work builds up.
To determine the size of the /var/mqm file system for a server installation, consider the following...
- Maximum number of messages in the system at one time
- Contingency for message buildups, if there is a system problem
- Average size of the message data, plus 500 bytes for the message header
- Number of queues
- Size of log files and error messages
Allow 50MB as a minimum for a WebSphere MQ server. You need less space in the /var/mqm file system for a WebSphere MQ client (typically 15MB).
See Also
Trust Associations
Configuring IBM HTTP Server for secure sockets layer mutual authentication
Configuring the IBM HTTP Server for distributed platforms and the Web server plug-in for SSL
Configuring SSL
Configuring trust association interceptors
Configuring Lightweight Third Party Authentication
Configuring single signon
Configuring user registries
Configuring LDAP user registries
Configuring LDAP search filters
Developing custom user registries
Configuring custom user registries
Developing your own J2C principal mapping module
Configuring Java Authentication and Authorization Service login
Interoperability issues for security
Security: Resources for learning
Supported directory services
Custom user registries