A2A を使用したキーストアとパスワードの保護(オプション)

カスタム コネクタ キーストアには、HTTPS 通信用の TLS キー/証明書のペアが含まれています。キーストアのパスワードを暗号化して格納するように PAM を設定できます。カスタム コネクタ サーバは、A2A 機能を使用してパスワードを安全に取得します。
capam33
カスタム コネクタ キーストアには、HTTPS 通信用の TLS キー/証明書のペアが含まれています。キーストアのパスワードを暗号化して格納するように
PAM
を設定できます。カスタム コネクタ サーバは、
PAM
A2A 機能を使用してパスワードを安全に取得します。
A2A メソッドを実装するには、特定のターゲット アプリケーションおよび関連付けられている A2A ターゲット アカウントを設定します。ターゲット アカウントは、キーストア、コール スタック ハッシュ、およびファイル リスト ハッシュにアクセスするためのパスワードを表します。これらのメカニズムが連携して、キーストア パスワードを保護します。
PAM
は、カスタム コネクタ サーバでキーストアを作成するときに使用されるキーストア パスワードをランダムに生成できます。コール スタックとファイル リストのハッシュにより、信頼できる環境で実行されているカスタム コネクタ サーバは
PAM
からキーストア パスワードを確実に取得できるようになります。
この A2A メソッドは、キーストア パスワードを暗号化するために tcfCryptoUtil ユーティリティを使用する方法の代わりです。A2A メソッドではファイルの整合性を検証できます。この機能は tcfCryptoUtil にはありません。tcfCryptoUtil を使用するには、「カスタム コネクタ ツールキットの展開」の「HTTPS 通信用キーストアの作成」の説明を参照してください。
以下の図は、A2A セットアップを示しています。
A2A キーストア パスワードの暗号化
A2A Keystore Password Encryption
キーストア パスワードを保護するために A2A をセットアップするには、以下のタスクを完了します。
2
A2A クライアントをインストールします
A2A クライアントをカスタム コネクタ サーバにインストールし、
PAM
にクライアントを登録します。手順については、「認証情報管理用の A2A クライアントのインストール」を参照してください。
A2A クライアントをインストールすると、クライアントは
PAM
に登録リクエストを送信します。登録プロセスの一環として、
PAM
はデバイスを作成します(既存のデバイスが検出されない場合)。デバイス名は、クライアントがインストールされているホストの完全修飾ドメイン名または IP アドレスです。A2A に設定されるデバイス タイプは、この手順で後ほど使用します。
cspmclient.xml ファイルを編集し、preserveCacheBetweenRestarts パラメータを削除します。A2A クライアントは、認証情報をキャッシュする必要はありません。
A2A 用の
PAM
コンポーネントの設定
A2A でキーストアを保護するために、以下の
PAM
コンポーネントを設定します。
  • A2A デバイス設定
  • パスワード構成ポリシー
  • ターゲット アプリケーション(キーストア用に 1 つ、および両方のハッシュ値用に 1 つ)
  • 3 つのターゲット アカウント(キーストア用、コール スタック ハッシュ用、およびファイル リスト ハッシュ用にそれぞれ 1 つ)
  • A2A スクリプト(
    PAM
    から認証情報を取得する)
  • A2A ターゲット グループ(オプション)
  • ターゲット アカウントに対する A2A マッピング
以下のセクションでは、これらのコンポーネントを設定する方法について説明します。この手順では、サンプル値を含む、設定が必要なフィールドのみを一覧表示します。A2A 設定の各手順の詳細については、「認証情報マネージャ A2A リクエスタの追加および実行」を参照してください。
A2A デバイス設定の変更
アプライアンスが Tomcat サーバと A2A ターゲット アカウント間の関係を確立するには、デバイス レコードが必要です。
登録済みの A2A クライアント用の A2A デバイスを選択します。この手順では、A2A デバイスに以下の値があると仮定します。
  • 名前:
    tcf.tomcat.host
    TCF および A2A クライアントがインストールされている Tomcat サーバのホスト名を指定します。
  • アドレス:
    tcf.tomcat.host
    アドレス フィールドは、値が IP アドレスであるか、または完全修飾ドメイン名であるかに関係なく、[名前]フィールドと同じ値を使用します。
