Sun Java System Access Manager Policy Agent 2.2 Guide for Apache Tomcat 6.0

Chapter 3 Installing Policy Agent 2.2 for Apache Tomcat 6.0

Sun JavaTM System Access Manager Policy Agent 2.2 for Apache Tomcat 6.0, as with all J2EE agents in the 2.2 release of Policy Agent, is installed from the command line using the agentadmin program. For more information about the tasks you can perform with the agentadmin program, see Role of the agentadmin Program in a J2EE Agent for Policy Agent 2.2.

Before reading this chapter or performing any of the tasks described within, thoroughly review Chapter 2, Vital Installation Information for a J2EE Agent in Policy Agent 2.2 since various key concepts are introduced in that chapter.

This chapter is organized into the following sections:

Before describing any task, this chapter provides you with installation-related information specific to Apache Tomcat 6.0. The subsequent sections lead you through the pre—installation and installation steps and describe how to view the installation log files. First, perform the pre-installation (preparation) steps. Then, perform the installation, itself. The installation process has two phases. The first phase of the installation includes launching the installation program, which requires a directory to already have been selected for the agent files. The second phase of the installation involves interacting with the installation program. During this phase, the program prompts you step by step to enter information. Accompanying the prompts, are explanations of the type of information you need to enter. After you complete the installation, you can look at the installation log files.

Once you have completed the steps described in this chapter, complete the applicable post-installation tasks described in Chapter 4, Post-Installation Tasks of Policy Agent 2.2 for Apache Tomcat 6.0.

Installation Related Information About Agent for Apache Tomcat 6.0

The following sections provide important information about Policy Agent 2.2 for Apache Tomcat 6.0 needed before you install the agent.

Supported Platforms and Compatibility of Agent for Apache Tomcat 6.0

The following sections provide information about the supported platforms of Policy Agent 2.2 for Apache Tomcat 6.0 as well as the compatibility of this agent with Access Manager.

Platform and Version Support of Agent for Apache Tomcat 6.0

The following table presents the platforms supported by Policy Agent 2.2 for Apache Tomcat 6.0.

Table 3–1 Platform and Version Support of Agent for Apache Tomcat 6.0

Agent for 

Supported Policy Agent Version 

Supported Access Manager Versions 

Supported Platforms 

Apache Tomcat 6.0 

Version 2.2 

Version 6.3 Patch 1 or greater 

Version 7 

Version 7.1 

SolarisTM Operating System (OS) for the SPARC® platform, versions 9 and 10

Solaris (OS) for x86 platforms, versions 9, and 10 

Red Hat Enterprise Linux Advanced Server 4.0 and 5.0 

Windows 2003, Enterprise Edition 

Windows 2003, Standard Edition 

Compatibility of Agent for Apache Tomcat 6.0 With Access Manager

Compatibility of Policy Agent 2.2 With Access Manager 7 and Access Manager 7.1.

All agents in the Policy Agent 2.2 release are compatible with Access Manager 7 and Access Manager 7.1. Compatibility applies to both of the available modes of Access Manager: Realm Mode and Legacy Mode.

Install the latest Access Manager patches to ensure that all enhancements and fixes are applied. For an example of Access Manager patches that can be installed, see the compatibility information discussed in Sun Java System Access Manager Policy Agent 2.2 Release Notes.

Compatibility of Policy Agent 2.2 With Access Manager 6.3

Most agents in Policy Agent 2.2 are also compatible with Access Manager 6.3 Patch 1 or greater. However, certain limitations apply. For more information, see J2EE Agent Backward Compatibility With Access Manager 6.3.

Preparing to Install Agent for Apache Tomcat 6.0

Follow the specific steps outlined in the following section before you install the agent to reduce the chance of complications occurring during and after the installation.

ProcedureTo Prepare to Install Agent for Apache Tomcat 6.0

