Sun Java(TM) Systems Identity Manager 7.1 Installation Guide |
Appendix C
Configuring Data Sources for Identity ManagerThis appendix provides procedures for creating data sources for Identity Manager in the following sections:
Configuring a WebSphere Data Source for Identity ManagerUse the following information to configure a WebSphere Data Source for Identity Manager. this section includes:
Servlet 2.3 Data Sources
As of the Identity Manager 6.0 Release, the deployment descriptor in the WEB-INF/web.xml file refers to Servlet 2.3. Because of this, the Identity Manager web application can no longer be used with a WebSphere Application Server Version 4 Data Source.
Use the following steps to configure a WebSphere data source for Identity Manager:
These steps are discussed in detail below.
Configuring a JDBC Provider
Use WebSphere's administration console to configure a new JDBC Provider.
- Click the Resources tab in the left pane to display a list of resource types.
- Click JDBC Providers to display a table of configured JDBC providers.
- Click the New button above the table of configured JDBC providers.
- Select from the list of JDBC database types, jdbc type and implementation type. Click Next.
Oracle, Oracle JDBC Drive, and Connection pool Data Source will be used for this example.
- Continue configuring general properties.
/usr/WebSphere/AppServer/installedApps/idm/idm.ear/idm.war/WEB-INF/lib/oraclejdbc.jar
- Specify the fully qualified name of the JDBC Driver class in the Implementation ClassName field.
- You may also change the name or description of the provider to anything you choose.
When you are finished, click the OK button at the bottom of the table. The right pane should display the provider you added.
To configure a data source that uses this JDBC provider, see Point the Identity Manager Repository to the Data Source.
Configuring a WebSphere JDBC Data Source
- Use WebSphere's Administrative Console to define a data source with an existing JDBC Provider. If you need to define a new JDBC Provider for use with Identity Manager, see Configuring a JDBC Provider.
Before you can finish configuring the data source, you must configure authentication data. These aliases contain credentials that are used to connect to the DBMS.
Configure the 5.1 Authentication Data
- Click on the Security tab in the left pane to display a list of security configuration types.
- Click on the JAAS Configuration tab in the left pane to display a list of JAAS configuration types.
- Click on the J2C Authentication Data tab in the left pane. The right pane displays a table of authentication data entries.
- Click the New button above the table of authentication data entries. The right pane displays a table of general properties that can be configured.
- Configure the general properties for the new authentication data entry. Note the following:
Next, configure the data source.
Configure the 6.x Authentication Data
- Click Security > Global security.
- Under Authentication, click JAAS configuration > J2C authentication data. The J2C Authentication Data Entries panel is displayed.
- Click New.
- Enter a unique alias, a valid user ID, a valid password, and a short description (optional).
- Click OK or Apply. No validation for the user ID and password is required.
- Click Save.
Configure the Data Source
Note
If configuring a data source in a Websphere 5.x cluster, see Configure the DataSource in a Websphere Cluster for more information.
- Click the Resources tab in the left pane to display a list of resource types.
- Click JDBC Providers to display a table of configured JDBC providers.
- Click on the name of a JDBC provider in the table. The right pane displays a table of general properties configured for the selected JDBC provider.
- Scroll down to a table of additional properties. Click on Data Sources. The right pane displays a table of data sources configured for use with this JDBC provider.
- Click the New button above the table of data sources. The right pane displays a table of general properties to configure.
- Configure the general properties for the new data source. Note the following:
- The JNDI Name is the path to the DataSource object in the directory service.
You must specify this same value as the -f argument in
setRepo -tdbms -iinitCtxFac -ffilepath.- Container-managed persistence should be left unchecked. Identity Manager does not use Enterprise Java Beans (EJBs).
- Component-managed Authentication Alias points to the credentials that will be used to access the DBMS (to which this DataSource points).
- Select from the drop-down list the alias that contains the appropriate set of DBMS credentials. See Configure the 5.1 Authentication Data for more information.
- Container-managed Authentication Alias is not used. Set this value to (none). Identity Manager makes its own connection to the DBMS (to which this DataSource points).
- Click OK when you have configured this panel. The Data Sources page is displayed.
- Click the DataSource you created. Then scroll down to the table of Additional Properties near the bottom. Click the Custom Properties link.
The right pane displays a table of DBMS-specific properties.
- Configure the custom properties for this DataSource. Click on the link for each property to set its value. Note the following:
- URL is the only required property. This database URL identifies the database instance and contains driverType, serverName, portNumber and databaseName.You may also specify some of these as individual properties.
- driverType in this example is thin.
- serverName is a host name (or an IP address).
- databaseName is usually a short database name.
- portNumber is 1521 by default for Oracle.
- preTestSQLString may be worth configuring to a value such as SELECT 1 FROM USEROBJ. This SQL query confirms that the USERJOB table exists and is accessible.
- From the table of Additional Properties, you may also click the Connection Pool link if you wish to configure these properties for performance tuning.
Configure the DataSource in a Websphere Cluster
When configuring the DataSource in clustered WebSphere environments, configure it at the cell level. This allows the DataSource to be accessed from all nodes in the cell.
To configure this use the -D $propertiesFilePath option where $propertiesFilePath contains:
java.naming.provider.url=iiop://localhost:jndi_port/
or:
-u iiop://localhost:jndi_port/
To determine the JNDI port to specify, examine the WebSphere configuration.
- In the WebSphere administration console, navigate to Application Servers > test_server1 > End Points.
- Look at the BOOTSTRAP_ADDRESS property. Use the specified port in the java.naming.provider.url property.
Point the Identity Manager Repository to the Data Source
Use the following steps to point the repository to the newly created data source.
- Set the WSHOME environment variable to point to your Identity Manager installation; for example:
export WSHOME=$WAS_HOME/installedApps/idm.ear/idm.war
where $WAS_HOME is the WebSphere home directory, such as /usr/WebSphere/AppServer
- Make sure that the JAVA_HOME environment variable is set correctly; for example:
export JAVA_HOME=$WAS_HOME/java
- Make sure that the Java executable is in your path; for example:
export PATH=$JAVA_HOME/bin;$PATH
- Make sure the classpath is pointing to the WebSphere properties directory. For example
export CLASSPATH=$WAS_HOME/properties
- Change to the $WSHOME/bin directory.
- (For SQLServer only): Install JTA support:
- Copy the sqljdbc.dll file located in the SQLServer JTA directory to the SQL_SERVER_ROOT/binn directory of the SQLServer database server.
- From the database server, use the ISQL or OSQL utility to run the instjdbc.sql script, which is also found in the SQLServer JTA directory. The following examples illustrate the use of these utilities:
isql -Usa -psa_password -Sserver_name
-ilocation\instjdbc.sql
osql -E -ilocation\instjdbc.sql- Archive a copy of the existing ServerRepository.xml file, in case you need to revert. By default, this file is located in $WSHOME/WEB-INF.
- Point the repository to the new location. For example:
lh -Djava.ext.dirs=$JAVA_HOME/jre/lib/ext:$WAS_HOME/lib setRepo
-Uusername
-Ppassword
-toracle -icom.ibm.websphere.naming.WsnInitialContextFactory -fDataSourcePathIn the above example the DataSourcePath might be jdbc/jndiname. The bootstrap_port is the websphere server bootstrap address port.
The -Djava.ext.dirs option adds all of the JAR files all of the JAR files in WebSphere's lib/ and java/jre/lib/ext/ directories to the CLASSPATH. This is necessary in order for the setRepo command to run normally.
Change the -f option to match the value you specified for the JNDI Name field when configuring the data source. See setRepo Reference for more information about this command.
- In the RepositoryConfiguration configuration object, set the connectionPoolDisable attribute to true.
<RepositoryConfiguration connectionPoolDisable='true'>
This setting prevents WebSphere from sending extraneous warnings to the SystemOut.log file. For more information, see http://www-1.ibm.com/support/docview.wss?uid=swg21121449
- Restart WebSphere to pick up changes. (This also restarts the system.)
Specifying Additional JNDI Properties to the setRepo Command
The setRepo command provides an option that allows you to specify an arbitrary set of properties. The -D $propertiesFilePath option allows you to specify any number of settings, including vendor-specific properties not specified by JNDI, by including them in a properties file that you create.
For example, to specify a different JNDI port number, include a line like the following in your properties file:
java.naming.provider.url=iiop://localhost:2909
Configuring a WebLogic Data Source for Identity ManagerUse the following procedure to update the repository configuration in Identity Manager to point to a WebLogic Data Source. This section includes:
Create a WebLogic Data Source
This example procedure describes configuration steps to use an Oracle database driver. Specific entries you make will differ, depending on your database type.
Create a Connection Pool
- Log in to the WebLogic Administrator Web console (by default, http://localhost:7001/console/).
- Expand the Services folder for the domain located in the navigation (left) pane.
- Expand the JDBC folder.
- Expand the Connection Pools folder.
- In the right pane (JDBC Connection Pools), click Configure a new JDBC Connection Pool.
- For Database Type select Oracle. You can use any of the applicable types. Note that drivers must be installed in order to use them.
- Select an applicable drive in the Database Driver selection box. In this example, select Oracle’s Driver (Thin).
- Click Continue.
- Configure the JDBC driver as follows:
- Click Continue.
- Test the database connection on this page or click Skip this step. You may need to add additional properties depending on your installation. See the administrator’s guide for your target database.
- Click Create and deploy.
- Configure connection settings for this connection pool:
Example Connection Settings:
Initial Capacity:20
Maximum Capacity:100
Capacity Increment: 10
Statement Cache Type: LRU
Statement Cache Size: 20
Create a JDBC Data Source
- Expand the Services folder for the domain located in the navigation (left) pane.
- Expand the JDBC folder.
- Expand the Data Source folder.
- In the right pane (JDBC Data Sources), click Configure a new JDBC Data Source.
- Configure the JDBC Data Source as follows:
- Click Continue.
- Select the connection pool from part A. This allows an application to get a connection from the underlying connection pool.
- Click Continue.
- Select the servers on which you want deploy the new data source.
- Click Create.
Point the Identity Manager Repository to the Data Source
- Set the WSHOME environment variable to point to your Identity Manager installation; for example:
set WSHOME=C:\bea\user_projects\domains\mydomain\applications\idm
- Make sure that the JAVA_HOME environment variable is set correctly; for example:
set JAVA_HOME=C:\j2sdk1.4.2_04
- Make sure that your chosen database drivers are installed for you Weblogic Server. See the Weblogic documentation for further information. In this example, the Oracle drivers and classes12.jar are installed in following directory:
WebLogicHome\server\lib
- Include weblogic.jar in your CLASSPATH. On Windows, enter:
set CLASSPATH=%CLASSPATH%;WeblogicHome\server\lib\weblogic.jar
For example:
set CLASSPATH=%CLASSPATH%;c:\bea\weblogic81\server\lib\weblogic.jar
- Change to the %WSHOME directory.
- Remove the j2ee.jar file from WEB-INF\lib\ after making a backup.
Note
Removing the jars from WEB-INF/lib for WebSphere disables the BPE. Move those jars to a different location and create a CLASSPATH variable that points to those jars to re-enable the BPE.
- Change directory to the %WSHOME\bin directory
- Point the repository to the new location. For example:
lh setRepo -v -tOracle -iweblogic.jndi.WLInitialContextFactory -fDatasourceName -u"t3:Server:Port" -U"Username" -P"Password"
For example:
lh setRepo -v -tOracle -iweblogic.jndi.WLInitialContextFactory -fMyOraDataSource -u"t3://localhost:7001/" -U"weblogic" -P"weblogic"
- If there are no reported errors, restart WebLogic to pick up the changes. (This also restarts the Identity Manager system.)
Configurating a Sun Java System Application Server Data Source for Identity ManagerRefer to the documentation for the Sun Java System Application Server for information about creating and configuring a data source.
Use the following steps to point the repository to an Application Server data source.
- Remove the j2ee.jar file from the $WSHOME/WEB-INF/lib directory. This file causes conflicts with the j2ee.jar that ships with Application Server.
- If not using default host name and port, then you must add the following flags to your JAVA_OPTS:
-Dorg.omg.CORBA.ORBInitialHost=Hostname -Dorg.omg.CORBA.ORBInitialPort=Port
The default values for Hostname and Port are localhost and 3700, respectively.
- Set your CLASSPATH to include only these jars (in order):
SAS_INSTALL_DIR/lib/appserv-admin.jar
SAS_INSTALL_DIR/lib/appserv-rt.jar
SAS_IMQ_DIR/lib/imq.jar
SAS_INSTALL_DIR/lib/j2ee.jar
MYSQL_DIR/lib/mysql-connector-java-3.0.9-stable-bin.jar
- Connect to the data source with the following command:
lh setRepo -v -tDatastore -icom.sun.enterprise.naming.SerialInitContextFactory -fjdbc/idm -uiiop://localhost:3700