異なるAPIの構成
パスワードを使用して他のアプリケーションと通信するインフラストラクチャ内のアプリケーションおよびスクリプトの場合、構成ファイルまたはスクリプトにパスワードをハードコーディングする必要がなくなりました。PAM360に安全にクエリを実行して、必要なときにいつでもパスワードを取得できるため、管理者は、多くの場所でパスワードを手動で更新する必要性を心配することなく、定期的なローテーションなどの適切な方法をそのようなパスワードにも自由に適用できます。
- API を構成するための前提条件
- API 管理に含まれる手順のワークフロー
- サポートされる API の種類
- セキュア シェル (SSH) を介したスクリプト用のコマンド ライン インターフェイス (CLI)
- 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仕様があります:
- セキュア シェル (SSH) を介したスクリプト用のコマンド ライン インターフェイス (CLI)
- RESTful API
SSH CLIは、APIを介したPAM360アプリケーションへのアクセスを許可するためPKI認証を使用します。
4.セキュア シェル (SSH) を介したスクリプト用のコマンド ライン インターフェイス (CLI)
SSH 経由のスクリプト用に CLI をセットアップするには、次の手順を実行します:
4.1 PAM360でのAPIユーザーアカウントの作成
これは、アプリケーション間のパスワード管理のためのパスワード管理 API を構成して使用するプロセスの最初の手順です。前述したように、パスワード管理APIのみを使用するユーザーアカウントは、PAM360で作成する必要があります。すべてのAPIユーザーアカウントは単一のエンドポイント (API が使用されるサーバーまたはデスクトップ) に接続する必要があります。これにより、ユーザー アカウントは一意に識別されます (例: user@hostname)
API ユーザー アカウントを作成するには:
- [ユーザー]タブに移動します。
- [ユーザーを追加]をクリックし、ドロップダウンから[APIユーザーを追加]を選択します。
- それぞれのテキストフィールドにユーザー名を入力します。この名前は API ユーザーを識別します。対応する SSL 証明書の[共通名](CN) として同じ名前を使用することが重要です。MSPエディションでは、[共通名](CN)に加えて、証明書内の組織名(O)がPAM360の組織表示名と同じである必要があります。
- APIユーザーがパスワード管理操操作にPAM360にアクセスするホスト名を入力します。内部的には、ユーザー名とホストを組み合わせて、API ユーザーを一意に特定するために使用されます。たとえば、ホスト[test-server]からの[test]という名前のユーザーは、API ユーザーを一意に識別するために[test@test-server]とみなされます。
- [フルネーム]とは、API ユーザーが外部の世界で識別される名前を指します。つまり、レポート、監査証跡、その他のユーザーのアクティビティが追跡される場所です。デフォルトでは、[ユーザー名]と[ホスト名]の組み合わせとサフィックス[API ユーザー]が[フルネーム]として使用されます。上記の例では、[test@test-server - API ユーザー]になります。ただし、別の名前を付けたい場合は、自由に定義できます。
- アクセス スコープを使用して、[システム内のすべてのパスワード]オプションを選択することで、管理者/パスワード管理者/特権管理者をスーパー管理者に変更できます。これで、PAM360ですべてのパスワードに制限なしでアクセスできるようになります。逆に、スーパー管理者は、[所有および共有しているパスワード]オプションを選択することで、以前の役割である管理者/パスワード管理者/特権管理者に変更できます。
- SSH は、上で指定したユーザー名で指定したホストに接続し、ログインします。ユーザーは、公開鍵認証を使用してリモート マシンに対して自分の身元を証明する必要があります。SSH CLIアクセスを利用するには、CLIユーザーのオープン SSH形式の公開鍵を参照して選択します。
- SSH形式の秘密-公開鍵を新たに作成するには、
- コマンド プロンプトを開き、コマンド[ssh-keygen]を実行します。
- デフォルトでは、秘密鍵はid_rsaファイルに保存されています。公開鍵はid_rsa.pubに保存されています。これら 2 つのファイルは、デフォルトでコマンド プロンプトで指定されたディレクトリに保存されます。
- 必要な場合、別の場所に保存することができます。id_rsa.pubをインポートする必要があります。これで、PAM360の次の場所に保存されます:<PMP_HOME>/<user name>/.ssh/authorized_keys]
- セキュリティ層をさらに強化するには、SSHキーにパスフレーズを使用します。パスフレーズを入力して確認すると、そのパスフレーズがキーに追加されます。SSH キーを使用するときは、毎回パスフレーズを入力する必要があります。
- キーを生成したら、公開鍵の場所を指定します。(ユーザー追加 GUI を参照して見つけます)
- 以下のスナップショットは、上記のシーケンスを説明しています:
- 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 を使用してキー ペアを生成する方法を示しています。必要に応じて、他の標準ツールを使用してキーを生成することもできます。
- SSH形式の秘密-公開鍵を新たに作成するには、
4.2 サーバー側の設定とSSHサーバーの起動
PAM360には、SSHサーバーが組み込まれています。デフォルトでは、6622 を占めます。必要に応じて、他の任意のポートで実行するように構成できます。SSHサーバーを起動する必要があります。
SSHサーバーポートを設定して起動するには、
- [管理] >> [構成] >> [パスワード管理 API] に移動します。
- 開いたUIで、左ペインからSSH-CLI を選択します。
- 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 パスワード管理のためにシームレスにセカンダリ サーバーに接続できます。複数ユーザーの場合は、必要なユーザー名を選択し、ユーザーリスト上部の[有効化]をクリックします:
- <PAM360_Primary_Installation_Folder>に進みます。
- [sshd]ディレクトリをコピーし、<PAM360_Secondary_Installation_Folder> に貼り付けます。
重要な注記:新しい API ユーザーを作成するたびに、上記で説明したように sshd フォルダをコピーして貼り付ける必要があります。
前述したように、PAM360にはSSHサーバーが組み込まれています。以下で説明するように、PAM360のセカンダリインストールで開始する必要があります:
PAM360 で高可用性セットアップを構成している場合、プライマリ サーバーがダウンしたときに、アプリケーションは A-to-A パスワード管理のためにシームレスにセカンダリ サーバーに接続できます。複数ユーザーの場合は、必要なユーザー名を選択し、ユーザーリスト上部の[有効化]をクリックします:
- PAM360プライマリサーバーを停止します。
- PAM360セカンダリのWebインターフェイスに接続します。
- [管理] >> [設定] >> [パスワード管理 API] >> [SSH CLI] に移動します。
- 必要に応じて、SSH-CLI サーバー ポートを変更します (デフォルトでは 6622 を占有します)。
- [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を使用してパスワードの取り込みをテストしています
上記の構成が完了すると、高可用性モードでのパスワード アクセスがシームレスになります。ただし、プライマリ サーバーがダウンしている場合は書き込み操作が許可されないため、アプリケーションはパスワードを取得することしかできません。パスワードのリセットやリソース/アカウントの作成を実行することはできません。