デバイスがキーストアの認証情報を管理するために、[デバイス タイプ]設定に[パスワード管理]を追加します。
以下の手順に従います。
  1. [デバイス]-[デバイスの管理]
    に移動します。
  2. リストから A2A デバイス レコードを選択し、
    [更新]
    を選択します。
  3. [デバイス タイプ]
    設定で、
    [パスワード管理]
    を選択します。[デバイス タイプ]が[パスワード管理]と[A2A]に設定されます。
  4. [OK]
    を選択して、変更を保存します。
2 つのパスワード構成ポリシーの作成
キーストア パスワード、コール スタック ハッシュ値およびファイル リスト ハッシュ値の特性を指定するために、以下の 2 つのパスワード構成ポリシーを設定します。キーストア パスワード用に 1 つのポリシーを作成します。ハッシュ値用に 2 番目のポリシーを作成します。
[認証情報]-[ターゲットの管理]-[パスワード構成ポリシー]に移動し、以下の値を使用してポリシーを設定します。
キーストア パスワード ポリシー:
キーストアのパスワードを生成するポリシーを設定します。キーストアのパスワードはメモリにのみ保持されますが、十分な長さの強力なパスワードにしてください。
  • 名前:
    KeyStorePCP など、ポリシーにわかりやすい名前を割り当てます。
  • 最小長
    および
    最大長:
    64 文字に設定します
  • 次を含む
    および
    先頭に次を含む:
    大文字、小文字、および数字が含まれます。特殊文字を使用しないでください。
ハッシュ パスワード ポリシー:
コール スタック ハッシュ値とファイル リスト ハッシュ値の要件を定義するポリシーを設定します。カスタム コネクタ サーバは、これらのハッシュ値を計算します。サーバは、キーストア パスワードを要求する前に、これらのハッシュを
PAM
のターゲット アカウントに格納されているハッシュと比較します。
  • 名前:
    TCFHashPCP など、ポリシーにわかりやすい名前を割り当てます。
  • 最小長
    および
    最大長
    : 64 文字に設定します
  • 次を含む
    および
    先頭に次を含む:
    小文字および数字のみを使用します。特殊文字を使用しないでください。
2 つのターゲット アプリケーションの設定
2 つのターゲット アプリケーションを設定します([認証情報]-[ターゲットの管理]-[アプリケーション])。1 つのアプリケーションはキーストア パスワード用で、もう 1 つのアプリケーションはコール スタックとファイル リストのハッシュ値用です。
キーストア ターゲット アプリケーシ
ョン: キーストア アプリケーションの以下の値を指定します。
  • ホスト名:
    A2A デバイスの名前を入力します(tcf.tomcat.host)。
  • デバイス名:
    A2A デバイスの名前を入力します(tcf.tomcat.host)。
  • アプリケーション名:
    このターゲット アプリケーションがキーストア用であることを示す名前を入力します(TCFKeyStoreApplication)。
  • アプリケーション タイプ:
    [汎用]
  • パスワード構成ポリシー:
    作成したキーストア パスワード ポリシーを指定します(KeyStorePCP)。
ハッシュ ターゲット アプリケーション
: ハッシュ値アプリケーションの以下の値を指定します。
  • ホスト名:
    A2A デバイスの名前を入力します(tcf.tomcat.host)。
  • デバイス名:
    A2A デバイスの名前を入力します(tcf.tomcat.host)。
  • アプリケーション名:
    このターゲット アプリケーションがハッシュ用であることを示す名前を入力します(TCFHashApplication など)。
  • アプリケーション タイプ:
    [汎用]
  • パスワード構成ポリシー:
    作成したハッシュ パスワード ポリシーを指定します(TCFHashPCP)。
