認証情報

式の中で保存された認証情報を読み取る


保存された認証情報を、名前または正規表現で、フォールバック付きで読み取ります。

fn.fnCredentials('credentialname_or_regex','fallback_credentialname_or_regex')

// Try to use `fnRestBasic` and `fnRestJwtSecure` if possible, this avoids passwords and tokens going over the network.

// output : a credential object with all properties (user, password, host, port)

まず完全一致の名前が試されます。その名前の認証情報がない場合は、名前が正規表現として使われ、その後フォールバックが試されます。

ロールによる制限

ユーザーのロールのいずれかが config.yaml で credentials を列挙している場合、 fn.fnCredentials は、そのようなロールが許可する認証情報だけを 返します。ロールのパターンは、(名前、正規表現、フォールバックのいずれかで) 見つかった認証情報の名前と照合され、 それ以外は拒否されます。このリストを持たないロールは制限せず、管理者が制限されることはありません。

シークレットストアの認証情報

シークレットストア を指定した認証情報は、実行時にそのストアから user と password を 取得します。 fn.fnCredentials('myapp') はそのまま動作します。

認証情報の名前を受け付ける場所であればどこでも ( fnRestBasic、 fnRestJwtSecure、 fnRestAdvanced のヘッダー置換を含む)、 認証情報の行がなくてもシークレットを読み取れます。

fn.fnCredentials('secret:vault:secret/ontap')   // secret:<store>:<reference>
fn.fnCredentials('vault:secret/ontap')          // the store named `vault`

シークレットのキーは、 キー名 で説明しているとおりに対応付けられます。 形式の異なるシークレットは、3 番目の引数に jq 式を指定して整形します。

// secret: { "creds": { "u": "admin", "p": "Netapp12" } }
fn.fnCredentials('vault:secret/weird','','.creds | { user: .u, password: .p }')