パスワードリセットリスナー
パスワード リセットはPMPの重要な機能のひとつです。リソース/アカウントのパスワードをPMPからリセットした際に、引き続きいくつかのフォローアップアクションを自動的に実行する必要がある場合があります。パスワード リセット リスナーを使用してこれを実現することができます。
例:
- パスワード リセット直後に、関連するサービスを再起動する。
- PMPでパスワードが変更されたアカウントを使用するWindowsサービスがある場合、リスナーの機能を使用して、Windowsサービスに"保存された資格情報"を変更することが可能。(例:"ログオン"プロパティに入力されている資格情報)
- ネットワーク機器のアカウントをリソース/アカウントとしてPMPに追加した場合、ローカルでパスワードをリセットした後、機器に接続するカスタム スクリプトを実行して機器のパスワードを変更することが可能。
- Windowsスケジュール タスクおよび関連プロセスのパスワードをリセットする。
パスワード リセット リスナーの動作
アカウントのパスワードがPMPレポジトリ上で変更される時はいつでも、スクリプト、もしくは実行ファイルを起動させるよう、PMPで設定することができます。スクリプトや実行ファイルのことを、"パスワード リセット リスナー"と呼びます。パスワード リセット リスナーは、ローカルのパスワードが変更された際だけでなく、リモート パスワード リセットがサポートされていないリソースにおけるパスワードの変更の際にも起動します。パスワード リセット リスナーはリソース種別ごとに設定可能です。ユーザーが定義したリソース種別にも設定できます。つまり、既定でPassword Manager Proがリモートでのパスワードリセットをサポートしていないリソース種別において、パスワードリセットリスナーの仕組みは非常に有用です。
- パスワード リセット リスナーのスクリプトは、OSのコマンド プロンプト(ターミナル画面)から実行されたものと同じように起動します。
- コマンド プロンプトから実行するためにスクリプトが他のプログラムを必要とする場合、そのスクリプトの"プレコマンド"として指定可能です(例: ''cscript cscriptschangepassword.vbs old_password new_password")。
- PMPはスクリプトの実行時にこれらの引数を次の順序で受け渡します:リソース名、DNS名、アカウント名、古いパスワード、新しいパスワード。
- スクリプト実行時に提供される引数も、指定した順序で追加することが可能です。
スクリプトは、Password Manager Proサーバーを実行しているユーザー アカウントと同じ特権で実行されます。任意スクリプトを実行できてしまうことによる潜在的リスクを防ぐために、デュアル コントロール機能が組み込まれています。この機能は、スクリプトがPMP上で実行されるためには2人の管理者によって確認、承認が必要となるものです。管理者がパスワードリセットリスナーを追加する場合、他の管理者によって承認されるまではPassword Manager Pro上で実行できません。パスワードリセットリスナーの情報が管理者によって編集された場合も、同様の処理が行われます。これらの操作は任意の2名の管理者によって実行でき、また、監査されます。
パスワードリセットリスナーは別のスレッドで実行されるため、Password Manager Proのパスワードリセット処理には影響しません。提供されたパスワードリセットリスナーのスクリプトは他の情報と同じデータベースに安全に保管され、Password Manager Proデータベース用として設定されている場合、安全にバックアップされます。
パスワードリセットリスナーを設定するには、
- 管理 >> カスタマイズ >> パスワードリセットリスナーに移動します。
- TUI画面が表示されるので、[リスナー追加]ボタンをクリックします。
- パスワード リセット リスナーのスクリプトは、OSのコマンド プロンプト(ターミナル画面)から実行されたものと同じように起動されます。コマンド プロンプトから実行するためにスクリプトが他のプログラムを必要とする場合、そのスクリプトの"プレコマンド"として指定可能です(例: ''cscript cscriptschangepassword.vbs old_password new_password")。
- 作成するリスナーの名前を入力します。次に、リスナースクリプトを参照して追加します。
- 既定では、リソース名、DNS名、アカウント名、古いパスワード、新しいパスワードのパラメータがスクリプトの引数として受け渡されます。更に引数を引き渡したい場合、[追加パラメータ]のフィールドに入力します。ここに入力した追加のパラメータは、スクリプトの起動時にそのまま受け渡されます。
- また、変更を適用するリソース種別を指定して、承認要求を他の管理者に送信することもできます。
- 必要な詳細を追加したら、ドロップダウンから承認要求を送信する管理者を選択します。選択した管理者に承認要求を示すメールが送信されます。
- 保存をクリックします。
誰がパスワードリセットリスナーを追加できますか?
リスナーは、Password Manager Proの管理者のみが作成できます。さらに、追加されたすべてのリスナーは、任意のスクリプトの呼び出しに伴う潜在的なリスクを防ぐために、第2の管理者によって承認される必要があります。したがって、リスナーが作成され、管理者によって保存されると、リスナーはその承認のために別の管理者に送信されます。承認要求を示すメールが第2の管理者に送信されます。
最近追加されたパスワードリセットリスナーを承認するには、
あなたが管理者であり、別の管理者がリスナーを承認するように要求している場合は、
- 管理 >> カスタマイズ >> パスワードリセットリスナーに移動します。
- 承認が必要なリスナーの横にある[ 承認ステータス ]列の下のリンクをクリックします。
- 承認すると、リスナーが有効になります。
リスナーの作成、編集、削除、および承認イベントはすべて監査されます。
リスナーのカスタマイズ
(Enterprise Editionでのみ利用可能な機能)
Password Manager Proのカスタム リスナー機能を使用して、独自のパスワード リセット リスナーを実装します。カスタム リスナーはPMP上でリスナー スクリプトを実行するのではなく、ユーザー独自のリスナー実装クラスを可能にします。パスワード リセット実行後のフォローアップアクションを行うため、かなり柔軟性のある機能です。
カスタム リスナーの作成方法
カスタム リスナー作成方法の概要:
ステップ1: 実装クラスを作成する
PMPリスナーインターフェースを実装(詳細は後述の参考実装を参照してください。)
ステップ2: PMP上での設定
PMP上で実装クラスのエントリを追加
ステップ3: 実装クラスを .jar としてアーカイブしてPMPに配置
ステップ4: PMPサーバーの再起動
参考実装
ユーザー独自のリスナーの実装の参考です。この実装は、リセット リスナーでPowerShellスクリプトを実行します。
ステップ1:実装クラスを作成する
PMPListenerInterface.javaを実装したクラスを次のように作成します。
public interface PMPListenerInterface {
static final Logger LOG =
Logger.getLogger(PMPListenerInterface.class.getName());
public String
executeListener(Properties resourceProps, Properties accountProps, String listenerFilePath, String oldPassword) throws
Exception;
}
リソースのプロパティ(PMP上のリソースおよびアカウント)が引数として取得されたように、ユーザー独自のクラスの実装が可能です。例えば、"リソース名"が必要は場合、次のように記述します:
resourceProps.get("RESOURCENAME")
次のキーリストを使用し、任意のプロパティ値を取得できます。
リソース プロパティ(resourceProps)
RESOURCENAME - PMP上に追加されたリソース名
IPADDRESS - リソースのDNS名またはIPアドレス
RESOURCEURL -
リソースに設定されたリソースURL
DOMAINNAME - リソース種別がWindowsドメインの場合のドメイン名
SSHPORT -
装置のSSH接続が有効な場合のSSHポート番号
RESOURCEDESC - リソースの説明文
LOCATION - リソースの場所
DEPARTMENT -
リソースが所属する部門
ALL RESOURCE CUSTOM COLUMN NAMES -ラベル名が鍵になります。
アカウント プロパティ(accountProps)
DESCRIPTION - アカウントの説明文
LOGINNAME - PMPに追加されたユーザーアカウントのログイン名
PASSWORD - ユーザーアカウントのパスワード
DOMAINNAME
- 追加されたドメインがアカウントドメインの場合、そのドメイン名
COMPLIANTSTATUS - パスワードがPMPのポリシーに準拠しているか否かのステータス
COMPLIANTREASON
- パスワードがPMPのポリシーに準拠していない場合の理由
EXPIRYSTATUS - アカウントパスワードの有効期限切れステータス
PASSWRDSYNCSTATUS -
パスワードが、リモートリソース上に設定されたパスワードと同期しているか否かのステータス
ALL ACCOUNT CUSTOM COLUMN NAMES - ラベル名が鍵となります。
その他の引数
- listenerFilePath - リスナーとして実行するスクリプト/実行ファイルのパス。ステップ2で、PMP上においてリスナーの設定を行う際、スクリプト/実行ファイルを提供するオプションもあります。
- oldPassword - パスワードをリセットするために、古いパスワードを実装クラスに受け渡す。
PowerShellスクリプト実行のサンプル実装
public class PowerShellListener implements PMPListenerInterface {
public String
executeListener(Properties resourceProps, Properties accountProps, String listenerFilePath,
String oldPassword) throws Exception {
String message = "Executed Successfully";// used for
audit reason
// got the properties
// call the powershell script
}
}
ステップ2:PMP上での設定
PMP上で実装クラスのエントリを追加します。[管理] >> [パスワード リセット リスナー] >> [リスナー追加] を選択し、タブ [カスタム リスナー]をクリックします。そして、[新規追加] をクリックします。次の情報を入力します:
- クラス名 - 既に存在するリスナー実装クラスをリストアップ。
- 新規クラス名 - カスタム リスナーのワークフローを提供する新しい実装クラスの名称。
- 実装クラス - 実装クラスのフルネームとパッケージ情報。例: com.adventnet.passtrix.listener.PowerShellListener
- 説明 - 実装クラスに関する情報。
- リスナー名 - カスタム リスナー スクリプトの名称を適切な拡張子で記述。ここに入力したラベルはコマンドラインから実行されます。
- リスナー スクリプト - リスナー スクリプトをブラウズして指定。実装クラスでリスナーのファイル/スクリプトのパスを提供している場合、あるいはAPIからパスワード リセットを実行する場合、このステップは飛ばしてください。このステップでスクリプトを指定する場合、情報は暗号化された状態でPMPのデータベース上に永続します。スクリプトはランタイムで起動されます。
- リソース種別 - カスタム リスナー スクリプトが適用されるリソース種別を選択。
- 承認要求の送信先 - リスナー スクリプトはPMPサーバー上のユーザー アカウントと同じ権限で動作する。任意のスクリプトを実行できることによる潜在的リスクを防ぐため、デュアル コントロール機能が組み込まれています。この機能は、スクリプトをPMP上で実行するためには2人の管理者による確認、承認が必要となるものです。追加したリスナーは、他の管理者が承認する必要があります。そのため、承認を受けるまでは、作成したリスナーは保留中となります。承認要求を送信する管理者をドロップダウンから選択します。承認リクエストが送信されます。管理者の立場で、他の管理者からリスナーの承認を要求された場合は、[管理] >> [カスタマイズ]を開き、[パスワードリセットリスナー]をクリックします。そして、[承認ステータス]にあるリンクをクリックします。承認されると、リスナーが有効になります。
- [保存]をクリックします。
- リスナー作成と承認のイベントはすべてPMP上で監査されます。
ステップ3:実装クラスを .jar としてアーカイブしてPMPに配置
実装クラスを .jar に変換し、[PMP-Installation Folder]/libディレクトリに配置してください。
ステップ4:PMPサーバーの再起動
上記手順の完了後、実装を有効にするためにPMPを再起動します。