3 つのターゲット アカウントの作成
3 つのターゲット アカウントを設定します。1 つはキーストア パスワード用、1 つはファイル リスト ハッシュ用、および 1 つはコール スタック ハッシュ用です。カスタム コネクタ サーバは、ハッシュ値を計算します。これらの値をターゲット アカウントにコピーします。カスタム コネクタ サーバは、キーストア パスワードを要求する前に、その計算されたハッシュをターゲット アカウントのハッシュと比較します。これらの値が一致する必要があります。
キーストア ターゲット アカウント: キーストア ターゲット アカウントを設定するときに、パスワードを生成します。このパスワードは暗号化され、
PAM
データベースに格納されます。カスタム コネクタ サーバで作成するキーストアに対して、この生成されたパスワードを使用します。
アカウントの以下の値を指定して、アカウントを保存します。
  • ホスト名:
    A2A デバイスの名前を入力します(tcf.tomcat.host)。
  • デバイス名:
    A2A デバイスの名前を入力します(tcf.tomcat.host)。
  • アプリケーション名:
    キーストア ターゲット アプリケーションの名前を入力します(TCFKeyStoreApplication)。
  • アカウント名:
    このターゲット アカウントがキーストア用であることを示す名前を入力します(TCFKeystore など)。
  • パスワード表示ポリシー:
    デフォルト
  • アカウント タイプ:
    [A2A アカウント]
  • エイリアス:
    ターゲット アカウント名と同じ名前(TCFKeystore)を入力することをお勧めします。別の値を指定することができます。
  • キャッシュの動作:
    [キャッシュなし]
  • パスワード:
    鍵束アイコンを選択し、パスワードを生成します。
[ターゲット アカウント]リストで、以下の手順に従います。
  1. 作成したキーストア アカウントを選択します。
  2. [アクション]で、目のアイコンを選択してパスワードを表示します。
  3. このパスワードをコピーして保存します。この値は、カスタム コネクタ サーバでキーストアを作成するときに必要です。
コール スタック ハッシュ ターゲット アカウント
: アカウントの以下の値を指定します。
  • ホスト名:
    A2A デバイスの名前を入力します(tcf.tomcat.host)。
  • デバイス名:
    A2A デバイスの名前を入力します(tcf.tomcat.host)。
  • アプリケーション名:
    ハッシュ用に作成したターゲット アプリケーションの名前を入力します(TCFHashApplication)。
  • アカウント名:
    このターゲット アカウントがコール スタック ハッシュ用であることを示す名前を入力します(TCFCallStackHash など)。
  • パスワード表示ポリシー:
    デフォルト
  • アカウント タイプ:
    [A2A アカウント]
  • エイリアス:
    ターゲット アカウント名と同じ名前(TCFCallStackHash)を入力することをお勧めします。別の値を指定することができます。
  • キャッシュの動作:
    [キャッシュなし]
  • パスワード:
    鍵束アイコンを選択し、パスワードを生成します。カスタム コネクタ サーバがコール スタック ハッシュを生成したら、そのハッシュ値でこのフィールドを更新します。
ファイル リスト ハッシュ ターゲット アカウント
: アカウントの以下の値を指定します。
  • ホスト名:
    A2A デバイスの名前を入力します(tcf.tomcat.host)。
  • デバイス名:
    A2A デバイスの名前を入力します(tcf.tomcat.host)。
  • アプリケーション名:
    ハッシュ用に作成したターゲット アプリケーションの名前を入力します(TCFHashApplication)。
  • アカウント名:
    このターゲット アカウントがファイル リスト ハッシュ用であることを示す名前を入力します(TCFFileListHash など)。
  • パスワード表示ポリシー:
    デフォルト
  • アカウント タイプ:
    [A2A アカウント]
  • エイリアス:
    ターゲット アカウント名と同じ名前(TCFFileListHash)を入力することをお勧めします。別の値を指定することができます。
  • キャッシュの動作:
    [キャッシュなし]
  • パスワード:
    鍵束アイコンを選択し、パスワードを生成します。カスタム コネクタ サーバがファイル リスト ハッシュを生成したら、そのハッシュ値でこのフィールドを更新します。
キーストア パスワードを取得する A2A スクリプトの識別
A2A スクリプト(Java クラス)は、Tomcat サーバ上で実行されます。このスクリプトは、A2A クライアントを使用して
PAM
からキーストア パスワードを取得します。
PAM
は、以下のいずれかのリクエストが発生すると、スクリプト ハッシュを計算します。
  • UI で A2A スクリプトを追加するときに[スクリプトのハッシュを取得する]を選択した。
  • A2A クライアントがスクリプトを使用してパスワード リクエストを送信した。
