カスタム コネクタ ソフトウェアの展開
ここでは、カスタム コネクタ ソフトウェアをインストールして展開する方法について説明します。これらの手順は、開発システムと本稼働システムに適用されます。本稼働システムでは手順が 1 つ多くなります。本稼働システムに展開した後に、2 つのフォルダを削除します。
capam33
HID_ConfigConnectorFramework
ここでは、カスタム コネクタ ソフトウェアをインストールして展開する方法について説明します。これらの手順は、開発システムと本稼働システムに適用されます。本稼働システムでは手順が 1 つ多くなります。本稼働システムに展開した後に、2 つのフォルダを削除します。
2
ここでは、サンプル ファイルのパスは UNIX システム用で、スラッシュ(/)が使用されています。Windows システムでは、パスは似ていますが、円記号(\)を使用します。
カスタム コネクタ サーバに必要なソフトウェア
カスタム コネクタ サーバ(Tomcat サーバ)には、以下のソフトウェアが必要です。
- Apache Tomcat 9
- Java 8 または Java 11 (展開済み実稼働環境では JRE のみが必要)
最低システム要件
- 2 CPU を推奨(1 CPU でも十分)
- 4 GB RAM
- 32 GB のディスク容量
Tomcat のインストール
Windows または Linux システム上に Tomcat 9 をインストールします。Linux システム上に Tomcat をインストールする場合は、Tomcat をサービスとして実行します。インストール手順については、Apache Tomcat 9 のマニュアルを参照してください。
カスタム コネクタのインストール用に専用の Tomcat サーバを使用してください。
ソフトウェアのダウンロード
カスタム コネクタの zip ファイルを CA サポート サイトからダウンロードします。
zip をダウンロードする方法
- CA サポート サイトに移動し、[ダウンロード管理]ページにログインします。
- 一番上にあるフィールドに「」と入力し、リストからこの製品を選択できるようにします。Privileged Access Manager
- 製品リストで[エントリを見つけます。[Filter Search Results]フィールドに名前を入力することもできます。Privileged Access Manager- DEBIAN]
- エントリの横の[Release]ドロップダウン リストで[3.3]を選択し、エントリ名を選択すると、ソフトウェアが表示されます。
- 適切な Java バージョン向けのファイルを見つけて、Tomcat サーバがインストールされているシステムにダウンロードします。ファイル名は以下のとおりです。
- Custom Connector Framework r3.3, JDK 8
- Custom Connector Framework r3.3, JDK 11
カスタム コネクタ ファイルの抽出
Tomcat サーバに zip ファイルをダウンロードした後に、そのファイルを展開します。
Tomcat サーバは、ドキュメント全体を通じて、カスタム コネクタ サーバとも呼ばれます。
以下の手順に従います。
/tmp/tcf
などのフォルダにファイルを解凍します。 ファイルを解凍すると、以下の 4 つのディレクトリが作成されます。
カスタム ターゲット コネクタ ツールキットのフォルダ レイアウト
/content/custom_target_connector_toolkit_folder_layout.png/_jcr_content/renditions/original)
以下のテーブルは各ディレクトリについて説明します。
Directory | 内容 |
application | capamef.war - TCF Web アプリケーション。 |
samples |
|
sdk |
|
configTCF | さまざまな TCF 暗号化タスク用のツール:
|
カスタム コネクタ WAR ファイルの展開
Tomcat のカスタム コネクタ サーバ上のカスタム コネクタ WAR ファイルを展開するには、ディレクトリおよび WAR ファイルに適切な所有者およびアクセス許可が必要です。必要なファイルとディレクトリの所有権およびアクセス許可は、プラットフォームごとに以下に一覧表示されています。
Linux プラットフォーム
- ファイルとディレクトリの所有権:所有者を Tomcat ユーザとグループに設定します。たとえば、capamef.war の所有権を設定するには、以下のように入力します。chown tomcat:tomcat capamef.war
- ファイル アクセス権:Tomcat ユーザに読み取り/書き込み権限を付与します。たとえば、capamef.warの権限を設定するには、以下のように入力します。chmod 600 capamef.war
- ディレクトリ アクセス権: Tomcat ユーザに読み取り/書き込み/実行(rwx)権限を付与します。グループに読み取り/実行(rx)権限を付与します。たとえば、rx 権限を webapps_targetconnectors ディレクトリに割り当てるには、以下のように入力します。chmod 750 webapps_targetconnectors
Windows プラットフォーム
- ファイルとディレクトリの所有権:Windows 管理者は、所有者である必要があります。
- ファイルおよびディレクトリのアクセス権:グループ管理者の管理者ユーザにのみ書き込み権限があります。その他のユーザには、書き込み権限がありません。
WAR ファイルの展開
以下の手順に従います。
- capamef.warファイルをディレクトリ /CATALINA_HOME/webapps にコピーします。ここで、CATALINA_HOMEはサーバのインストール場所です。
- CATALINA_HOMEで、webapps_targetconnectorsという名前のディレクトリを作成します。
- exampleTargetConnector.warファイルとechoTargetConnector.warファイルをwebapps_targetconnectorsディレクトリにコピーします。
- 次のセクションの手順に従って、カスタム コネクタ サーバを設定します。
カスタム コネクタ サーバの設定
ソフトウェアを展開した後、カスタム コネクタ サーバで以下のタスクを実行します。
- HTTPS 通信用のキーストアの作成
- server.xml ファイルの変更
以下の手順で、
CATALINA_HOME
は、サーバのインストール場所です。HTTPS 通信用のキーストアの作成
PAM
と TCF の間の通信をセキュリティで保護するには、TLS を使用するように Tomcat サーバを設定します。この手順はオプションですが、推奨されます。TLS をサポートするには、キーストア パスワードを使用してキーストアを作成します。キーストアには、通信をセキュリティで保護するために X.509 キー/証明書ペアが格納されます。TLS の詳細な設定手順については、Apache Tomcat のドキュメントを参照してください。キーストアをセキュリティで保護するには、キーストア パスワードを暗号化します。キーストア パスワードを暗号化するには、
configTCF
というカスタム コネクタ サーバ ユーティリティを使用します。カスタム コネクタ サーバがインストールされているシステムのマシン ID を使用して、パスワードが暗号化されます。各システムには一意のマシン ID があります。以下の手順では、例として keytool ユーティリティを使用します。その他のツールを使用して、キーストアを作成することもできます。
キーストアを作成してパスワードを暗号化するには
、以下の手順に従います。- 以下の keytool コマンドを入力して、PKCS12 キーストアを作成します。キーストアには、PEM 形式の X.509 秘密キーおよび証明書ペアを含める必要があります。keytool -genkey -alias pam -keyalg RSA -keysize 2048 -storetype PKCS12 -dname "CN=capamtcf, OU=PAM, O=CA, L=Burlington, ST=MA, C=US"-keypass keystore_password-storepasskeystore_password-keystorekeystore_file-validity 360keystore_passwordは、キーストアに割り当てるパスワードです。keystore_fileは、生成するキーストアのフル パスおよびファイル名です。
- Tomcat プロセスを実行しているユーザに、キーストア ファイルへの読み取り権限を付与します。
- 以下のコマンドを実行して、手順 1 で生成したキーストアから証明書を抽出します。keytool -exportcert -alias pam -keystore keystore_file -keypass keystore_password -storepass keystore_password -rfc -file tcf.crtファイル tcf.crt を保持します。PAMカスタム コネクタの設定を後で行う場合は、この証明書が必要です。
- TCF zip ファイルが解凍された場所に移動し、configTCFフォルダを見つけます。
- ご使用のオペレーティング システムに応じて以下のコマンドを実行し、キーストア パスワードを暗号化します。Windows: configTCF.cmd -Dcommand=encryptPassword -Dpassword=keystore_passwordUnix/Linux: configTCF -Dcommand=encryptPassword -Dpassword=keystore_passwordkeystore_passwordは、割り当てたパスワード値です。configTCF コマンドの出力は、コマンド プロンプトに表示される暗号化されたキーストア パスワードです。
- 暗号化されたパスワードを一時ファイルにコピーします。
- configTCF フォルダから、capamextensionstcfCryptUtil.jarファイルをCATALINA_HOME/lib にコピーします。CATALINA_HOMEは、Tomcat サーバがインストールされている場所です。
- CATALINA_HOME/conf に移動し、catalina.propertiesファイルを開きます。
- このドキュメントから以下の行をコピーし、catalina.properties ファイルの最後に貼り付けます。org.apache.tomcat.util.digester.PROPERTY_SOURCE=com.ca.pam.extensions.tcfcryptoutil.TCFPropertySourcetomcat.keystore.pwd=encrypted_keystore_passwordencrypted_keystore_passwordは、前の手順で生成された暗号化パスワードです。
暗号化されたキーストア パスワードは、そのパスワードが生成されるシステムに固有のものです。あるサーバ上でパスワードを生成し、暗号化された情報を別のサーバにコピーすることはできません。各実稼働サーバ上で、configTCF を実行してキーストアのパスワードを暗号化します。パスワードが暗号化された後は、システムから configTCF ユーティリティを削除します。
キーストアをセキュリティで保護する別の方法は、
PAM
A2A 機能を使用することです。手順については、「A2A を使用した HTTPS 用のキーストアの保護(オプション)」を参照してください。Tomcat server.xml ファイルの変更
server.xml ファイルを編集します。
- ポート 18080 を使用するコネクタ サービスを追加します(必須)
- HTTPS 通信にポート 8443 を使用するコネクタ サービスを追加します(TLS のサポートにのみ必要)
以下の手順に従います。
- /CATALINA_HOME/bin に移動し、catalina.sh スクリプトに必要な変数の値を入力します。
- /CATALINA_HOME/conf に移動します。
- server.xmlファイルをコピーし、元のファイルの名前を変更します。元のファイルには一意の名前を指定します。
- テキスト エディタで server.xml ファイルを開きます。
- ポート 18080 を使用するコネクタ サービスを追加します。このポートでは、ループバック アドレス 127.0.0.1 を使用します。以下のファイルの抜粋は、追加されたコネクタ サービス(CatalinaTC)の例を示しています。<Service name="CatalinaTC"><Connector port="18080" protocol="HTTP/1.1" connectionTimeout="30000"URIEncoding="UTF-8" address="127.0.0.1" /><!-- Define an AJP 1.3 Connector on port 8009<Connector port="18009" protocol="AJP/1.3" redirectPort="18443" />--><Engine name="CatalinaTC" defaultHost="targetconnectors"><Host name="targetconnectors" appBase="webapps_targetconnectors"unpackWARs="true" autoDeploy="false" deployOnStartup="true"><Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"prefix="localhost_access_log" suffix=".txt"pattern="%h %l %u %t "%r" %s %b" /></Host></Engine></Service>
- 少なくともローカル ホストでポート 8080 を開いたままにします。ポート 8080 が開くようにするには、以下のエントリのいずれかが server.xml ファイル内の <Service name="Catalina"> の下にあることを確認します。カスタム コネクタの TLS を有効にした場合は、以下のエントリが存在することを確認します。<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="30000" URIEncoding="UTF-8" address="127.0.0.1" />TLS を有効にしなかった場合は、以下のエントリが存在することを確認します。<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="30000" URIEncoding="UTF-8"/>
- カスタム コネクタの TLS を有効にする場合は、ポート 8443 (HTTPS ポート)を使用するコネクタ サービスを追加します。このコネクタを、デフォルトの Catalina サービス(<Service name="Catalina">)セクションの下に追加します。デフォルトで、ポート 8080 が server.xml ファイルに指定されていますが、セキュア TCF 通信にはポート 8443 を使用してください。以下のコード抜粋は、ポート 8443 を追加する方法を示しています。<Connectorprotocol="org.apache.coyote.http11.Http11NioProtocol" port="8443" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" keystoreFile="keystore_file_path" keyAlias="unique_key_identifier" keystorePass="${tomcat.keystore.pwd}" clientAuth="false" sslProtocol="TLS" xpoweredBy="false"/>キーストアの名前を含む、完全なキーストア ファイル パスを指定していることを確認します。上記のとおり、文字列keystorePass="${tomcat.keystore.pwd}"を正確に入力してください。この文字列は、暗号化されたパスワードのエイリアスです。キーストアに複数のキーが存在する場合は、識別の問題を回避するためにkeyAlias属性を使用してキーを一意に識別します。
- server.xml ファイルを保存します。
- Tomcat サーバを再起動します。
- Tomcat サーバが正しくセットアップされていることを確認します。CATALINA_HOME/logs に移動し、以下のメッセージを見つけます。INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["https-jsse-nio-8443"]INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-127.0.0.1-18080"]INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-0:0:0:0:0:0:0:1-18080"]INFO [main] org.apache.catalina.startup.Catalina.start Server startup in <duration_to_start_server>Tomcat サーバが起動しない場合は、「カスタム コネクタの問題のトラブルシューティング」で可能なソリューションを確認してください。
カスタム コネクタ サーバのセキュリティ保護
カスタム コネクタ サーバをセキュリティで保護することをお勧めします。サーバをセキュリティで保護すると、攻撃に対する脆弱性が軽減されます。Tomcat サーバをセキュリティで保護する方法については、Tomcat のドキュメントを参照してください。また、サーバをセキュリティで保護するためのエントリが含まれる、サンプルの server.xml ファイルを参照してください。
PAM
でのカスタム コネクタの設定カスタム コネクタの設定ページには、カスタム コネクタ サーバを識別するための設定があります。また、このページには、
PAM
とカスタム コネクタ サーバの間の通信をセキュリティで保護するための設定も含まれています。PAM
UI で以下の手順に従います。- PAMUI にログインし、[構成]-[カスタム コネクタ]に移動します。
- 以下のフィールドに値を入力して、カスタム コネクタ サーバを識別します。
- サーバ アドレス: Tomcat サーバの IP アドレスを入力します。
- サーバ ポート: Tomcat で HTTP トラフィックをリスンするポートを入力します。
- タイムアウト設定を指定します。
- 接続タイムアウト(秒): このタイムアウトで、PAMが TCF からの応答を待機する時間を指定します。デフォルト: 3 秒
- 読み取りタイムアウト(秒): このタイムアウトで、PAMが TCF からの応答を待機する時間を指定します。このタイムアウトは、UI コンテンツを構築および検証するデータのリクエストなど、認証情報管理の操作以外のリクエスト用です。デフォルト: 3 秒
- 更新タイムアウト(秒): このタイムアウトで、認証情報管理の操作でPAMが TCF からの応答を待機する時間を指定します。操作には、パスワード検証またはパスワードのロールオーバーを含めることができます。デフォルト: 30 秒
- (オプションですが推奨) TLS を有効化して、通信チャネルをセキュリティで保護します。
- カスタム コネクタ サーバのキーストアからサーバ証明書(tcf.crt ファイル)を取得します。tcf.crt ファイルは、Tomcat サーバで HTTPS 通信用のキーストアを作成した後に抽出済みです。
- [Use TLS (TLS の使用)]チェック ボックスがオンになっていることを確認します。HTTPS ポート 8443 で TLS を使用することを推奨します。
- [証明書ファイル名]フィールドで、フィールドの隣にある[ファイルの選択]を選択します。ローカル システム上でサーバ証明書を参照して選択します。ファイル名は、[現在の証明書ファイル]フィールドに表示されます。
- 暗号化キーを生成します。このキーによって、PAMが各 REST コールを使用してカスタム コネクタ サーバに送信する認証トークンとペイロードが暗号化されます。
- [暗号化キー]フィールドの隣にある[キーの生成]を選択します。アプライアンスでキーが作成され、その値がフィールドに格納されます。例:em6/C5X7GxBZiGt9QF4Z56SBjxOM2jvmwoacGjUAXvk=
- 暗号化キーの値をコピーし、ファイルに保存します。
- [認証トークン有効期間(秒)]フィールドでは、認証トークンをアクティブにする期間を指定します。デフォルト値(120 秒)では、PAMとカスタム コネクタ サーバの間で任意のタイミングの遅延が許可されます。PAMとカスタム コネクタ サーバのクロックは同期している必要があります。
- [保存]を選択します。メッセージにより、アプライアンスがカスタム コネクタ サーバに接続されていることが示されます。
[クリア]ボタンをクリックすると、ページの設定が出荷時のデフォルト値に戻ります。[クリア]ボタンでは、UI および
PAM
データベースの設定も削除されます。再設定するには、暗号化キーを再生成する必要があります。最後に、カスタム コネクタ サーバ上の extension_ framework.properties ファイルに新しい値をコピーします。カスタム コネクタ サーバでのキーストアの作成
カスタム コネクタ サーバに対する REST コール中に、
PAM
はヘッダ内の暗号化された認証 JWT トークンと暗号化されたペイロードを送信します。カスタム コネクタ サーバのキーストアに暗号化キーを格納します。リクエストを認証するために、TCF は格納された暗号化キーを使用して JWT トークンを復号化します。TCF でトークンを復号化できない場合、リクエストは拒否されます。復号化に成功した場合、キーを使用してペイロードを復号化します。キーストアを生成するには、カスタム コネクタ サーバで設定ユーティリティを実行します。
暗号化キーを保持するキーストアは、HTTPS 通信用の X.509 キー/証明書ペアを保持するキーストアとは異なります。
以下の図は、暗号化プロセスを示しています。
capam ペイロード暗号化フロー
/content/capam_payload_encryption_flow.png/_jcr_content/renditions/original)
以下の手順に従います。
- /$CATALINA_HOME/tcf にtcfという名前のディレクトリを作成します。Tomcat ユーザは、このディレクトリを所有する必要があります。このディレクトリへのアクセス権限で、Tomcat ユーザには読み取り/書き込み/実行(rwx)権限が、Tomcat グループ内のユーザには読み取り/実行(rx)権限が必要です。
- キーストアを作成します。configTCFコマンド(UNIX)またはconfigTCF.cmd(Windows)、およびPAMで生成された暗号化キーを使用します。コマンド構文は次のとおりです。configTCF -Dcommand=createKeyStore -DkeyStoreFile=keystore_path_and_name-DkeyStorePW=user_assigned_password-Dkey=CAPAM_encryption_keykeystore_file: file path and name of the keystore.keystore_path_and_name:Tomcat サーバ上のキーストアの場所と名前。user_assigned_password:キーストアに指定するパスワード。CAPAM_encryption_key:PAMUI で生成され、このコマンドにコピーするキー。例:Windows: configTCF.cmd -Dcommand=createKeyStore -DkeyStoreFile=$CATALINA_HOME\\tcf\\keyStore -DkeyStorePWD=keypwd -Dkey=em6/C5X7GxBZiGt9QF4Z56SBjxOM2jvmwoacGjUAXvk=Unix: configTCF -Dcommand=createKeyStore -DkeyStoreFile=/$CATALINA_HOME/tcf/keyStore -DkeyStorePWD=keypwd -Dkey=em6/C5X7GxBZiGt9QF4Z56SBjxOM2jvmwoacGjUAXvk=この configTCF コマンドが実行されると、ディレクトリCATALINA_HOME/tcf/keyStoreにファイルkeyStoreが作成され、キー パスワード(keypwd)が暗号化されます。パスワードkeypwdの暗号化された値はPIdadRtvyRGPOlCSU7lSxWGgbpnyadRMA5q6cMagx2U=です。ファイルのパスを指定しない場合、キーストア ファイルは、configTCFコマンドを実行したディレクトリに作成されます。
- 暗号化されたキー ストア パスワードをコピーして保存します。
- Tomcat プロセスを実行しているユーザに、キーストア ファイルへの読み取り権限を付与します。
- extension_framework.propertiesファイル(CATALINA_HOME/webapps/capamef/WEB-INF/classes/extension_framework.properties)に移動します。
- このプロパティ ファイルを編集し、以下のエントリを追加します。
- extension.encryption.pwd: configTCF ツールによって生成された新しいパスワードをコピーします。
- extension.keystore.file: キーストアのパスを指定します。
以下の例では、新規プロパティを太字で示しています。これらのプロパティの値は、実行された configTCF コマンドから得られたものです。Connector.name=TargetConnectorRegistryextension.url.prefix=http://127.0.0.1:18080extension.connection.timeout=100000extension.read.timeout=100000extension.encryption.pwd=PIdadRtvyRGPOlCSU7lSxWGgbpnyadRMA5q6cMagx2U=extension.keystore.file=/home/tcf/keyStoreWindows および UNIX プラットフォームでは、プロパティ ファイル内のファイル パスに必ずスラッシュ(/)を使用します。 - プロパティ ファイルを保存します。
- Tomcat サーバを再起動します。
トークンとペイロードを復号化するために、TCF では extension_framework.properties ファイルの
extension.encryption.pwd
値を読み取ります。TCF で、このパスワードを使用してキーストアを開き、暗号化キーを取得します。キー自体が復号化されたら、TCF でそのキーを使用してトークンとペイロードが復号化されます。最後に、TCF はペイロードをカスタム コネクタに送信します。展開のテスト
PAM
とカスタム コネクタ サーバとの間の通信
をテストする方法- UI にログインし、[構成]-[カスタム コネクタ]に移動します。
- [テスト]を選択して、カスタム コネクタ サーバに接続できることを確認します。
接続が機能しない場合は、UI ダッシュボードの上部にあるメッセージも確認できます。
すべてのファイルとサンプル ターゲット コネクタが正しく展開されていることを確認する方法
- グローバル管理者または設定マネージャとしてPAMUI にログインします。
- トップ メニューで、[構成]を選択します。
- 左側のペインに[カスタム コネクタ]オプションが表示されていることを確認します。
- [認証情報]-[ターゲット管理]-[アプリケーション]を選択します。
- [追加]を選択します。
- [アプリケーション タイプ]フィールドで、プルダウン リストに「Echo Target Connector」および「Example Target Connector」が含まれていることを確認します。
- サンプル アプリケーション タイプのいずれかを選択した場合、[Example – Application]など、アプリケーションの新しいタブが表示されます。
- UI から終了します。
- TCF が展開されているカスタム コネクタ サーバにログインします。catalina.outファイルを開き、以下のようなメッセージを見つけます。Registering client of type, targetConnectors, with name: echoTargetConnector
このメッセージが表示されている場合、正常に展開されています。
2 つのフォルダを実稼働システムから削除
実稼働サーバ上にカスタム コネクタを展開した後に、以下のフォルダを削除します。
- sdk フォルダ
- configTCF フォルダ
これらのフォルダは、実稼働環境では使用されません。