異なるAPIの構成

パスワードを使用して他のアプリケーションと通信するインフラストラクチャ内のアプリケーションおよびスクリプトの場合、構成ファイルまたはスクリプトにパスワードをハードコーディングする必要がなくなりました。PAM360に安全にクエリを実行して、必要なときにいつでもパスワードを取得できるため、管理者は、多くの場所でパスワードを手動で更新する必要性を心配することなく、定期的なローテーションなどの適切な方法をそのようなパスワードにも自由に適用できます。

このドキュメントでは、次のトピックについて学習します:

  1. API を構成するための前提条件
  2. API 管理に含まれる手順のワークフロー
  3. サポートされる API の種類
  4. セキュア シェル (SSH) を介したスクリプト用のコマンド ライン インターフェイス (CLI)
  5. RESTful API

1.API を構成するための前提条件

以下は、APIを構成し使用する前に確認すべき重要なポイントです:

  • PAM360 APIのみを使用するユーザー アカウントは、PAM360で作成する必要があります。すべての API ユーザーアカウントは単一のエンドポイント (API が使用されるサーバーまたはデスクトップ) に接続する必要があります。そのため、ユーザーアカウントは user@hostname として一意に識別されます。
  • APIユーザーは、SSH CLI,またはRESTful APIのいずれかを使用できます。
  • SSH CLIユーザーは PKI 認証を使用して認証されます。したがって、使用する API の種類に応じて、以下を各ユーザーに提供する必要があります:
    • SSH CLI を使用するための、user@host の秘密キーに対応する OpenSSH 形式の公開鍵。
  • PAM360には、特定のポートで実行するように構成できるSSH サーバーが組み込まれています。
  • APIユーザーが作成され、SSHサーバーが有効になると、PAM360がAPIユーザーにサービスを提供できるようになります。
  • 管理者は、他のユーザーに対して行うのと同じ方法で、API ユーザーにパスワードへのアクセスを提供できます。API ユーザーは、API を介して権限のあるパスワードにのみアクセスできます。

2.API 管理に含まれる手順のワークフロー

次の図は、PAM360のAPI管理に含まれる手順の概要を示しています:

3.サポートされる API の種類

PAM360には、2つのAPI仕様があります:

  1. セキュア シェル (SSH) を介したスクリプト用のコマンド ライン インターフェイス (CLI)
  2. RESTful API

SSH CLIは、APIを介したPAM360アプリケーションへのアクセスを許可するためPKI認証を使用します。

4.セキュア シェル (SSH) を介したスクリプト用のコマンド ライン インターフェイス (CLI)

SSH 経由のスクリプト用に CLI をセットアップするには、次の手順を実行します:

  1. PAM360でのAPIユーザーアカウントの作成。
  2. サーバー側の構成とSSHサーバーの起動。
  3. アプリケーションがPAM360にアクセスできるようにするためのクライアント側の構成。

4.1 PAM360でのAPIユーザーアカウントの作成

これは、アプリケーション間のパスワード管理のためのパスワード管理 API を構成して使用するプロセスの最初の手順です。前述したように、パスワード管理APIのみを使用するユーザーアカウントは、PAM360で作成する必要があります。すべてのAPIユーザーアカウントは単一のエンドポイント (API が使用されるサーバーまたはデスクトップ) に接続する必要があります。これにより、ユーザー アカウントは一意に識別されます (例: user@hostname)

