入力と出力
PAMスクリプトに渡される入力パラメータ
概要
PAMレコードの認証情報のローテーションが成功すると、関連するレコード、認証情報、ユーザーに関する情報を含むパラメータを使用して、添付されたポストローテーションスクリプトが実行されます。
入力
KeeperゲートウェイでPAMスクリプトが実行され、stdinパラメータを介してスクリプトに入力を渡します。これらのパラメータはBase64でエンコードされたJSONオブジェクトに配置され、スクリプトにパイプされます。
たとえば、KeeperゲートウェイではLinuxマシン上で以下のようにスクリプトが実行されます。
ウィンドウズでは以下となります。
この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
- ボルトレコードのUIDtitle
- ボルトレコードのタイトルディクショナリの残り部分には、レコードのデータのキー/値のペアが含まれれ、キーはフィールドのラベルになります。フィールドにラベルが含まれていない場合は、フィールドタイプが使用されます。キーがすでに存在する場合は、キーに番号が追加されます。
出力
PAMスクリプトが実行される際、実行された各スクリプトでRotationResult
のインスタンスを含む配列が返されます。RotationResult
クラスには、以下の属性があります。
uid
- スクリプトが添付されたKeeperボルトのレコードUIDcommand
- シェルに発行されたコマンド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
で終了した場合、スクリプトは成功としてフラグが付けられます。
そのため、スクリプトの出力とエラーを適切な処理は、ユーザーに委ねられます。
最終更新