Perform the following pre-installation steps:

  1. Ensure that the agent distribution files are properly unzipped on the Apache Tomcat 6.0 instance as described in the substeps that follow:

    1. Create a directory in which to download the tomcat_v6_agent.zip file.

      For example:

      Agent_Home
      
    2. Download the tomcat_v6_agent.zip file to the newly created directory.

    3. From the newly created directory, unzip the tomcat_v6_agent.zip file using the appropriate utility or command for your platform.

      For example, on Solaris systems, issue the following:

      unzip tomcat_v6_agent.zip

  2. Ensure that Policy Agent 2.2 for Apache Tomcat 6.0 is supported on the desired platform as listed in Supported Platforms and Compatibility of Agent for Apache Tomcat 6.0.

  3. Install Apache Tomcat 6.0 if not already installed.


    Caution – Caution –

    While the present release of Agent for Apache Tomcat 6.0 supports the .exe extension of the Apache Tomcat 6.0 bits, an extra task is required to make the installation work. For those instructions, see (Conditional) To Use the .exe Version of Apache Tomcat 6.0 Server.

    The extra task is unnecessary if you use the .zip files or .gz files. For example, for version 6.0.14, you could download either of the following compressed files and perform the installation without having to implement the extra task:

    apache-tomcat-6.0.14.zip
    apache-tomcat-6.0.14.tar.gz

    Compressed files for Apache Tomcat 6.0 as well as installation-related documentation are available at the Apache web site at http://apache.org/


  4. (Conditional) If the Apache Tomcat 6.0 instance on which you are about to install the agent is running, shut it down.

  5. Create a valid agent profile in Access Manager Console if one has not already been created.

    For information on how to create an agent profile, see Creating a J2EE Agent Profile.

    To avoid a misconfiguration of the agent, ensure that you know the exact ID and password used to create the agent profile. You must enter the agent profile password correctly in the next step and you must enter the agent profile ID correctly when installing the agent.

  6. Create a text file and add the agent profile password to that file.

    Ensure that this file is located in a secure directory of your choice. You will refer to this file during the agent installation process.

    With the agent profile password in this file, stored in a secure location, you do not need to enter sensitive information in the console. A valid password file can have only one line that contains the agent profile password.

  7. (On Red Hat Enterprise Linux Advanced Server only) Ensure that the Sun Microsystems java file is configured to be retrieved instead of the Red Hat java file.

    You can achieve this using various methods. Pick the method of choice. The following is an example of how you can accomplish this:

    Set the JAVA_HOME environment variable to point to the Sun Microsystems java file. The location varies, but the following example illustrates a feasible location for this file:

    /share/builds/components/jdk/1.5.0_06/Linux

Procedure(Conditional) To Use the .exe Version of Apache Tomcat 6.0 Server

As described in To Prepare to Install Agent for Apache Tomcat 6.0, you can install Agent for Apache Tomcat 6.0 on a .exe version of Apache Tomcat 6.0. However, you must implement the steps in this task prior to installing the agent for the deployment to work.

The Apache Tomcat 6.0 bits with the .exe extension do not contain certain files (scripts, JAR files, etc.) required by the agent. Therefore, you must copy the required files from the .zip bundle to the Apache Tomcat 6.0 installation base.

  1. Download the .exe and the .zip versions of Apache Tomcat 6.0.

    For example, you could download the two following Apache Tomcat 6.0 versions:

    • apache-tomcat-6.0.14.exe

    • apache-tomcat-6.0.14.zip

  2. Install Apache Tomcat 6.0 using the .exe version.

    If the version of Apache Tomcat 6.0 is indeed 6.0.14, the following would be a feasible location for CATALINA_HOME:

    /opt/apache-tomcat-6.0.14
    
  3. In a directory separate from the .exe distribution, unzip the apache-tomcat-6.0.14.zip file.

  4. Copy the following scripts from the unzipped bundle to the bin directory of the installation (${CATALINA_HOME}/bin):

    catalina-tasks.xml
    catalina.bat
    catalina.sh
    commons-daemon.jar
    cpappend.bat
    digest.bat
    digest.sh
    jsvc.tar.gz
    service.bat
    setclasspath.bat
    setclasspath.sh
    shutdown.bat
    shutdown.sh
    startup.bat
    startup.sh
    tomcat-native.tar.gz
    tool-wrapper.bat
    tool-wrapper.sh
    version.bat
    version.sh 
Next Steps

Note –

