データベース(JDBC)パスワード コンシューマを使用するエンドポイントの設定
目次
cminder12901jp
目次
JDBC データベース パスワード コンシューマを使用すると、データベースへの接続に JDBC を使用するアプリケーション内のハードコードされたパスワードを置き換えることができます。 アプリケーションが認証を目的としてパスワードを提供する場合は常に、SAM エージェントにより
Privileged Identity Manager
エンタープライズ コンソールから特権アカウント パスワードが取得され、ハードコードされたパスワードが特権アカウント パスワードに置き換えられます。パスワード コンシューマが使用するデータベースを設定する前に、JDBC パスワード コンシューマを使用するためのエンドポイントの準備を行うべきです。
以下の手順に従います。
- SAM 統合機能が有効になっているエンドポイントにPrivileged Identity Managerがインストールされていること、そして、データベースに接続するアプリケーションが JRE 1.5 以降を使用することを確認します。注:
- データベースに接続するアプリケーションがインストールされるエンドポイントにPrivileged Identity Managerをインストールします。 データベース ホストにPrivileged Identity Managerをインストールする必要はありません。
- 使用している Java バージョン用の適切な JDBC ドライバを使用していることを確認します。
- データベースに接続しているアプリケーションがある場合は停止します。
- 以下のディレクトリに移動します(ACInstallDirはPrivileged Identity Managerをインストールしたディレクトリ)。ACInstallDir/SDK/JDBC
- 以下のファイルを探します。
- CAJDBCDriver.jar
- CAJDBCService.sar
- CAPUPMClientCommons.jar
- jsafeFIPS.jar
- 以下のディレクトリに CAJDBCService.sar をコピーします。ここでJBOSS_HOMEは JBoss をインストールしたディレクトリです。JBOSS_HOME/server/default/deploy
- 以下のディレクトリに、ファイル CAJDBCDriver.jar、CAPUPMClientCommons.jar、および jsafeFIPS.jar をコピーします。JBOSS_HOME/server/lib
- エンタープライズ管理サーバで、パスワード コンシューマ用に定義したデータ ソース XML ファイルを検索します。
- ファイルを編集用に開きます。 以下のいずれかを実行します。
- Privileged Identity Managerを開始します。パスワード コンシューマを使用するエンドポイントが設定できました。 次に、Privileged Identity Managerエンタープライズ コンソールでアプリケーション用のパスワード コンシューマを作成する必要があります。 パスワード コンシューマを作成した後、アプリケーションを起動します。
Microsoft SQL Server 用のデータ ソース設定ファイルのカスタマイズ
JDBC データベース パスワード コンシューマを設定すると、Microsoft SQL Server データベースへの接続に JDBC を使用するアプリケーション内のハードコードされたパスワードを置き換えることができます。 エンドポイントを準備した後、以下の手順に従って、JDBC パスワード コンシューマを使用します。
以下の手順に従います。
- <driver-class> タグを見つけて、デフォルト値を JDBC ドライバ クラス プロパティで置き換えます。 以下に例を示します。<driver-class>com.ca.ppm.clients.jdbc.CAJDBCDriver</driver-class>
- <connection-url> タグを見つけて、デフォルト値をデータベース接続設定で置き換えます。 以下に例を示します。<connection-url>>@@@com.microsoft.sqlserver.jdbc.SQLServerDriver@@@jdbc:sqlserver://SQLServer1:1433;selectMethod=cursor;DatabaseName=tempdb</connection-url>
- Privileged Identity Managerを開始します。これで、Microsoft SQL Server 用にデータ ソース設定ファイルをカスタマイズしました。 次に、Privileged Identity Managerエンタープライズ コンソールでアプリケーション用のパスワード コンシューマを作成する必要があります。 パスワード コンシューマを作成した後、アプリケーションを起動します。
Oracle 用のデータ ソース設定ファイルのカスタマイズ
JDBC データベース パスワード コンシューマを設定すると、Oracle データベースへの接続に JDBC を使用するアプリケーション内のハードコードされたパスワードを置き換えることができます。 エンドポイントを準備した後、以下の手順に従って、JDBC パスワード コンシューマを使用します。
以下の手順に従います。
- <xa-datasource-class> タグを見つけて、デフォルト値を JDBC ドライバ クラス プロパティで置き換えます。 以下に例を示します。<xa-datasource-class>com.ca.ppm.clients.jdbc.CAJDBCDataSource</xa-datasource-class>重要:プロパティ名はデフォルト値と同じである必要があります。
- <xa-datasource-property name=> タグをすべて見つけます。 以下に例を示します。<xa-datasource-property name="URL">jdbc:oracle:oci8:@tc</xa-datasource-property> <xa-datasource-property name="User">scott</xa-datasource-property> <xa-datasource-property name="Password">tiger</xa-datasource-property>
- これらのプロパティを単一の文字列にまとめます。 以下に例を示します。<xa-datasource-property name="CAJDBCProperties">CAJDBCPropertyRealDatasourceClass="oracle.jdbc.xa.client.OracleXADataSource";URL="jdbc:oracle:oci8:@tc";User="scott";Password="tiger";</xa-datasource-property>
- Privileged Identity Managerを開始します。これで、Oracle 用にデータ ソース設定ファイルをカスタマイズしました。 次に、Privileged Identity Managerエンタープライズ コンソールでアプリケーション用のパスワード コンシューマを作成する必要があります。 パスワード コンシューマを作成した後、アプリケーションを起動します。
パスワード コンシューマの例: JDBC データベース
ここでは、システム管理者の Steve が JBoss アプリケーション サーバを使用して、クリア テキストのパスワードを含むアプリケーションを起動する例を示します。 アプリケーションは、Microsoft SQL Server データベースへの接続を認証するためにクリア テキストのパスワードを使用します。 Steve は、アプリケーションがデータベースに接続するたびにSAMから特権アカウント パスワードを取得するように JBoss アプリケーション サーバを変更しようとしています。
Steve は Windows エンドポイント上に、JBoss アプリケーション サーバ バージョン 4.2.3.GA および Java Development Kit (JDK) 1.6.0_19 をインストールしました。 エンドポイントの名前は JBossEndpoint です。 JBossEndpoint\Administrator という名前のユーザが run.bat ファイルを使用して JBoss アプリケーション サーバを起動し、このサーバが Microsoft SQL Server データベースに接続するアプリケーションを実行します。 そのアプリケーションは、sa アカウントを使用してデータベースに接続します。
- Steve は JBossEndpoint 上で以下の手順を実行します。
- JBoss を停止します。
- SAM 統合機能を有効にしてPrivileged Identity Managerをインストールします。
- 以下のディレクトリに移動します。C:\Program Files\CA\AccessControl\\SDK\JDBC
- 以下のファイルを見つけます。
- CAJDBCService.sar
- CAJDBCDriver.jar
- CAPUPMClientCommons.jar
- jsafeFIPS.jar
- 以下のディレクトリにファイル CAJDBCService.sar をコピーします。C:\jboss-4.2.3.GA\server\default\deploy
- 以下のディレクトリにファイル CAJDBCDriver.jar、CAPUPMClientCommons.jar、および jsafeFIPS.jar をコピーします。C:\jboss-4.2.3.GA\server\default\lib
- 以下のディレクトリに移動します。C:\jboss-4.2.3.GA\server\default\deploy
- 以下のファイルを開いて、編集します。
- imworkflowdb-ds.xml
- objectstore-ds.xml
- reportsnapshot-ds.xml
- userstore-ds.xml
- <driver-class> タグを見つけて、デフォルト値を JDBC ドライバ クラス プロパティで置き換えます。 以下に例を示します。<driver-class>com.ca.ppm.clients.jdbc.CAJDBCDriver</driver-class>
- <connection-url> タグを見つけて、デフォルト値をデータベース接続設定で置き換えます。 以下に例を示します。<connection-url>>@@@com.microsoft.sqlserver.jdbc.SQLServerDriver@@@jdbc:sqlserver://SQLServer1:1433;selectMethod=cursor;DatabaseName=tempdb</connection-url>
- 保存してファイルを閉じます。
- Privileged Identity Managerを起動します。
- Steve はPrivileged Identity Managerエンタープライズ コンソールで、以下を行います。
- JBossEndpoint_PUPM という名前の Windows エージェントレス エンドポイントのタイプを作成します。
- JBossEndpoint_PUPM エンドポイント上で sa 特権アカウントを検出します。
- 以下のパラメータを使用して、データベース パスワード コンシューマを作成します。
- NameJBossEndpoint MS SQL 接続
- コンシューマ タイプ データベース(ODBC、JDBC、OLEDB、OCI)
- アプリケーション パス -- C:\jboss-4.2.3.GA\bin\run.bat
- Accountsa
- HostJBossEndpoint
- UserJBossEndpoint\Administrator
- JBossEndpoint\Administrator ユーザが、run.bat ファイルを実行するとエンドポイント上の JBoss アプリケーション サーバが起動されます。JBoss アプリケーション サーバが起動され、アプリケーションは、SQL Server への接続を試行します。 SAMエージェントは、接続試行をインターセプトし、アプリケーションに特権アカウント パスワードを提供します。
- Steve は、以下のディレクトリにある JBoss ログ ファイルでエラーがないか確認します。C:\jboss-4.2.3.GA\server\default\log
Oracle データベース向け追加情報
tnsnames.ora ファイルは、Oracle のデータベースに接続する場合のデータベース アドレスを定義する、クライアント向けの Oracle 構成ファイルです。 tnsnames.ora ファイルには複数のホスト名、ポート、サービス名、インスタンス名または SID が含まれる場合があります。
SAM エージェントでは、$ORACLE_HOME と $TNS_ADMIN の環境変数を解決して、tnsnames.ora ファイルの完全パスを解決します。 環境変数は以下のレジストリ エントリ内に定義されています。
HKEY_LOCAL_MACHINE\SOFTWARE\ComputerAssociates\AccessControl\Instrumentation\PlugIns\plugin\EnvironmentVariables
- plugin接続の試行をインターセプトするプラグインの名前を指定します。値:OCIPlg、ODBCPlg、OLEDBPlg
エージェントは Oracle データベースへの接続の試行をインターセプトするたびに、tnsnames.ora ファイルを解析します。 ファイルにこれらすべての属性の複数の値が含まれている場合、 SAM エージェントにより、可能な属性の各組み合わせに対して個別のネットワーク セットが作成されます。 SAM エージェントは、ネットワーク セットと最も一致する特権アカウントのパスワードを取得した
Privileged Identity Manager
エンタープライズ コンソールにネットワーク セットをすべて送信します。例: tnsnames.ora ファイル内のネットワーク セット
以下は tnsnames.ora ファイルの例です。
SAMPLE_INSTANCE= (DESCRIPTION= (SOURCE_ROUTE=yes) (ADDRESS=(PROTOCOL=tcp)(HOST=host1)(PORT=1630)) # hop 1 (ADDRESS_LIST= (FAILOVER=on) (LOAD_BALANCE=off) # hop 2 (ADDRESS=(PROTOCOL=tcp)(HOST=host2a)(PORT=1630)) (ADDRESS=(PROTOCOL=tcp)(HOST=host2b)(PORT=1630))) (ADDRESS=(PROTOCOL=tcp)(HOST=host3)(PORT=1521)) # hop 3 (CONNECT_DATA=(SERVICE_NAME=Sales.example.com)))
SAM エージェントはこの tnsnames.ora ファイルを解析すると、
Privileged Identity Manager
エンタープライズ コンソールに以下のネットワーク セットを送信します。- HOST=host1、PORT=1630
- HOST=host2a、PORT=1630
- HOST=host2b、PORT=1630
- HOST=host3、PORT=1521、SERVICE_NAME= Sales.example.com