カスタム・パスワード暗号化の使用可能化
WebSphere® Application Server 構成に含まれるパスワードは保護する必要があります。サーバー・プロファイルの作成後、パスワード暗号化のためのカスタム・クラスを作成することにより、安全性を高めることができます。
始める前に
このタスクについて
手順
- 各サーバーおよびクライアントのプロセスに以下のシステム・プロパティーを追加します。サーバー・プロセスの場合、各プロセスの server.xml ファイルを更新します。
以下のプロパティーを -D プレフィックスを先頭に付加した genericJvmArgument 引数として追加します。
com.ibm.wsspi.security.crypto.customPasswordEncryptionClass= com.acme.myPasswordEncryptionClass com.ibm.wsspi.security.crypto.customPasswordEncryptionEnabled=true
重要: wsadmin クライアントに関して、wsadmin を接続モードで使用する場合は、AdminTask.setJVMSystemProperties コマンドを使用するかコンソールを使用して、接続されているデプロイメント・マネージャーまたはサーバーでこのプロパティーを設定する必要があります。wsadmin をローカル・モード (conntype=NONE) で使用する場合は、以下のように javaoption コマンド・オプションを使用してこのプロパティーを設定できます。wsadmin -conntype none -lang jython -javaoption -Dcom.ibm.wsspi.security.crypto.customPasswordEncryptionClass=<encryptionClassToUse>
ヒント: カスタム暗号化クラス名が com.ibm.wsspi.security.crypto.CustomPasswordEncryptionImpl の場合、 このクラスがクラスパスにあると自動的に有効になります。カスタム実装にこのパッケージとクラス名がある場合、 以前にリストされているシステム・プロパティーを定義しないでください。このクラスの暗号化を使用不可にするには、 システム・プロパティーに com.ibm.wsspi.security.crypto.customPasswordEncryptionEnabled=false を指定する必要があります。 - 以下のいずれかの方法を選択して、カスタム暗号化実装クラスをロードするように WebSphere Application Server ランタイムを構成します。
- 作成した ${WAS_INSTALL_ROOT}/classes ディレクトリーにある Java™ アーカイブ (JAR) ファイル内にカスタム暗号化クラスを置きます。
トラブルの回避 (Avoid trouble): WebSphere Application Server は、${WAS_INSTALL_ROOT}/classes ディレクトリーを作成しません。classes ディレクトリーについて詳しくは、トピック『プロファイルでのカスタム・クラス用クラス・サブディレクトリーの作成』を参照してください。gotcha
- ${WAS_HOME}/lib/ext ディレクトリーにある Java アーカイブ (JAR) ファイル内にカスタム暗号化クラスを置きます。
- 作成した ${WAS_INSTALL_ROOT}/classes ディレクトリーにある Java™ アーカイブ (JAR) ファイル内にカスタム暗号化クラスを置きます。
- すべてのサーバー・プロセスを再始動します。
- パスワードを含む各構成文書を編集して、構成を保存します。 その後、 すべてのパスワード・フィールドは、WSEncoderDecoder ユーティリティーを介して実行されます。このユーティリティーが有効の場合、プラグ・ポイントが呼び出されます。 構成文書内に {custom:alias} タグが表示されます。パスワードは、暗号化されていても Base64-encoded のままです。タグの違いを除き、これらはエンコードされたパスワードと同様に見えます。
- クライアント・サイド・プロパティー・ファイルに入っているすべてのパスワードを PropsFilePasswordEncoder (.bat または .sh) ユーティリティーを使用して暗号化します。 このユーティリティーでは、
以前にリストされたプロパティーが、新規パスワードをエンコードではなく暗号化するためにスクリプト内でシステム・プロパティーとして定義されていることが必要です。プロパティーを Java コマンド行に追加するには、スクリプトを編集する必要があります。以下に例を示します。
PropsFilePasswordEncoder を使用して実行する必要があるファイルのリストについては、ファイル内のパスワードのエンコードの表 2 を参照してください。%JAVA_EXE% -Dcom.ibm.wsspi.security.crypto.customPasswordEncryptionEnabled=true -Dcom.ibm.wsspi.security.crypto.customPasswordEncryptionClass=mysample.MySampleEncryption -Dcmd.properties.file=%TMPJAVAPROPFILE% "-Dwas.install.root=%WAS_HOME%" com.ibm.ws.bootstrap.WSLauncher com.ibm.ws.security.util.PropFilePasswordEncoder %*
- クライアント Java 仮想マシン (JVM) からパスワードを暗号化解除するには、以前にリストされているプロパティーを各クライアント・ユーティリティーのシステム・プロパティーとして追加します。
- この機能を使用可能化する前に、すべてのノードのクラスパスにカスタム暗号化クラスがあることを確認します。 使用可能化が発生する順序は重要です。新規ノードをパスワード暗号化を含むセルに追加する場合、addNode コマンドの使用の前に新規ノードにカスタム暗号化クラスが含まれている必要があります。以下の WebSphere Application Server Network Deployment 使用可能化シナリオを検討してください。
- StandAloneProfile プロファイルは、デプロイメント・マネージャー・セルへの統合の前に、異なる鍵でパスワードを暗号化しています。このシナリオの場合、 addNode コマンドの実行の前にカスタム・パスワード暗号化をアンインストールして、構成にパスワードの先頭に付加された {xor} タグがあることを確認します。 addNode コマンドの実行前に、 プラグ・ポイントの同じ実装が /classes ディレクトリーに入っている必要があります。 また、統合が完了した後に新規ノードが security.xml ファイルの暗号化されたパスワード・フォーマットを 認識できるように適正な構成プロパティーを設定します。
- StandAloneProfile プロファイルは、デプロイメント・マネージャー・セルへの統合の前にパスワード暗号化を構成しません。addNode コマンドの実行前に、 プラグ・ポイントの同じ実装が /classes ディレクトリーに入っている必要があります。 また、統合が完了した後に新規ノードが security.xml ファイルの暗号化されたパスワード・フォーマットを 認識できるように適正な構成プロパティーを設定します。
- 複数ノードが存在する 1 つのセルでカスタム・パスワード暗号化を使用可能にする場合、正しい構成プロパティーを更新し、カスタム・パスワード暗号化実装クラスをすべてのノードに配置します。セル内のすべてのプロセスを停止し、デプロイメント・マネージャーを始動します。管理コンソールを使用してセキュリティー構成を編集し、これを保管します。security.xml ファイルを参照して、 パスワードが暗号化されていることを検証し、パスワードの先頭に {custom:alias} タグが付加されていることを確認します。
- 各ノードで syncNode コマンドを実行して、それぞれを個別に開始します。ノードの開始に失敗する場合、 各 security.xml ファイル内でカスタム・パスワード暗号化が正しく使用可能化されていること、および実装クラスが各プラットフォームの適切な /classes ディレクトリーに入っていることを確認します。
タスクの結果
次のタスク
サブトピック
カスタム・パスワード暗号化の使用不可化
カスタム・パスワード暗号化が失敗する場合、または必要でなくなった場合、このタスクを実行してカスタム・パスワード暗号化を使用不可にします。
関連概念:


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_enable_custpass_encrypt
ファイル名:tsec_enable_custpass_encrypt.html