API ユーザー アカウントを作成するには:

    1. [ユーザー]タブに移動します。
    2. [ユーザーを追加]をクリックし、ドロップダウンから[APIユーザーを追加]を選択します。
    3. それぞれのテキストフィールドにユーザー名を入力します。この名前は API ユーザーを識別します。対応する SSL 証明書の[共通名](CN) として同じ名前を使用することが重要です。MSPエディションでは、[共通名](CN)に加えて、証明書内の組織名(O)がPAM360の組織表示名と同じである必要があります。
    4. APIユーザーがパスワード管理操操作にPAM360にアクセスするホスト名を入力します。内部的には、ユーザー名とホストを組み合わせて、API ユーザーを一意に特定するために使用されます。たとえば、ホスト[test-server]からの[test]という名前のユーザーは、API ユーザーを一意に識別するために[test@test-server]とみなされます。
    5. [フルネーム]とは、API ユーザーが外部の世界で識別される名前を指します。つまり、レポート、監査証跡、その他のユーザーのアクティビティが追跡される場所です。デフォルトでは、[ユーザー名]と[ホスト名]の組み合わせとサフィックス[API ユーザー]が[フルネーム]として使用されます。上記の例では、[test@test-server - API ユーザー]になります。ただし、別の名前を付けたい場合は、自由に定義できます。
    6. アクセス スコープを使用して、[システム内のすべてのパスワード]オプションを選択することで、管理者/パスワード管理者/特権管理者をスーパー管理者に変更できます。これで、PAM360ですべてのパスワードに制限なしでアクセスできるようになります。逆に、スーパー管理者は、[所有および共有しているパスワード]オプションを選択することで、以前の役割である管理者/パスワード管理者/特権管理者に変更できます。
    7. SSH は、上で指定したユーザー名で指定したホストに接続し、ログインします。ユーザーは、公開鍵認証を使用してリモート マシンに対して自分の身元を証明する必要があります。SSH CLIアクセスを利用するには、CLIユーザーのオープン SSH形式の公開鍵を参照して選択します。
      1. SSH形式の秘密-公開鍵を新たに作成するには、
        1. コマンド プロンプトを開き、コマンド[ssh-keygen]を実行します。
        2. デフォルトでは、秘密鍵はid_rsaファイルに保存されています。公開鍵はid_rsa.pubに保存されています。これら 2 つのファイルは、デフォルトでコマンド プロンプトで指定されたディレクトリに保存されます。
        3. 必要な場合、別の場所に保存することができます。id_rsa.pubをインポートする必要があります。これで、PAM360の次の場所に保存されます:<PMP_HOME>/<user name>/.ssh/authorized_keys]
        4. セキュリティ層をさらに強化するには、SSHキーにパスフレーズを使用します。パスフレーズを入力して確認すると、そのパスフレーズがキーに追加されます。SSH キーを使用するときは、毎回パスフレーズを入力する必要があります。
        5. キーを生成したら、公開鍵の場所を指定します。(ユーザー追加 GUI を参照して見つけます)
        6. 以下のスナップショットは、上記のシーケンスを説明しています:
          • Generating public/private rsa key pair.
          • Enter file in which to save the key (/home/xyz/.ssh/identity): /home/xyz/.ssh/pam360_identity
          • Enter passphrase (empty for no passphrase): *enter your passphrase here*
          • Enter same passphrase again: *repeat your passphrase*
          • Your identification has been saved in /home/xyz/.ssh/pam360_identity.
          • Your public key has been saved in /home/xyz/.ssh/pam360_identity.pub.
          • The key fingerprint is:

            22:71:3c:ff:7e:df:59:ad:72:47:d1:16:bd:e2:e9:2d xyz@xyz

        上の例は、オープン SSH を使用してキー ペアを生成する方法を示しています。必要に応じて、他の標準ツールを使用してキーを生成することもできます。

      • 注記:API ユーザーの作成は、アプリケーションがパスワードを取得するために PAM360 に接続するホストに固有です。つまり、ユーザーとホストは互いに結びついています。複数のホストからパスワード管理 API を利用する場合は、ホストの数と同じ数の API ユーザーを作成する必要があります。逆に、単一ホスト上に多くのユーザーを配置したい場合は、やはり必要な数の API ユーザーを作成する必要があります。

4.2 サーバー側の設定とSSHサーバーの起動

PAM360には、SSHサーバーが組み込まれています。デフォルトでは、6622 を占めます。必要に応じて、他の任意のポートで実行するように構成できます。SSHサーバーを起動する必要があります。

SSHサーバーポートを設定して起動するには、

  1. [管理] >> [構成] >> [パスワード管理 API] に移動します。
  2. 開いたUIで、左ペインからSSH-CLI を選択します。
  3. SSH-CLIサーバーポートを編集し、[SSHDサーバーを起動]をクリックします。

4.3 アプリケーションがPAM360にアクセスできるようにするためのクライアント側の構成

APIユーザーを作成し、PAM360でSSHサーバーも開始すると、APIユーザーは自分に割り当てられたパスワードを使用してPAM360にアクセスできるようになります。PAM360の所有権と共有メカニズムはAPIユーザーの場合にも適用されることに注意してください。つまり、API ユーザーは、自分に割り当てられたパスワードのみにアクセスできるようになります。パスワード管理 API を使用すると、ユーザーはアカウントを取得、変更、作成できます。