PAM
では、以下の方法で A2A スクリプトを識別します。
  1. UI で
    [認証情報]-[A2A 管理]-[スクリプト]
    を選択します。
  2. [追加]を選択して以下の値を指定します。
    • クライアント:
      tcf.tomcat.host
    • デバイス名:
      tcf.tomcat.host
    • スクリプト/アプリケーション名:
      A2A クライアントをコールするクラス名を入力します。このコンテキストでは、クラス名は
      com.ca.pam.extensions.tcfcryptoutil.TCFPropertySource
      です
    • 実行パス:
      カスタム コネクタ サーバ上で Tomcat サーバがインストールされている
      ディレクトリを指定します。注: マッピングで実行パスの確認が有効になっている場合、ソフト リンクを含むパスは失敗します。例: path/example/linkdir/test で、linkdir が realdir へのソフト リンクである場合、実行パスは /example/realdir/test にする必要があります。
    • ファイル パス:
      クラスの場所を指定します。たとえば、場所が Tomcat サーバ上の /lib ディレクトリで、CryptoUtil JAR ファイル名の場合は、次のようになります。例: C:\DevTools\apache-tomcat-9.0.13\lib\capamextensionstcfCryptoUtil-4.16.0.jar
    • タイプ:
      Java
  3. OK
    ]を選択します。
JAR ファイルは、Tomcat サーバのバージョンによって決まります。
A2A マッピングを削減するためのターゲットとリクエスト グループの設定(オプション)
PAM
は、キーストア パスワードを取得するリクエスタを認証する必要があります。A2A マッピングは、
PAM
が要求された認証情報をリリースする前にリクエスト スクリプトを検証するために使用するメカニズムです。
ターゲット グループを使用すると、キーストア パスワード用、コール スタック ハッシュ用、およびファイル リスト ハッシュ用のアカウントを整理できます。このターゲット グループを使用するには、1 つの A2A マッピングのみが必要です。ターゲット グループがないと、アカウントごとに個別のマッピングを設定する必要があります。複数のカスタム コネクタ サーバが展開されている場合は、A2A マッピング用の A2A リクエスト グループを使用します。
ターゲット グループの作成
ターゲット グループを使用すると、ターゲット アカウントを整理できます。ターゲット グループは、ホスト サーバ、アプリケーション、およびアカウントに対してフィルタを使用できます。キーストア パスワードおよび 2 つのハッシュ ターゲットのアカウントに対してターゲット グループを使用することで、クライアントとスクリプト間でより簡単に許可ポリシーを管理できます。
以下の手順に従います。
  1. UI で、
    [認証情報]-[ターゲット管理]-[ターゲット グループ]
    を選択します。
  2. グループを追加します。
  3. 以下の設定を完了します。
    • 名前:
      TCFTargetGroup など、わかりやすい名前を入力します。
    • サーバ
      セクション: [ホスト名]の[フィルタ]列を選択します。Tomcat サーバの名前に含まれる文字列でフィルタします。
    • アプリケーション
      セクション:
      [アプリケーション名]
      フィールドの[フィルタ]列を選択します。以前に設定したすべての関連 TCF ターゲット アプリケーションに適用する文字列を追加します。たとえば、[アプリケーション名]の場合、以下のフィルタを使用します。
      tcf_target_group_filter.png
    • アカウント
      セクション
      [アカウント名]
      フィールドの[フィルタ]列を選択します。以前に設定したすべての関連 TCF ターゲット アカウントに適用する文字列を追加します。
A2A リクエスト グループの作成
2 つのカスタム コネクタ サーバを展開する場合、リクエスト グループが役立ちます。グループ内の両方のサーバには、キーストア認証情報へのアクセス権が必要です。
以下の手順に従います。
  1. UI で、
    [認証情報]-[A2A 管理]-[リクエスト グループ]
    を選択します。
  2. グループを追加します。
  3. [クライアント]セクションで、
    [ホスト名]
    フィールドの[フィルタ]列を選択します。Tomcat サーバの名前に含まれる文字列でフィルタします。他方のカスタム コネクタ サーバ用の 2 番目のホストを追加します。両方のサーバが同じ A2A スクリプトを使用することを確認します。
  4. [スクリプト]セクションで、
    [名前]
    フィールドの[フィルタ]列を選択します。以前に作成した A2A スクリプトの名前でフィルタします。以下の図に、A2A リクエスト グループ ページの[スクリプト]セクションを設定する方法を示します。
    a2a_request_group.png
  5. 次のセクションに進み、A2A マッピングを作成します。
