For the complete documentation index, see llms.txt. This page is also available as Markdown.

入力と出力

PAMスクリプトに渡される入力パラメータ

概要

PAMレコードの認証情報のローテーションが成功すると、関連レコード、認証情報、ユーザーに関する情報を含むパラメータとともに、添付されたポストローテーションスクリプトが実行されます。

入力

KeeperゲートウェイでPAMスクリプトが実行され、stdinパラメータを通じてスクリプトへ入力が渡されます。これらのパラメータはBase64エンコードされたJSONオブジェクトとしてスクリプトへパイプされます。

たとえば、Linuxマシン上ではKeeperゲートウェイにより、スクリプトは概ね以下のように実行されます。

history -c && echo "BASE64==......" | /path/to/script.sh

Windowsでは以下のとおりです。

"BASE64==......" | .\script.ps1; Clear-History

このBase64エンコードされたJSONオブジェクトには、以下のキーが含まれます。

キー
説明

providerRecordUid

PAM構成レコードのUID

resourceRecordUid

PAMリソースレコードのUID

userRecordUid

PAMユーザーレコードのUID

newPassword

ユーザー向けに新しく生成されたパスワード

oldPassword

ユーザーの以前のパスワード

user

ユーザーのユーザー名

records

レコードディクショナリのBase64エンコード済みJSON配列

records フィールドに関する追加情報

records キーの値は、レコードディクショナリのBase64エンコード済みJSON配列です。この配列には以下が含まれます。

  • PAM構成情報

  • 関連するPAMマシン、PAMデータベース、PAMディレクトリのレコードデータ

  • ポストローテーションスクリプトのアップロード時に指定された追加レコード

  • ユーザーレコードデータ

各ディクショナリオブジェクトには以下が含まれます。

  • uid - ボルトレコードのUID

  • title - ボルトレコードのタイトル

  • ディクショナリの残りは、レコードデータのキー/値ペア。キーはフィールドのラベル (ラベルがない場合はフィールドタイプ)。同一キーが存在する場合は、キー名に番号が付与される

出力

PAMスクリプトの実行後、実行された各スクリプトに対応する RotationResult インスタンスの配列が返されます。RotationResult クラスには以下の属性があります。

  • uid - スクリプトが添付されたKeeperボルトレコードのUID

  • command - シェルへ発行されたコマンド

  • system - スクリプトの実行先オペレーティングシステム

  • title - Keeperボルトレコードに添付されたスクリプトファイルのタイトル

  • name - Keeperボルトレコードに添付されたスクリプトの名前

  • success - スクリプト実行の成否

    • LinuxおよびmacOS: リターンコード0

    • Windows: Trueステータス

  • stdout - スクリプト実行結果の標準出力

  • stderr - スクリプト実行結果の標準エラー

スクリプト実行の成否は、以下のメソッドでも判定できます。

メソッド
説明

was_failure

ブール値。失敗時 True、成功時 False

was_success

ブール値。成功時 True、失敗時 False

これを利用して、ログ出力をカスタマイズできます。

エラー

RotationResult クラスには、スクリプト実行時のエラーを記録する stderr 属性があります。

注意事項

ポストローテーションスクリプトの結果と情報は RotationResult クラスから取得できますが、スクリプトのエラーと出力は実行シェルの種類によって異なります。スクリプトはユーザー側で制御されるため、Keeperはエラーの定義を把握できず、標準出力も標準エラーもチェックしません。

たとえば、BASHスクリプトに set -e が設定されていない場合、一部の処理が失敗してもスクリプトは続行されます。リターンコード 0 で終了した場合、スクリプトは成功扱いになります。

そのため、スクリプトの出力とエラーの適切な処理は、ユーザー側の責任となります。

最終更新