パスワード変更プラグイン

Password Manager Pro(PMP)は主に、Windowsローカルアカウント、Windowsドメインアカウント、Linux rootアカウントなど、 一般的に使用される様々なリソースタイプに対し、ユーザーによる設定を必要とせず、自動リモートパスワード変更を実現するためのサポートを提供します。 このように、パスワード変更プラグイン機能を使用して、独自の実装クラスを追加、レガシーリソースタイプや社内アプリケーションなど、 Password Manager Proでサポートされていないリソースに対して自動パスワード変更を適用しています。

プラグインを使用すると、レガシーアカウントのアクセス制御を活用して、使用時にパスワードを即座に自動リセットすることも可能です。 このように、これらのアカウントのパスワードは、プラグインを介して使用するたびにリセットされるワンタイムパスワードとして機能します。

1. パスワード変更プラグインはどのように動作しますか?

パスワード変更プラグインとは主に、管理者がPassword Manager Proに手動で追加する必要がある実装クラスです。 プラグインは、Password Manager Proサーバーから呼び出し、リモートリソースに接続して、パスワード変更を実現しています。 パスワード変更プラグインは、ユーザーが定義したタイプのリソースに対して個別の設定が可能です。

パスワード変更プラグインが関連付けらたカスタムリソースタイプに属するリソースパスワード変更をトリガーとし、 PMPはそのプラグインのインターフェイスメソッドを呼び出します。 プラグインが呼び出されると、最初にリモートリソースに接続し、 リソースパスワードを変更しようとします。 プラグインによってリモートパスワード変更が正常に完了すると、 PMPはその後新しいパスワードをリポジトリに更新します。 これに加え、プラグインはリモートリソースのパスワードが、 PMPのリポジトリにローカルに保存されているものと同期しているかどうかを確認するのにも役立ちます。

1.1 どの役割担当者がパスワード変更プラグインを追加できますか?

パスワード変更プラグインは、デフォルトの管理者または カスタム設定で操作カテゴリーで、パスワード変更プラグインを与えられたカスタム役割を持つユーザーのいずれかによって追加できます。 さらに、追加されたすべてのプラグインは、任意のプラグインの呼び出しに関連する潜在的なリスクを防ぐため、2人の管理者に承認される必要があります。

最近追加されたパスワードリセットリスナーの承認:

あなたが管理者で、別の管理者がパスワードリセットプラグイン追加を承認するように要求した場合:

  1. 管理 >> カスタマイズ >> パスワード変更プラグインに進みます。
  2. 承認の状態列の下、承認が必要なプラグインをクリックします。

プラグインの作成、編集、削除、承認のイベントはすべて、将来の参照のために監査されます。

1.2 どのようにパスワード変更プラグインを追加しますか?

手順のサマリー:

  1. 実装クラスを作成
  2. コンパイル
  3. 実装のTips
  4. Password Manager Proのインストールの設定

ステップ1: 実装クラスを作成

RemotePasswordReset Interface を実装してJavaクラスを記述します。

                                   public interface RemotePasswordReset
   {
        public boolean changeRemotePassword(Properties resetProps) throws Exception;
        public String getErrorMessage() throws Exception;
        public boolean verifyRemotePassword(Properties verifyProps) throws Exception;
        public boolean isDeviceAvailable(Properties verifyProps) throws Exception;
  }
                                

実装の説明


// 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 PMP 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 PMP 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 PMP server.    *{@value true} Success case - Allows the operation to proceed.    *{@value false} Failure case - Denies the operation to proceed. **/ 

ステップ 2: コンパイル

 <PMP_HOME>\lib folder.
AdventNetPassTrix.jar;
json_simple-1.1.jar;
For Example,
javac -d . -cp AdventNetPassTrix.jar;json_simple-1.1.jar; JiraServerResetImplementation.java - (For Windows)
javac -d . -cp AdventNetPassTrix.jar:json_simple-1.1.jar;  JiraServerResetImplementation.java - (For Linux)
     

ステップ 3: 実装のヒント

リソース(PMPのリソースとアカウント)のプロパティが引数として取得されるようにクラスを実装できます。 以下の鍵リストから、任意のプロパティ値を取得できます。

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: Configurations in Password Manager Proインストール設定を行う

  1. 最初の手順はPassword Manager Proにパスワード変更プラグインを追加することです。 管理>> カスタマイズ >> パスワード変更プラグイン に進みます。
  2. password-reset-plugin-1
  3. 追加 をクリックします。
  4. ダイアログボックスが開いたら、プラグイン用の名前を入力し、実装クラスの名前を指定します。例えば、 ''com.manageengine.helpdesk.JIRASecretResetPlugin''のような名前になります。
  5. password-reset-plugin-2
  6. プラグインの詳細を追加した後、承認要求を送信するドロップダウンリストから管理者を選択し、保存をクリックします。
  7. 注意: 上記手順で保存をクリックすると、リクエストに関して、選択した管理者にメールが送信されます。 これに加え、あなた以外のすべての管理者にリクエストが通知されます。 管理者は通知をクリックするか、または、管理 >> カスタマイズ >> パスワード変更プラグに進み、プラグイン横の承認ステータス行で承認をすることも可能です。
  8. プラグインが承認されたら、プラグインを使用してパスワード変更を行うリソース種別を選択出来ます。これを行うには、リソースに移動し、上部の リソース種別ボタンをクリックします。 または、管理 >> カスタマイズ >> リソース種別に移動し、新しいリソース種別を追加することも可能です。
  9. リソース種別ページで 追加をクリックし、開いたダイアログボックスの高度な設定タブに切り替えます。
  10. password-reset-plugin-3
  11. 適切な名前を付け、カスタムリソース種別のアイコン(オプション)を設定します。次にパスワード変更プラグインラジオボタンを選択します。
  12. 承認されたすべてのプラグインは、ドロップダウンメニューに表示されるようなリセット方法で利用できます。必要なプラグインを選択し、保存します。
  13. このプラグインは、このカスタムタイプリソースを作成した際や、リソースの特権アカウントのリモートパスワードリセットを設定した際、そしてリセットアクションをトリガーするたびに呼び出されるようになります。

詳細につきましては、Jira ServiceDeskのユーザーアカウントパスワード変更のために作成されたこちらの実装クラスのサンプルをご参照ください。 このコードをパスワード変更プラグインに実装し、Jira ServiceDeskのパスワード変更が可能です。