リクエスタの許可のための A2A マッピングの作成
PAM
での最後の設定手順は、リクエスタの許可のための A2A マッピングを設定することです。Tomcat サーバで実行される A2A スクリプトと、個々のターゲット アカウントまたは A2A ターゲット グループ間のマッピングを作成します。このマッピングにより、アプライアンスは A2A スクリプトとリクエスタを許可し、認証情報へのアクセス権を付与するように指示されます。
ターゲット グループへのマッピングには、グループ内のすべてのアカウントのエイリアスが含まれます。リクエスト グループからのマッピングには、グループ内のすべてのカスタム コネクタが含まれます。
ご使用の環境に存在するカスタム コネクタ サーバが 1 つのみの場合、単一のクライアントに対する A2A 許可マッピングを追加します。
スクリプトを単一の Tomcat サーバにマップするには、以下の値を指定します。
  • ターゲット:
    [グループ]
    を選択し、TCFTargetGroup を指定します
  • リクエスト:
    [クライアント]
    を選択し、A2A クライアントの IP アドレスを入力します
  • スクリプト:
    [個別]
    を選択し、スクリプトの名前(com.ca.pam.extensions.tcfcryptoutil.TCFPropertySource)を指定します
  • 実行ユーザの確認/実行ユーザ:
    このチェック ボックスをオンにして、Tomcat サーバを管理するユーザを指定します。
  • 実行パスの確認:
    このチェック ボックスをオンにします
  • ファイル パスの確認:
    このチェック ボックスをオンにします
  • スクリプトの整合性検証の実行:
    このチェック ボックスをオンにします
スクリプトを複数の Tomcat サーバにマップするには、以下の値を指定します。
  • ターゲット:
    [グループ]
    を選択し、Tomcat キーストアを指定します
  • リクエスト:
    [グループ]
    を選択し、以前に作成したリクエスト グループの名前を選択します。
  • 実行ユーザの確認/実行ユーザ:
    このチェック ボックスをオンにして、Tomcat サーバを管理するユーザを指定します。
  • 実行パスの確認:
    このチェック ボックスをオンにします
  • ファイル パスの確認:
    このチェック ボックスをオンにします
  • スクリプトの整合性検証の実行:
    このチェック ボックスをオンにします
キーストア パスワードを取得するためのカスタム コネクタの設定
PAM
で A2A コンポーネントをセットアップしたら、キーストア パスワードを取得するようにカスタム コネクタ サーバをセットアップします。キーストアを作成して保護するには、アプライアンス構成設定の一部が必要です。
キーストアの作成とキーストア パスワードの暗号化
PAM
とカスタム コネクタの間の通信をセキュリティで保護するには、PKCS12 キーストアを作成します。キーストアには、PEM 形式の X.509 秘密キーおよび証明書ペアを含める必要があります。キーストアを生成する場合、キーストア パスワードはプレーン テキスト形式です。TCF で提供されるユーティリティ、configTCF を使用してパスワードを暗号化します。
X.509 キー/証明書ペアを保持するキーストアは、
PAM
からのペイロードを保護するためのキーストアとは別個のものです。
例: Keytool を使用したキーストアのセットアップ
キーストアの作成には、さまざまなツールを使用できます。以下の手順では、例として keytool ユーティリティを使用します。
キーは、
-validity
コマンド引数によって指定された日数後に期限切れになります。以下の手順では、キーは 360 日後に期限切れになります。期限切れ後にキーを再生成するには、以下の手順を繰り返します。
キーストアを作成してパスワードを暗号化するには、以下の手順に従います。
  1. 以下の keytool コマンドを入力して、PKCS12 キーストアを作成します。最初にカスタム コネクタを展開したときにキーストアを作成した場合は、新しいキーストアを作成しないでください。手順 2 に進みます。
    keytool -genkey -alias pam -keyalg RSA -keysize 2048 -storetype PKCS12 -dname “CN=capamtcf, OU=PAM, O=CA, L=Burlington, ST=MA, C=US” -keypass
    password
    -storepass
    password
    -keystore <
    keystore_file
    > -validity 360
    password
    は、キーストア ターゲット アカウントの作成時に割り当てたパスワードです。
    keystore_file
    は、生成するキーストアのパスおよびファイル名です。
    このコマンドの出力は、コマンド プロンプトに表示される暗号化されたキーストア パスワードです。
  2. 次の手順に進みます。