After you have implemented this task, the best practice is to start and stop the Apache Tomcat 6.0 instance using the command line since problems have occurred in this scenario when attempting to stop and start the server via services.


At this point, you can install Agent for Apache Tomcat 6.0.

Launching the Installation Program of Agent for Apache Tomcat 6.0

Once you have performed all the pre-installation steps, you can launch the installation program as described in the following subsection.

ProcedureTo Launch the Installation Program of Agent for Apache Tomcat 6.0

To launch the installation program, perform the following steps:

  1. Change to the following directory:


    PolicyAgent-base/bin

    This directory contains the agentadmin program, which is used for installing a J2EE agent and for performing other tasks. For more information on the agentadmin program, see Role of the agentadmin Program in a J2EE Agent for Policy Agent 2.2.

  2. Issue the following command:


    ./agentadmin --install
  3. (Conditional) If you receive license agreement information, accept or reject the agreement prompts. If you reject any portion of the agreement, the program will end.

    The license agreement is displayed only during the first run of the agentadmin program.

Using the Installation Program of Agent for Apache Tomcat 6.0

After you issue the agentadmin command and accept the license agreement (if necessary) the installation program appears, prompting you for information.

The steps in the installation program are displayed in this section in an example interaction. Your answers to prompts can differ slightly or greatly from this example depending upon your specific deployment. In the example, most of the defaults have been accepted. This example is provided for your reference and does not necessarily indicate the precise information you should enter.

The following bulleted list provides key points about the installation program.

About Installation Prompts in Agent for Apache Tomcat 6.0

The following list provides information about specific prompts in the installation. Often the prompt is self explanatory. However, at other times you might find the extra information presented here to be very helpful. This extra information is often not obvious. Study this section carefully before issuing the agentadmin --install command.

The Deployment URI for the Agent Application

The deployment URI for the agent application is required for the agent to perform necessary housekeeping tasks such as registering policy and session notifications, legacy browser support, and CDSSO support. Accept /agentapp as the default value for this interaction. Once the installation is completed, browse the directory PolicyAgent-base/etc. Use the agentapp.war file to deploy the agent application in the application container. Please note that the deployment URI for agent application during install time should match the deployment URI for the same application when deployed in the J2EE container.

The Encryption Key

This key is used to encrypt sensitive information such the passwords. The key should be at least 12 characters long. A key is generated randomly and provided as the default. You can accept the random key generated by the installer or create your own using the .agentadmin --getEncryptKey command.

For information about creating a new encryption key, see agentadmin --getEncryptKey.

The Agent Profile Name

An agent profile should have been created as a pre-installation step. The creation of the agent profile is mentioned in that section. For the pre-installation steps, see Preparing to Install Agent for Apache Tomcat 6.0. For the actual information on creating an agent profile, see Creating a J2EE Agent Profile.

In summary, the J2EE agent communicates with Access Manager with a specific ID and password created through an agent profile using Access Manager Console. For J2EE agents, the creation of an agent profile is mandatory. Access Manager uses the agent profile to authenticate an agent. This is part of the security infrastructure.

The J2EE Password File

The J2EE password file should have been created as a pre-installation step. For the pre-installation steps, see Preparing to Install Agent for Apache Tomcat 6.0.

When the installation program prompts you for the password for the agent, enter the fully qualified path to this password file.

After you have completed all the steps, a summary of your responses appears followed by options that allow you to navigate through those responses to accept or reject them.

When the summary appears, note the agent instance name, such as agent-001. You might be prompted for this name during the configuration process.

About the options, the default option is 1, Continue with Installation.

You can edit your responses as necessary, return to the options list, and choose option 1 to finally process your responses.

Example of Installation Program Interaction in Agent for Apache Tomcat 6.0

The following example is a sample installation snapshot of Policy Agent 2.2 for Apache Tomcat 6.0. By no means does this sample represent a real deployment scenario.

The section following this example, Implications of Specific Deployment Scenarios in Agent for Apache Tomcat 6.0, provides a short explanation about installing a J2EE agent on multiple Apache Tomcat 6.0 instances. If your deployment includes multiple instances of the deployment container, you might want to review that section before proceeding with the agent installation. See Installing a J2EE Agent on Multiple Apache Tomcat 6.0 Instances.