クライアント側のパスワード アクセス ワークフローはどのように機能しますか?

各ユーザーは、認証のために SSH 公開鍵と秘密鍵のペアを作成します。サーバーは公開鍵を知っており、ユーザーは秘密キーを知っています。[<PMP_HOME>/<user name>/.ssh/authorized_keys]のファイルには、ログインが許可されている公開鍵が一覧表示されます。ユーザーがログインすると、SSHプログラムは認証に使用する鍵のペアをサーバーに伝えます。サーバーは、このキーが許可されているかどうかを確認し、許可されている場合は、ユーザーの公開鍵で暗号化されたチャレンジ (乱数) をユーザーに送信します。チャレンジは、適切な秘密キーを使用してのみ復号化できます。次に、ユーザーのクライアントは秘密キーを使用してチャレンジを復号化し、ユーザーが秘密キーを知っていることを証明しますが、サーバーには公開しません。認証が成功すると、ユーザーはパスワード管理操作を実行できるようになります。

APIユーザーによるPAM360への接続による各種パスワード操作

上で説明したように、APIユーザーは、機能するように構成されているホストからのみ、パスワードの取り込みやその他の操作のためにPAM360にアクセスできます。つまり、ユーザーの作成時に、APIユーザーがパスワード管理操作のためにPAM360にアクセスするホストの名前を入力することになります。APIユーザーは、指定されたホストからのみPAM360にアクセスできます。

パスワードを取得したり、その他のパスワード管理操作を実行するには、ホストで実行されているアプリケーションが、PAM360で実行されているSSHサーバーにアクセスする必要があります。次に、SSHサーバーは、パスワード操作のためにPAM360に接続します。

SSHサーバーには、標準の openSSH コマンドを使用してアクセスできます。以下で説明するように、必要なパスワード管理操作を実行するには、コマンドとともに、PAM360固有のコマンドを追加する必要があります。

ssh -q [-p port] user@hostname [-i private_key] [PAM360固有のコマンド]

例:

ssh -q -p 6622 test@test-server -i /home/guest/id_rsa [PAM360固有のコマンド]

MSPエディションの場合は、次のコマンドを使用します:

ssh -q [-p port] ORGNAME/user@hostname [-i private_key] [PAM360固有のコマンド]

例:

ssh -q -p 6622 MANAGEENGINE/test@test-server -i /home/guest/id_rsa [PAM360固有のコマンド]

4.3.1 アプリケーション・ツー・アプリケーションのパスワード管理のためにアプリケーションに含めるPAM360固有のコマンド:

A-to-A パスワードを自動管理するには、アプリケーションで API を呼び出す特定のコマンドを使用する必要があります。次の操作には give コマンドを使用します:

1.パスワード取得用

ssh -q [-p port] user@hostname [-i private_key] RETRIEVE --resource=<PAM360内で表示されるリソース名> --account=<PAM360内で表示されるアカウント名> --reason=<パスワードアクセスの理由> --ticketid=<パスワードアクセス用のチケットID>

例:

ssh -q -p 6622 test@test-server -i /home/guest/id_rsa RETRIEVE --resource=test-server --account=root --reason=SSHクライアントAPIを使用してパスワードの取り込みをテストしています --ticketid=7

2.パスワードリセットの場合

2.1 ローカルパスワードリセットの場合:

ssh -q [-p port] user@hostname [-i private_key] RESET_LOCAL --resource=<PMP内で表示されるリソース名> --account=<PMP内で表示されるアカウント名> --newpassword=<新しいパスワード> --reason=<パスワードリセットの理由> --ticketid=<パスワードリセット用チケットID>

例:

ssh -q -p 6622 test@test-server -i /home/guest/id_rsa RESET_LOCAL --resource=test-server --account=root--newpassword=rootnew --reason=パスワードのローテーション --ticketid=7

2.2 リモートパスワードリセットの場合:

ssh -q [-p port] user@hostname [-i private_key] RESET_REMOTE --resource=<PMP内で表示されるリソース名> --account=<PMP内で表示されるアカウント名> --newpassword=<新しいパスワード> --reason=<パスワードリセットの理由> --ticketid=<パスワードリセット用チケットID>

例:

ssh -q -p 6622 test@test-server -i /home/guest/id_rsa RESET_REMOTE --resource=test-server --account=root --newpassword=rootnew --reason=パスワードのローテーション --ticketid=7

3.新しいリソースとユーザーアカウントを作成する場合

ssh -q [-p port] user@hostname [-i private_key] CREATE --resource=<作成される RESOURCE NAME> --account=<作成される ACCOUNT NAME>--newpassword=<追加されるアカウントのパスワード> --resourcetype=<追加されるリソースの種類> --notes=<参考ノート>

例:

ssh -q -p 6622 test@test-server -i /home/guest/id_rsa CREATE --resource=testresource --account=testaccount --newpassword=test password--resourcetype=Windows --notes=新しいリソースが追加されました

詳細については、このドキュメントを参照してください。

トラブルシューティングのヒント

1.上記のコマンドを実行しても、PAM360から応答がありませんでした。

上記のコマンドの -q オプションを削除します。画面に警告/エラー メッセージが表示されます。

例えば、パスワードを取得するには、次のようにコマンドを実行します:

ssh [-p port] user@hostname [-i private_key] RETRIEVE --resource=<PAM360にあるリソース名> --account=<PAM360にあるアカウント名> --reason=≪パスワードにアクセスする理由>

画面に表示されたメッセージを添えて、PAM360サポートにお問い合わせください。

2.高可用性モードでPAM360セカンダリ サーバーからパスワードを取得しようとしましたが、要求されたパスワードを取得できませんでした

新しい API ユーザーを追加するごとに、<PAM360_Primary_installation_Folder> で使用可能な sshd フォルダ全体をコピーし、<PAM360_Secondary_installation_Folder> に貼り付ける必要があります。これが完了すると、PAMセカンダリからパスワードにアクセスできるようになります。

4.3.2 A-to-A パスワード管理のためのPAM360セカンダリへのアクセス (HAモード - SSH CLI)

PAM360 で高可用性セットアップを構成している場合、プライマリ サーバーがダウンしたときに、アプリケーションは A-to-A パスワード管理のためにシームレスにセカンダリ サーバーに接続できます。複数ユーザーの場合は、必要なユーザー名を選択し、ユーザーリスト上部の[有効化]をクリックします:

  1. <PAM360_Primary_Installation_Folder>に進みます。
  2. [sshd]ディレクトリをコピーし、<PAM360_Secondary_Installation_Folder> に貼り付けます。

重要な注記:新しい API ユーザーを作成するたびに、上記で説明したように sshd フォルダをコピーして貼り付ける必要があります。

前述したように、PAM360にはSSHサーバーが組み込まれています。以下で説明するように、PAM360のセカンダリインストールで開始する必要があります:

PAM360 で高可用性セットアップを構成している場合、プライマリ サーバーがダウンしたときに、アプリケーションは A-to-A パスワード管理のためにシームレスにセカンダリ サーバーに接続できます。複数ユーザーの場合は、必要なユーザー名を選択し、ユーザーリスト上部の[有効化]をクリックします:

    1. PAM360プライマリサーバーを停止します。
    2. PAM360セカンダリのWebインターフェイスに接続します。
    3. [管理] >> [設定] >> [パスワード管理 API] >> [SSH CLI] に移動します。
    4. 必要に応じて、SSH-CLI サーバー ポートを変更します (デフォルトでは 6622 を占有します)。
    5. [SSHD サーバーの開始]をクリックします。

4.3.3 PAM360セカンダリサーバーにアクセスするコマンド

A-to-A パスワードを自動管理するには、アプリケーションで次のコマンドを使用する必要があります:

1.パスワード取得の場合

ssh -q [-p port] user@PAM360_Secondary_hostname [-i private_key] RETRIEVE --resource=<PAM360にあるリソース名> --account=<PAM360にあるアカウント名> --reason=<パスワードにアクセスする理由>

例:

ssh -q -p 6622 test@test-secondary-server -i /home/guest/id_rsa RETRIEVE --resource=test-server --account=root --reason=SSHクライアントAPIを使用してパスワードの取り込みをテストしています

上記の構成が完了すると、高可用性モードでのパスワード アクセスがシームレスになります。ただし、プライマリ サーバーがダウンしている場合は書き込み操作が許可されないため、アプリケーションはパスワードを取得することしかできません。パスワードのリセットやリソース/アカウントの作成を実行することはできません。