server.xml ファイルへのキーストアの場所の追加
キーストアの場所を指定します。
  1. %CATALINA_HOME%\conf\ にある server.xml ファイルを編集します。
  2. HTTPS スキーム用のコネクタを見つけます。
  3. 以下の行を追加します。
    <Connector
    protocol="org.apache.coyote.http11.Http11NioProtocol"
    port="8443" maxThreads="200"
    scheme="https" secure="true" SSLEnabled="true"
    keystoreFile="
    keystore_file
    " keystorePass="${tomcat.keystore.pwd}"
    clientAuth="false" sslProtocol="TLS"/>
    keystore_file
    は、以前に作成した PKCS12 キーストアのファイル パスおよびファイル名です。
  4. 次のセクションに進みます。
Tomcat による TCF の読み取りの有効化
Tomcat による TCF プロパティの読み取りを有効にするように catalina.properties ファイルを変更します。
以下の手順に従います。
  1. %CATALINA_HOME%\conf\catalina.properties
    ファイルに移動します。
  2. ファイルの末尾に以下の行を追加することで、このファイルを編集します。
    org.apache.tomcat.util.digester.PROPERTY_SOURCE=com.ca.pam.extensions.tcfcryptoutil.TCFPropertySource
    tomcat.keystore.pwd.usea2a=true
    tomcat.keystore.pwd=TCFKeyStore
    tomcat.callstack.hash.alias=TCFCallStackHash
    tomcat.file.list.hash.alias=TCFFileListHash
    このエントリにより、以下の情報が提供されます。
  • org.apache.tomcat
    で始まる行: プロパティを読み取るためのデフォルトの動作が上書きされます。
  • tomcat.keystore.pwd.usea2a=true:
    PAM
    からキーストア パスワードを取得するように Tomcat に指示します。これを true に設定する場合は、以下の行が必要です。
    • tomcat.keystore.pwd=TCFKeyStore
      PAM
      に格納されているキーストア パスワード ターゲット アカウントのエイリアスです。
    • tomcat.callstack.hash.alias=TCFCallStackHash
      : コール スタック ハッシュ ターゲット アカウントのエイリアス
    • tomcat.file.list.hash.alias=TCFFileListHash:
      ファイル リストのハッシュ ターゲット アカウントのエイリアス
カスタム コネクタ サーバによる認証情報の取得の有効化
カスタム コネクタ サーバが
PAM
から認証情報を取得するには、A2A クライアント API ライブラリおよび TCF ライブラリをそのクラス パスに追加します。
以下の手順について補足します。
  • ディレクトリ パスとプレース ホルダは、UNIX または LINUX システムを反映しています。Windows では、パスに円記号を使用し、プレースホルダに % 記号を使用します。
  • cspmclient/lib は、システムへの A2A クライアントのインストール場所である CSPM_CLIENT_HOME の下にあります。
  • CATALINA_HOME は、Tomcat サーバのインストール場所です。
以下の手順に従います。
  1. CSPM_CLIENT_HOME
    /cspmclient/lib から $CATALINA_HOME/lib に以下の A2A JAR ファイルをコピーします
    • cspmclient.jar
    • cwjcafips.jar
  2. ご使用のプラットフォームに対応した A2A クライアント ライブラリをコピーします。
    • UNIX/Linux プラットフォームの場合:
      1. $CSPM_CLIENT_HOME/cspmclient/lib から $CATALINA_HOME/lib
        に以下のライブラリをコピーします
        • libcpaspiffadaptor64.so
        • libcspminterface64.so
        • libcwjcafips.so
      2. これらのライブラリを認識するために、Tomcat で setenv.sh スクリプトに LD_LIBRARY パスを設定します。このスクリプトは $CATALINA_HOME/bin/ にあります。
        パスの例:
        export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/$CATALINA_HOME/lib
    • Windows プラットフォーム:
      %CSPM_CLIENT_HOME%\cspmclient\lib から %CATALINA_HOME%\bin
      に以下の DLL ファイルをコピーします。
      • cpaspiffadaptor64.dll
      • cspminterface64.dll
      • cwjcafips.dll
  3. TCF_HOME
    /configTCF から $CATALINA_HOME/lib
    に capamextensionstcfCryptoUtil-4.16.0.jar ファイルをコピーします
    TCF_HOME
    は、カスタム コネクタ フレームワークの zip ファイルの抽出先です。