************************************************************************
Welcome to the Access Manager Policy Agent for Apache Tomcat 6.0 Servlet/JSP
Container

************************************************************************


Enter the complete path to the directory which is used by Tomcat Server to
store its configuration Files. This directory uniquely identifies the
Tomcat Server instance that is secured by this Agent.
[ ? : Help, ! : Exit ]
Enter the Tomcat Server Config Directory Path
[/opt/apache-tomcat-6.0.14/conf]:


Enter the fully qualified host name of the server where Access Manager
Services are installed.
[ ? : Help, < : Back, ! : Exit ]
Access Manager Services Host: amHost.example.com


Enter the port number of the Server that runs Access Manager Services.
[ ? : Help, < : Back, ! : Exit ]
Access Manager Services port [80]: 


Enter http/https to specify the protocol used by the Server that runs Access
Manager services.
[ ? : Help, < : Back, ! : Exit ]
Access Manager Services Protocol [http]: 


Enter the Deployment URI for Access Manager Services.
[ ? : Help, < : Back, ! : Exit ]
Access Manager Services Deployment URI [/amserver]: 


Enter the fully qualified host name on which the Application Server
protected by the agent is installed. 
[ ? : Help, < : Back, ! : Exit ]
Enter the Agent Host name: agentHost.example.com


$CATALINA_HOME environment variable is the root of the tomcat
installation.
[ ? : Help, < : Back, ! : Exit ]
Enter the $CATALINA_HOME environment variable: /opt/apache-tomcat-6.0.14/ 


Choose yes to deploy the policy agent in the global web.xml file.
[ ? : Help, < : Back, ! : Exit ]
Install agent filter in global web.xml ? [true]: 


Enter the preferred port number on which the application server provides its
services.                                       
[ ? : Help, < : Back, ! : Exit ]
Enter the port number for Application Server instance [80]: 


Select http or https to specify the protocol used by the Application server
instance that will be protected by Access Manager Policy Agent.
[ ? : Help, < : Back, ! : Exit ]
Enter the Preferred Protocol for Application Server instance [http]: 


Enter the deployment URI for the Agent Application. This Application is used
by the agent for internal housekeeping.
[ ? : Help, < : Back, ! : Exit ]
Enter the Deployment URI for the Agent Application [/agentapp]: 


Enter a valid Encryption Key.
[ ? : Help, < : Back, ! : Exit ]
Enter the Encryption Key [kPd9i5QsulOzHqOT9q1vvzuHC2RNo9Sx]: 


Enter a valid Agent profile name. Before proceeding with the agent
installation, please ensure that a valid Agent profile exists in Access
Manager.
[ ? : Help, < : Back, ! : Exit ]
Enter the Agent Profile name: MyAgent


Enter the path to a file that contains the password to be used for identifying
the Agent.
[ ? : Help, < : Back, ! : Exit ]
Enter the path to the password file: /tmp/agentpass.txt


-----------------------------------------------
SUMMARY OF YOUR RESPONSES
-----------------------------------------------
Tomcat Server Config Directory : /opt/apache-tomcat-6.0.14/conf
Access Manager Services Host : amHost.example.com 
Access Manager Services Port : 80 
Access Manager Services Protocol : http 
Access Manager Services Deployment URI : /amserver 
Agent Host name : nicp226.india.sun.com 
$CATALINA_HOME environment variable : /opt/apache-tomcat-6.0.14/ 
Tomcat global web.xml filter install : true 
Application Server Instance Port number : 80 
Protocol for Application Server instance : http 
Deployment URI for the Agent Application : /agentapp 
Encryption Key : kPd9i5QsulOzHqOT9q1vvzuHC2RNo9Sx 
Agent Profile name : MyAgent 
Agent Profile Password file name : /tmp/agentpass.txt 

Verify your settings above and decide from the choices below.
1. Continue with Installation
2. Back to the last interaction
3. Start Over
4. Exit
Please make your selection [1]: 1

Updating the /opt/apache-tomcat-6.0.14/bin/setclasspath.sh script with
the Agent classpath ...DONE.

