データベース(JDBC)パスワード コンシューマを使用するエンドポイントの設定

目次
cminder12902jp
目次
JDBC データベース パスワード コンシューマを使用すると、データベースへの接続に JDBC を使用するアプリケーション内のハードコードされたパスワードを置き換えることができます。 アプリケーションが認証を目的としてパスワードを提供する場合は常に、 SAM エージェントにより
Privileged Identity Manager
エンタープライズ コンソールから特権アカウント パスワードが取得され、ハードコードされたパスワードが特権アカウント パスワードに置き換えられます。
パスワード コンシューマが使用するデータベースを設定する前に、JDBC パスワード コンシューマを使用するためのエンドポイントの準備を行うべきです。
以下の手順に従います。
  1. SAM統合機能が有効になっているエンドポイントに
    Privileged Identity Manager
    がインストールされていること、そして、データベースに接続するアプリケーションが JRE 1.5 以降を使用することを確認します。
    注:
    • データベースに接続するアプリケーションがインストールされるエンドポイントに
      Privileged Identity Manager
      をインストールします。 データベース ホストに
      Privileged Identity Manager
      をインストールする必要はありません。
    • 使用している Java バージョン用の適切な JDBC ドライバを使用していることを確認します。
  2. データベースに接続しているアプリケーションがある場合は停止します。
  3. 以下のディレクトリに移動します(
    ACInstallDir
    Privileged Identity Manager
    をインストールしたディレクトリ)。
    ACInstallDir/SDK/JDBC
  4. 以下のファイルを探します。
    • CAJDBCDriver.jar
    • CAJDBCService.sar
    • CAPUPMClientCommons.jar
    • jsafeFIPS.jar
  5. 以下のディレクトリに CAJDBCService.sar をコピーします。ここで
    JBOSS_HOME
    は JBoss をインストールしたディレクトリです
    JBOSS_HOME/server/default/deploy
  6. 以下のディレクトリに、ファイル CAJDBCDriver.jar、CAPUPMClientCommons.jar、および jsafeFIPS.jar をコピーします。
    JBOSS_HOME/server/lib
  7. エンタープライズ管理サーバで、パスワード コンシューマ用に定義したデータ ソース XML ファイルを検索します。
  8. ファイルを編集用に開きます。 以下の
    いずれか
    を実行します。
    データ ソース設定ファイルをカスタマイズするのは、データベース接続設定およびデータ ソース クラスを指定するためです。
  9. Privileged Identity Manager
    を開始します。
    パスワード コンシューマを使用するエンドポイントが設定できました。 次に、
    Privileged Identity Manager
    エンタープライズ コンソールでアプリケーション用のパスワード コンシューマを作成する必要があります。 パスワード コンシューマを作成した後、アプリケーションを起動します。
Microsoft SQL Server 用のデータ ソース設定ファイルのカスタマイズ
JDBC データベース パスワード コンシューマを設定すると、Microsoft SQL Server データベースへの接続に JDBC を使用するアプリケーション内のハードコードされたパスワードを置き換えることができます。 エンドポイントを準備した後、以下の手順に従って、JDBC パスワード コンシューマを使用します。
以下の手順に従います。
  1. <driver-class> タグを見つけて、デフォルト値を JDBC ドライバ クラス プロパティで置き換えます。 以下に例を示します。
    <driver-class>com.ca.ppm.clients.jdbc.CAJDBCDriver</driver-class>
  2. <connection-url> タグを見つけて、デフォルト値をデータベース接続設定で置き換えます。 以下に例を示します。
    <connection-url>>@@@com.microsoft.sqlserver.jdbc.SQLServerDriver@@@jdbc:sqlserver://SQLServer1:1433;selectMethod=cursor;DatabaseName=tempdb</connection-url>
  3. Privileged Identity Manager
    を開始します。
    これで、Microsoft SQL Server 用にデータ ソース設定ファイルをカスタマイズしました。 次に、
    Privileged Identity Manager
    エンタープライズ コンソールでアプリケーション用のパスワード コンシューマを作成する必要があります。 パスワード コンシューマを作成した後、アプリケーションを起動します。
