![]() |
![]() |
Install the WebSphere Application Client on the system where the command line applications will be developed and run. Make sure the versions of the WebSphere Application Client and the WebSphere Application Server where the ITIM Server is installed are at the same level.
The Application API document has the neccessary details for programming with the ITIM APIs. For quick reference, see the API Example at the end of the document.
To build and run the simple command line applications that use the ITIM APIs, follow the instructions given in the WebSphere Information Center for developing thin application client code on a client machine (WebSphere Application Server, Version 6.1 -> Developing and deploying applications -> Developing WebSphere applications -> Client applications -> Running Thin application client code -> Running Thin application client code on a client machine). The link to the WebSphere Information Center can be located from where the WebSphere Application Client has been installed.
The following ITIM related jar files are required on a client's classpath:
In addition, the ITIM login module has to be specified in the wsjaas_client.conf file:
ITIM {
com.ibm.ws.security.common.auth.module.proxy.WSLoginModuleProxy required
delegate=com.ibm.itim.apps.jaas.spi.PlatformLoginModule;
};
Note: The login module config file is specified as the -Djava.security.auth.login.config argument to the client JVM.
The two required JAR files listed above contain the following classes:
File | Location | Description |
api_ejb.jar | $ITIM_HOME/lib | Contains stubs and other deployment classes for the session bean interfaces (Home and Remote) used by the ITIM API. |
itim_api.jar | $ITIM_HOME/lib | Contains ITIM API classes (MO's and Managers). These are all the classes in apps.impl, apps.identity, apps.provisioning, apps.policy, apps.recon, apps.search, apps.workflow and apps.jaas. |
itim_common.jar | $ITIM_HOME/lib | Contains ITIM data and value object classes common to API and server. These classes are used by ITIM API to encapsulate the data in its communication with the server. They also include all descendants of DirectoryObject. |
itim_server_api.jar | $ITIM_HOME/lib | Contains class definitions for Home and Remote interface implementations for session beans used by the API as well as Exceptions thrown by same. |
For enabling ITIM Server side security, see the Optionally configuring security for Tivoli Identity Manager section of Chapter 4. (Installing and configuring WebSphere Application Server) of the ManagerServer Installation and Configuration Guide for WebSphere Environments
When the Global Security is enabled on WebSphere Application Server running
ITIM, make sure you set the EJB user and the EJB password when you create
the InitialPlatformContext on the ITIM Client.
env.put(PlatformContext.PLATFORM_PRINCIPAL, "ejbuser");
env.put(PlatformContext.PLATFORM_CREDENTIALS, "ejbpassword");
PlatformContext platform = new InitialPlatformContext(env);
Tivoli Identity Manager shields its core functionality with a layer of manager enterprise Java beans (EJBs). When a client communicates with the Tivoli Identity Manager Server, every manager EJB method takes a signed token from the caller to verify the caller’s identity, except when the method itself does the authentication. The caller obtains this signed token after authenticating with the Tivoli Identity Manager Server. For more details please refer to the Customization planning -> Ensuring secure communication with custom applications section of Chapter 3. (Planning your Tivoli Identity Manager installation) of the Planning for Deployment Guide document.
This section gives the details on how to create an EJB user and map it to the ITIM_CLIENT EJB role that is authorized to call only manager EJB methods in the unprivileged layer.
Make sure you have enabled WebSphere Application Server security and Java 2 security by following the steps in the Optionally configuring security for Tivoli Identity Manager section of Chapter 4. (Installing and configuring WebSphere Application Server) of the ManagerServer Installation and Configuration Guide for WebSphere Environments.
In addition to that, the following are required for a Common Criteria compliant environment:
It is recommended for security reasons that the custom applications using the ITIM APIs, running from a remote system, use the user(s) configured for the ITIM_CLIENT EJB role to authenticate against the ITIM platform. This user is called the unprivileged EJB user or itimnonadmin in the ITIM Server Side Configuration section above.
When you upgrade ITIM make sure that the jar files api_ejb.jar and itim_api.jar used by the client applications are replaced by the current versions of these files on the ITIM server ($ITIM_HOME/lib). The version information is contained in the Manifest.mf file packaged with these jar files. The contents of the Manifest.mf file will be similar to the sample shown below:
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.6.1
Created-By: 1.4.2_04-b05 (Sun Microsystems Inc.)
Name: IdentityManagerServiceability
Build-Jar: itim_api.jar
Build-Number: 5669
Build-Date: May 16 2005
Build-Time: 0042
Build-Timezone: US/Pacific
Build-User: build
Build-Server: buildsvr
Also make sure that the WebSphere Application Server/Client is upgraded to the same level as the WebSphere Application Server where ITIM is installed.
The list of supported client types are given in the table below:
Client Type | Description |
Stand-alone Java client | Deployed as a WebSphere Application Server thin client. |
Web application | Deployed as a separate WAR inside ITIM.ear. |
Enterprise Application, same JVM | Deployed in the same server instance (ITIM.ear) as the ITIM Server. |
Enterprise Application, separate JVM | Deployed on the same machine as the ITIM Server, but on a separate server instance. |
Servlets/JSPs | Servlets/JSPs not deployed in the context of a Web Application, on a separate machine running WebSphere Application Server. |
Note: This is not an exhaustive list of the client types supported by ITIM.
The following are references to the client examples which call the ITIM APIs.