パスワード リセット プラグイン
IT環境におけるすべての特権リソースとアカウントを保護することは、不正アクセスやサイバー脅威を防止するための重要なステップです。PAM360は、Windows、Windows Domain、Linux、macOSなど、IT環境で一般的に使用される幅広いリソース種別のリモートパスワードリセットをサポートしています。
しかし、複雑なIT環境では、組織が標準的な認証メカニズムを採用していないカスタムビルド、レガシー、またはプロプラエタリシステムを使用していることが多く、従来の方法によるパスワードリセットのスケジュール設定が困難になる場合があります。このギャップに対処するため、PAM360はパスワード変更プラグインを提供しています。これにより、独自の実装クラスを追加し、PAM360がネイティブでサポートしていないリソース種別に対して自動パスワードリセットを実施することができます。対象となるリソース種別には以下が含まれる場合があります:
- レガシーシステム:非標準の認証方法を使用する古いアプリケーションまたはサーバー。
- 社内アプリケーション:サービスアカウントまたは管理者パスワードの管理が必要なカスタムビルドアプリケーション。
- プロプラエタリデバイス:認証情報を変更するために特定の固有の方法を必要とするハードウェアまたはソフトウェア。
さらに、管理者はレガシーリソース向けのアクセス制御ワークフローを活用し、利用時のパスワード自動リセットを有効化することができます。このヘルプ ドキュメントでは、次のトピックについて詳しく説明します。
- 役割と権限
- パスワード変更プラグインはどのように機能するか?
- カスタム実装クラスの作成
- パスワード変更プラグインの追加
- パスワード変更プラグインの承認
- カスタムリソース種別のリセット方法としてパスワード変更プラグインを関連付ける
1.役割と権限
デフォルトでは、「特権管理者」および「管理者」の役割を持つユーザーは、PAM360においてパスワード変更プラグインの追加、管理、および設定を行うことができます。さらに、PAM360では、管理者が「管理」 >> 「カスタマイズ」 >> 「役割」 >> 「編集」>> 「カスタム設定」内で「パスワード変更プラグインの管理」権限を持つカスタム役割を設定し、パスワード変更プラグインの追加、管理、および承認を行えるようにすることができます。
2.パスワード変更プラグインはどのように機能するか?
パスワード変更プラグインは、主に管理者がPAM360に手動で追加できる実装クラスです。このプラグインはPAM360サーバーから呼び出され、リモートリソースに対してパスワードリセット操作を実行します。パスワード変更プラグインは、カスタムリソース種別に属するリソースに対して個別に設定できます。
パスワード変更プラグインが関連付けられたカスタムリソース種別に属するリソースに対してパスワードリセットがトリガーされると、PAM360はそのプラグインのインターフェースメソッドを呼び出します。呼び出されると、プラグインはまずリモートリソースに接続してパスワードをリセットします。プラグインを使用してパスワードリセットが正常に実行された場合、PAM360はその後、リポジトリ内の新しいパスワードを更新します。このプラグインはリモートリソースのパスワード検証もサポートしており、PAM360のリポジトリにローカルで保存されているパスワードとの同期を確保します。
3.カスタム実装クラスの作成
次の RemotePasswordReset インターフェースを実装して Java クラスを作成します:
public interface RemotePasswordReset { public boolean changeRemotePassword(Properties resetPropsprop) throws Exception; public String getErrorMessage() throws Exception; public boolean verifyRemotePassword(Properties verifyProps) throws Exception; public boolean isDeviceAvailable(Properties verifyProps) throws Exception; public Pattern getDbNamePattern() }
3.1 実装の説明
// // This class provides the methods to implement password reset plugin. You need to implement the interface
public interface RemotePasswordReset
{
/**
* Used to display the error message while doing the password reset and verification operations. The output gets reflected in audit trails.
* @return Error message, if password reset is successful, return null. Otherwise, return a proper error message.
*/
public boolean changeRemotePassword(Properties resetProps) throws Exception;
/** Actual function that will be called whenever "change remote password" functionality is triggered
*@param resetProps will contain all the details regarding the account for which password reset is triggered.
* @return Final output that will be sent to PAM360 server.
* {@value true} Success case - Allows the operation to proceed.
* {@value false} Failure case - Denies the operation to proceed.
**/
public String getErrorMessage() throws Exception;
/*** Used to display the error message while doing the remote password reset and verification operations. The output gets reflected in audit trails.
* Return a proper error message.
*/
public boolean verifyRemotePassword(Properties verifyProps) throws Exception;
/** This function will be called whenever "verify remote password" functionality is triggered.
*@param verifyProps will contain all the details regarding the account for which "verify remote password" was triggered.
*@return Final output that will be sent to PAM360 server.
*{@value true} Success case - Allows the operation to proceed.
*{@value false} Failure case - Denies the operation to proceed.
**/
public boolean isDeviceAvailable(Properties verifyProps) throws Exception; }
/** This function will be called before "verify remote password" function to check the accessibility of the device for which verify password was triggered.
*@param verifyProps will contain all the details regarding the account for which verify remote password was triggered.
*@return Final output that will be sent to PAM360 server.
*{@value true} Success case - Allows the operation to proceed.
*{@value false} Failure case - Denies the operation to proceed.
**/
public Pattern getDbNamePattern();
/** This method is used to validate the database name used for connection in SQL resources when launching a SQL session.
*@return the regular expression to validate the database name
(or)
*@return null if not a SQL resource and no validation needed **/
3.2 コンパイル
コンパイル時には、<PAM360-Installation-Directory>\lib フォルダ内にある以下のjarファイルを使用してください。
- AdventNetPassTrix.jar;
- json_simple-1.1.jar;
例:
- Windows - javac -d .-cp AdventNetPassTrix.jar;json_simple-1.1.jar; JiraServerResetImplementation.java
- Linux - javac -d .-cp AdventNetPassTrix.jar:json_simple-1.1.jar; JiraServerResetImplementation.java
3.3 実装のヒント
必要なリソースおよびアカウントのパラメーターを引数として渡し、クラス内で直接アクセスできるように、実装クラスを設計することができます。
| 引数 | 説明 |
|---|---|
|
resetProps.get("RESOURCEID"); |
リソースIDを表すLongオブジェクトを返します。 |
|
resetProps.get("ACCOUNTID"); |
アカウントIDを表すLongオブジェクトを返します。 |
|
resetProps.get("OLDPASSWORD"); |
アカウントの古いパスワードを含むStringオブジェクトを返します。 |
|
resetProps.get("NEWPASSWORD"); |
アカウントに設定された新しいパスワードを含むStringオブジェクトを返します。 |
|
resetProps.get("RESOURCENAME"); |
リソース名を含むStringオブジェクトを返します。 |
|
resetProps.get("DNSNAME"); |
リソースのDNS名を含むStringオブジェクトを返します。 |
|
resetProps.get("ACCOUNTNAME"); |
アカウント名を含むStringオブジェクトを返します。 |
|
resetProps.get("OSTYPE"); |
リソースのOSタイプを含むStringオブジェクトを返します。 |
|
resetProps.get("NOTES"); |
アカウントの詳細に追加されたメモを含むStringオブジェクトを返します。 |
|
resetProps.get("LOGINNAME"); |
パスワードリセットを開始したユーザーのログイン名を含むStringオブジェクトを返します。 |
|
resetProps.get("IPADDRESS"); |
リソースのIPアドレスを含むStringオブジェクトを返します。 |
|
resetpresetPropsrops.get("RESOURCEDETAILS"); |
リソースのその他すべての詳細を含むResourceDetailsオブジェクトを返します。 |
4.パスワード変更プラグインの追加
PAM360にパスワード変更プラグインを追加するには、次の手順に従ってください。
- 「管理」>>「パスワード管理」>>「パスワード変更プラグイン」>>「追加」に移動します。
- 表示された「パスワード変更プラグインを追加」ページで、以下の詳細を入力します:
- プラグイン名 - このフィールドに追加するプラグインの名前を入力します。
- 実装クラス - このフィールドに実装クラスの名前を指定します。クラス名を指定する際は、パッケージ名も追加してください。例:「com.manageengine.helpdesk.JIRASecretResetPlugin」。
- 承認リクエストの送信先 - ドロップダウンから承認管理者を選択します。選択した管理者に承認リクエストが送信され、承認後にプラグインが追加されます。
- 変更を保存するには、[保存] をクリックします。
- 「保存」をクリックすると、パスワード変更プラグインの追加リクエストに関するメールが選択した管理者に送信されます。さらに、環境内のすべての管理者にリクエストについての通知が送信されます。管理者権限を持つすべてのユーザーがリクエストを承認できます。
5.パスワード変更プラグインの承認
デフォルトでは、管理者タイプのユーザーロールを持つユーザーが、PAM360にパスワード変更プラグインを追加できます。また、管理者が追加したすべてのパスワード変更プラグインは、リセットプラグインで呼び出されるスクリプトまたはプログラムが承認済みかつ必要なものだけであることを確認するために、別の管理者によって承認される必要があります。パスワードリセットリスナーリクエストを承認するには、以下の手順に従ってください:
- 「管理」>>「パスワード管理」>>「パスワード変更プラグイン」に移動します。
- 「パスワード変更プラグイン」ページには、環境内に追加されたすべてのプラグインの一覧が表示されます。
- 承認するプラグインの横にある「承認の状態」コラムの下に表示されている「承認」ボタンをクリックします。
管理者によってリクエストが承認されると、カスタムリソース種別のパスワードをリセットするためのパスワードリセット方法として使用できます。
6.カスタムリソース種別のリセット方法としてパスワード変更プラグインを関連付ける
以下の手順に従って、カスタムリソース種別にパスワード変更プラグインを設定し、リモートパスワードリセットを実行します。
- 「リソース」タブに移動し、上部のパネルにある「リソース種別」ボタンをクリックします。
- 表示された「リソース種別」ページで、目的のカスタムリソース種別の横にある編集アイコンをクリックします。PAM360でカスタムリソース種別を追加するための詳細な手順については、このリンクを参照してください。
- 表示された「リソース種別を編集」ウィンドウで、「高度な設定」タブに切り替え、「パスワード変更プラグイン」ラジオボタンを有効にし、「リソース種別の選択」ドロップダウンフィールドから目的のプラグインを選択します。承認済みのすべてのパスワード変更プラグインが表示されます。
設定されたパスワード変更プラグインは、有効なリモートパスワードリセット設定が存在する場合、パスワードリセットアクションがトリガーされるたびに自動的に呼び出されます。Jira Service Deskのユーザーアカウントパスワードをリセットするために作成されたサンプル実装クラスについては、こちらのリンクを参照してください。このコードをパスワード変更プラグイン内で使用することで、Jira Service Deskアカウントの自動パスワードリセットを有効にすることができます。
注意
ファイルをダウンロードした後、SHA256チェックサム値が以下に示す値と一致することを確認して、ファイルの整合性を検証してください:0bb9455f910d30c532b6f0d0a81e59178486730a81e5119346d75abafe3c8d60

