This article covers the following topics:
Configuring WebSphere Application Server to run in trust association is a two-step process:
To enable trust association in the Security Center console, do the following:
Create a file named trustedservers.properties, and place the file in the product_installation_root/properties directory.
The trustedservers.properties file for WebSeal must include the following four lines:
com.ibm.websphere.security.trustassociation.enabled=true com.ibm.websphere.security.trustassociation.types=webseal com.ibm.websphere.security.trustassociation.webseal.interceptor= com.ibm.ejs.security.web.WebSealTrustAssociationInterceptor com.ibm.websphere.security.trustassociation.webseal.config=webseal
The following describes each of the property-value pairs:
com.ibm.websphere.security.trustassociation.enabled=true
com.ibm.websphere.security.trustassociation.types=webseal
com.ibm.websphere.security.trustassociation.webseal.interceptor=
com.ibm.ejs.security.web.WebSealTrustAssociationInterceptor
com.ibm.websphere.security.trustassociation.webseal.config=webseal
Each property-value pair must appear on a single line in the file. Pairs appearing on more than one line in this example have been broken for readability.
WebSphere Application Server provides a Java class,
com.ibm.ejs.security.web.WebSealTrustAssociationInterceptor
,
that implements the essential interceptor for enabling trust association
among WebSeal 3.6, 3.7, 3.8 and WebSphere Application Server.
By default, the interceptor processes all HTTP requests it receives. You can configure the interceptor to restrict the requests that it processes locally. The restrictions can be specified by identifier, originating host, and originating port, and by combinations. Configuring the WebSeal interceptor is a required step.
To configure the interceptor, create a property file for the
configuration-file property, and place the file in the
product_installation_root/properties
directory. For example, create a file called
webseal.properties to correspond to the property-value pair
com.ibm.websphere.security.trustassociation.webseal.config=webseal
specified in the trustedservers.properties file.
Use this file to set properties restricting the requests that interceptor will process. The properties act as requirements on requests, and each request must meet all of the requirements. Requests not meeting all of the requirements are not processed by the interceptor; they are passed on to WebSphere Application Server for processing.
The file can set values for any of the following WebSeal properties. For example:
The WebSeal interceptor should process HTTP requests only from WebSeal. All other requests should go directly to WebSphere Application Server. If this property is not set to iv-user or iv-creds, then direct requests to WebSphere fail because every request is checked by the WebSeal interceptor and those going directly to WebSphere are rejected by the interceptor. Therefore, the property com.ibm.websphere.security.webseal.id must be set to one or both of these values:
The example property-value pair uses both.
com.ibm.websphere.security.webseal.ports=444
The last step is to configure Tivoli's WebSeal product. This product is not part of WebSphere Application Server, so you should consult the WebSeal documentation for details and in case of problems.
To enable communication between WebSeal and WebSphere Application Server, the Web server being used by WebSphere Application Server must become an SSL junction in the schema of the Tivoli Policy Director. If the Web server is using the default SSL port, port 443, create an SSL junction with the following junctioncp command:
create -c -t ssl -h host_name junction_name
where
-c
flag directs WebSeal to pass its authentication
information in the basic authentication header of every request
that it sends to WebSphere Application Server. The authentication
information is the user ID and password of the WebSeal server. This
allows WebSphere Application Server to authenticate every request
that it receives from the WebSeal server.-t ssl
option requests the creation of junction of the
type SSL.-h host_name
option specifies
the host machine of the Web server used by WebSphere Application Server.
For example, the command below creates an SSL junction called myjunction for the machine was_host.raleigh.ibm.com:
create -c -t ssl -h was_host.raleigh.ibm.com /myjunction
If the Web server is not listening to the default SSL port, port 443, use the port option to the junctioncp command to indicate the port being used:
-p port_number
The WebSeal server must have a user ID and password it can use when it authenticates to WebSphere Application Server. To set up this authentication information, you must do the following:
basic_auth_username=user_ID basic_auth_passwd=password
where user_ID and password are valid account information from the WebSphere Application Server registry.
Because SSL is involved in the junction, you must ensure that the Web server being used by WebSphere Application Server is configured with SSL using server authentication only. In this configuration, WebSeal plays a client role. Therefore, you must copy the certificate of the issuing CA of the Web server into the WebSeal certificate directory.
Refer to the WebSeal Policy Director manual for detailed information on setting up SSL connections between WebSeal and a junction server. During the procedure, update the configuration file for the security manager, secmgrd.conf, to include the following line:
junction-ca-cert-file =ca-certfile
where ca-certfile is the absolute path of the file containing the CA certificates of the junction servers. For example:
/opt/intraverse/lib/certs/junctioncacert.pem
Without the line, basic authentication will not take place between WebSeal and WebSphere Application Server.
Finally, to access a resource through WebSeal, you need to use SSL. Therefore, you must ensure that WebSeal itself is configured for SSL.
This section describes a sample configuration.
junctioncp create -c -t ssl -h was_host.raleigh.ibm.com -p 4343 /myjunction
basic_auth_username=web_user basic_auth_passwd=testpassword
where the ID web_user with password testpassword is registered in the WebSphere Application Server registry.
junction-ca-cert-file=/opt/intraverse/lib/certs/junctioncacert.pem
A user tests the system by logging in as testuser1 and attempting to access the WebSphere Application Server servlet /servlet/snoop:
https://was_host.raleigh.ibm.com/servlet/snoop
https://webseal_host.raleigh.ibm.com:444/aim/servlet/snoop
In both cases, a prompt is displayed in which the user enters the testuser1/sherlock combination and the snoop servlet is displayed on the Web browser.