Creating directory layout and configuring Agent file for Agent_001
instance ...DONE.

Reading data from file /tmp/agentpass.txt and encrypting it ...DONE.

Generating audit log file name ...DONE.

Creating tag swapped AMAgent.properties file for instance Agent_001 ...DONE.

Creating a backup for file /opt/apache-tomcat-6.0.14/conf/server.xml ...DONE.

Creating a backup for file /opt/apache-tomcat-6.0.14/conf/web.xml ...DONE.

Adding SJS Tomcat Agent Realm to Server XML file :
/opt/apache-tomcat-6.0.14/conf/server.xml ...DONE.

Adding filter to Global deployment descriptor file :
/opt/apache-tomcat-6.0.14/conf/web.xml ...DONE.

Adding SJS Tomcat Agent Filter and Form login authentication to selected Web
applications ...DONE

Implications of Specific Deployment Scenarios in Agent for Apache Tomcat 6.0

The following section refers to a specific deployment scenario involving Policy Agent 2.2 for Apache Tomcat 6.0.

Installing a J2EE Agent on Multiple Apache Tomcat 6.0 Instances

Once a J2EE agent is installed for a particular Apache Tomcat 6.0 instance, you can install the agent on another instance on the same machine by running the agentadmin --install command. Once prompted to enter the appropriate server instance name, enter the server configuration directory and unique instance name that will enable the agent to distinguish the first instance from consecutive instances.

Summary of a J2EE Agent Installation in Policy Agent 2.2

At the end of the installation process, the installation program prints the status of the installation along with the installed J2EE agent information. The information that the program displays can be very useful. For example, the program displays the agent instance name, which is needed when configuring a remote instance. The program also displays the location of specific files, which can be of great importance. In fact, you might want to view the installation log file once the installation is complete, before performing the post-installation steps as described in Chapter 4, Post-Installation Tasks of Policy Agent 2.2 for Apache Tomcat 6.0.

The location of directories displayed by the installer are specific. However, throughout this guide and specifically in Summary of Agent Installation shown in this section, PolicyAgent-base is used to describe the directory where the distribution files are stored for a specific J2EE agent.

The following example serves as a quick description of the location of the J2EE agent base directory (PolicyAgent-base) of Policy Agent 2.2 for Apache Tomcat 6.0.


Example 3–1 Policy Agent Base Directory of Agent for Apache Tomcat 6.0

The following directory represents PolicyAgent-base of Agent for Apache Tomcat 6.0:


Agent-HomeDirectory/j2ee_agents/am_tomcat_agent

where Agent-HomeDirectory is the directory you choose in which to unpack the J2EE agent binaries.

Information regarding the location of the J2EE agent base directory is explained in detail in Location of the J2EE Agent Base Directory in Policy Agent 2.2.


The following type of information is printed by the installer:


SUMMARY OF AGENT INSTALLATION
-----------------------------
Agent instance name: Agent_001
Agent Configuration file location:
PolicyAgent-base/Agent_001/config/AMAgent.properties
Agent Audit directory location:
PolicyAgent-base/Agent_001/logs/audit
Agent Debug directory location:
PolicyAgent-base/Agent_001/logs/debug

Install log file location:
PolicyAgent-base/logs/audit/install.log

Thank you for using Access Manager Policy Agent

Once the agent is installed, the directories shown in the preceding example are created in the agent_00x directory, which for this example is specifically Agent_001. Those directories and files are briefly described in the following paragraphs.

PolicyAgent-base/Agent_001/config/AMAgent.properties

Location of the J2EE agent AMAgent.properties configuration file for the agent instance. Every instance of a J2EE agent has a unique copy of this file. You can configure this file to meet your site's requirements. For more information, see the following sections:

PolicyAgent-base/Agent_001/logs/audit

Location of the J2EE agent local audit trail.

PolicyAgent-base/Agent_001/logs/debug

Location of all debug files required to debug an agent installation or configuration issue.

PolicyAgent-base/logs/audit/install.log

Location of the file that has the agent install file location. If the installation failed for any reason, you can look at this file to diagnose the issue.