展開されているファイルを検証するためのファイル リストの作成
カスタム コネクタ サーバは、キーストア パスワードを取得する前に、そのファイルの整合性を検証します。カスタム コネクタ サーバは、すべてのファイルのハッシュをまとめて追加し、そのファイルの 1 つの統合ハッシュ値を計算します。サーバは、このハッシュを、
PAM
から取得されるファイル リスト ターゲット アカウントのハッシュと比較します。これらのハッシュ値が一致する必要があります。
ハッシュを生成するには、サーバに展開されているターゲット コネクタのすべてのファイルのリストが必要です。
以下の手順に従います。
  1. ファイルを作成し、
    pam.filelist
    という名前を付けます。これは必須のファイル名です。
  2. pam.filelist ファイルには、以下の項目を含めます。
    • pam.filelist ファイル自体のフル パス
    • capamef.war ファイルのフル パス
    • webpps
      および
      webapps_targetconnectors
      フォルダ内の .war ファイルから抽出されたすべてのファイルのフル パス
    • カスタム コネクタ サーバ上で展開されているすべてのカスタム ターゲット コネクタのフル パス。
    • 必要に応じて、%CATALINA_HOME% の下の
      lib
      ディレクトリにあるライブラリのフル パス
    すべてのパスとファイル名では、大文字と小文字が区別されます。
  3. ファイルを保存します。
  4. ファイルを %CATALINA_HOME%\conf にコピーします。
  5. Tomcat サーバを再起動します。
以下の例は、単純なファイル リストです。実際のファイル リストには、より多くのファイルが含まれます(
webapps
および
webapps_targetconnectors
フォルダ内の .war ファイルから抽出されたファイルなど)。
C:\DevTools\apache-tomcat-9.0.13\conf\pam.filelist
C:\DevTools\apache-tomcat-9.0.13\webapps\capamef.war
C:\DevTools\apache-tomcat-9.0.13\webapps_targetconnectors\exampleTargetConnector.war
C:\DevTools\apache-tomcat-9.0.13\webapps_targetconnectors\echoTargetConnector.war
PAM
ターゲット アカウントへのハッシュ値のコピー
カスタム コネクタは、キーストア パスワードを要求するときに、コール スタックとファイル リストのハッシュ値を計算します。サーバは、これらの値をターゲット アカウントのハッシュと比較します。
PAM
がキーストア パスワードで応答する前に、これらの値が一致する必要があります。
ハッシュが一致するためには、計算された値を
PAM
のターゲット アカウントにコピーする必要があります。
ハッシュを比較するには、以下の手順に従います。
  1. カスタム コネクタ サーバを起動しますが、起動に失敗します。
    起動時に、サーバは
    PAM
    をコールしてハッシュ値を取得します。
    PAM
    から取得したハッシュは、カスタム コネクタ サーバによって計算された値と一致しないため、起動に失敗します。
  2. %CATALINA_HOME%\logs ディレクトリにある catalina.log ファイルを開きます。
  3. ログ ファイル内で以下の 2 つのメッセージを検索します。
    Computed callstack hash:
    callstack_hash
    does not match the retrieved call stack hash:
    CA_PAM_call_stack_hash
    Computed filelist hash:
    filelist_hash
    does not match the retrieved filelist hash:
    CA_PAM_file_list_hash
  4. これらのログ メッセージからハッシュをコピーし、
    PAM
    の関連するターゲット アカウントの
    [パスワード]
    タブに貼り付けます。
    • callstack_hash
      : コール スタック ターゲット アカウントから計算された値
    • filelist_hash
      : ファイル リスト ターゲット アカウントから計算された値
  5. サーバを再起動します。