Oracle 用のデータ ソース設定ファイルのカスタマイズ
JDBC データベース パスワード コンシューマを設定すると、Oracle データベースへの接続に JDBC を使用するアプリケーション内のハードコードされたパスワードを置き換えることができます。 エンドポイントを準備した後、以下の手順に従って、JDBC パスワード コンシューマを使用します。
以下の手順に従います。
  1. <xa-datasource-class> タグを見つけて、デフォルト値を JDBC ドライバ クラス プロパティで置き換えます。 以下に例を示します。
    <xa-datasource-class>com.ca.ppm.clients.jdbc.CAJDBCDataSource</xa-datasource-class>
    重要:
    プロパティ名はデフォルト値と同じである必要があります。
  2. <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>
  3. これらのプロパティを単一の文字列にまとめます。 以下に例を示します。
    <xa-datasource-property name="CAJDBCProperties">CAJDBCPropertyRealDatasourceClass="oracle.jdbc.xa.client.OracleXADataSource";URL="jdbc:oracle:oci8:@tc";User="scott";Password="tiger";</xa-datasource-property>
  4. 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 アカウントを使用してデータベースに接続します。
  1. Steve は JBossEndpoint 上で以下の手順を実行します。
    1. JBoss を停止します。
    2. SAM統合機能を有効にして
      Privileged Identity Manager
      をインストールします。
    3. 以下のディレクトリに移動します。
      C:\Program Files\CA\AccessControl\\SDK\JDBC
    4. 以下のファイルを見つけます。
      • CAJDBCService.sar
      • CAJDBCDriver.jar
      • CAPUPMClientCommons.jar
      • jsafeFIPS.jar
    5. 以下のディレクトリにファイル CAJDBCService.sar をコピーします。
      C:\jboss-4.2.3.GA\server\default\deploy
    6. 以下のディレクトリにファイル CAJDBCDriver.jar、CAPUPMClientCommons.jar、および jsafeFIPS.jar をコピーします。
      C:\jboss-4.2.3.GA\server\default\lib
    7. 以下のディレクトリに移動します。
      C:\jboss-4.2.3.GA\server\default\deploy
    8. 以下のファイルを開いて、編集します。
      • imworkflowdb-ds.xml
      • objectstore-ds.xml
      • reportsnapshot-ds.xml
      • userstore-ds.xml
    9. <driver-class> タグを見つけて、デフォルト値を JDBC ドライバ クラス プロパティで置き換えます。 以下に例を示します。
      <driver-class>com.ca.ppm.clients.jdbc.CAJDBCDriver</driver-class>
    10. <connection-url> タグを見つけて、デフォルト値をデータベース接続設定で置き換えます。 以下に例を示します。
      <connection-url>>@@@com.microsoft.sqlserver.jdbc.SQLServerDriver@@@jdbc:sqlserver://SQLServer1:1433;selectMethod=cursor;DatabaseName=tempdb</connection-url>
    11. 保存してファイルを閉じます。
    12. Privileged Identity Manager
      を起動します。
  2. Steve は
    Privileged Identity Manager
    エンタープライズ コンソールで、以下を実行します。
    1. JBossEndpoint_PUPM という名前の Windows エージェントレス エンドポイントのタイプを作成します。
    2. JBossEndpoint_PUPM エンドポイント上で sa 特権アカウントを検出します。
    3. 以下のパラメータを使用して、データベース パスワード コンシューマを作成します。
      1. NameJBossEndpoint MS SQL 接続
      2. コンシューマ タイプ データベース(ODBC、JDBC、OLEDB、OCI)
      3. アプリケーション パス -- C:\jboss-4.2.3.GA\bin\run.bat
      4. Accountsa
      5. HostJBossEndpoint
      6. UserJBossEndpoint\Administrator
  3. JBossEndpoint\Administrator ユーザが、run.bat ファイルを実行するとエンドポイント上の JBoss アプリケーション サーバが起動されます。
    JBoss アプリケーション サーバが起動され、アプリケーションは、SQL Server への接続を試行します。 SAMエージェントは、接続試行をインターセプトし、アプリケーションに特権アカウント パスワードを提供します。
  4. 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