カスタム コネクタ サーバを再起動すると、
PAM
からハッシュを要求し、ハッシュは正常に検証されます。最後に、カスタム コネクタ サーバは
PAM
からキーストア パスワードを取得します。
トラブルシューティング
Tomcat サーバの起動中に例外がログに記録される場合は、catalina ログ ファイルを参照してください。例外スタック トレースが以下の図のような場合、サーバは HTTPS コネクタを開始できません。
01-Nov-2018 14:59:46.063 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["https-openssl-nio-8443"]
01-Nov-2018 14:59:46.401 SEVERE [main] org.apache.catalina.util.LifecycleBase.handleSubClassException Failed to initialize component [Connector[HTTP/1.1-8443]]
org.apache.catalina.LifecycleException: Protocol handler initialization failed
at org.apache.catalina.connector.Connector.initInternal(Connector.java:935)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:533)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:852)
この問題の原因は以下のとおりです。
問題:
キーストア パスワードが正しくありません。
パスワードは
PAM
から取得されますが、正しくありません。catalina.log で次のメッセージを確認することで、取得を検証します:
A2A Client Status Code: 400
catalina.log ファイルで以下のスタック トレースを確認します。
Caused by: java.io.IOException: keystore password was incorrect
at sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:2015)
at sun.security.provider.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:238)
at sun.security.provider.JavaKeyStore$DualFormatJKS.engineLoad(JavaKeyStore.java:70)
at java.security.KeyStore.load(KeyStore.java:1445)
at org.apache.tomcat.util.net.SSLUtilBase.getStore(SSLUtilBase.java:179)
at org.apache.tomcat.util.net.SSLHostConfigCertificate.getCertificateKeystore(SSLHostConfigCertificate.java:204)
at org.apache.tomcat.util.net.jsse.JSSEUtil.getKeyManagers(JSSEUtil.java:203)
解決策:
PAM
UI で、キーストア ターゲット アカウントのパスワードが正しいことを確認します。また、Tomcat キーストアに同一のパスワードがあることを確認します。
問題:
A2A クライアントが起動しません。catalina.log ファイルには、次のメッセージが含まれています:
A2A Client Status Code: 402
解決策:
A2A クライアント デーモン(UNIX)/サービス(Windows)を起動します。
問題:
PAM
で catalina.properties ファイル内にキーストア パスワード エイリアスが見つかりません。catalina ログは、次のメッセージを示します:
A2A Client Status Code: 405
解決策:
PAM
UI で、キーストア ターゲット アカウントの名前を確認します。Tomcat サーバで、catalina.properties ファイルを確認します。
tomcat.keystore.pwd.alias
プロパティにターゲット アカウントと同じ名前があることを確認します。
PAM
でコール スタック ハッシュまたはファイルリスト ハッシュのエイリアスが見つからない場合、エラーおよび解決策はほぼ同じです。UI および catalina.properties ファイルを参照し、エイリアスが一致していることを確認します。
問題:
スクリプト名が許可されていません。A2A マッピングでは、不正なスクリプト名が使用されます。catalina.log には、次のメッセージが含まれています:
A2A Client Status Code: 409
解決策:
マッピングとスクリプト プログラムが一致するように A2A スクリプトを修正します。
問題:
実行パスが許可されていません。A2A マッピングには、スクリプトの正しい実行パスがありません。catalina.log には、次のメッセージが含まれています:
A2A Client Status Code: 410
解決策:
実行パスを検証します。
PAM
UI で、
[認証情報]-[レポート]-[アクティビティ]
に移動します。
[設定]
を選択してアクティビティ レポートを設定します。
+
記号を使用して項目を追加してから、
[過去 30 日間で失敗した A2A クライアント リクエスト]
項目を選択します。レポートの実行後、410 エラー コードを持つ項目を検索します。そのエントリには、A2A クライアント リクエストの実行パスが含まれています。この実行パスを A2A スクリプトに指定します。
問題:
実行ユーザが許可されていません。A2A マッピングには、正しいユーザが指定されていません。catalina.log には、次のメッセージが含まれています:
A2A Client Status Code: 411
解決策:
Tomcat サーバを実行しているユーザと同じユーザを使用するように A2A マッピングを変更します。
問題:
スクリプトのハッシュ値が不正です。カスタム コネクタの Java クラス ファイルのハッシュ値が正しくないか、または誤ったスクリプトが指定されています。catalina.log には、次のメッセージが含まれています:
A2A Client Status Code: 436
解決策:
カスタム コネクタの Java クラス ファイルが意図的に変更された場合は、ハッシュを再計算します。
PAM
UI のスクリプト パネルの
[スクリプトのハッシュを取得する]
ボタンを選択します。