Keeper表記法

シークレットのフィールドを取得するために使用するクエリ形式

概要

Keeperノーテーションは、KeeperシークレットマネージャーSDKおよび統合機能でKeeperレコードのフィールドを紹介するために使用されます。利用できるさまざまなレコードタイプとフィールド名については、こちらのページをご参照ください。

表記法

keeper://<TITLE/UID>/<type|title|notes>

keeper://<TITLE/UID>/file/<filename|title|fileUID>

keeper://<TITLE/UID>/<field|custom_field>/<label|type>[[predicate1][predicate2]]

表記は4つの部分に分かれています。

  • シークレットレコードのタイトルまたはUID

  • レコードデータのセレクタ。以下の3種類があります。

    • ショートセレクタ: typetitlenotesなど、追加のパラメータなしで使用されるタイプ。

    • ファイルセレクタ: 1つのパラメータ (ファイル名、タイトル、UID) を指定できます。

    • フルセレクタ: フィールドタイプ (fieldcustom_field) を指定し、追加のパラメータを必要とします。

  • フルセレクタのパラメータ フルセレクタで使用されるパラメータは、レコード内の固有のフィールドを選択するフィールドタイプまたはラベルを指定する必要があります。述部はオプションです。

  • 述部は、フィールド値のより詳細なオプションインデックスです。最初の述部は値の配列への数値インデックスで、2番目のインデックスは複合値の場合のプロパティインデックスです (例: .../custom_field/name[1][middle])。

最初の述部は、2番目の述部を使用するために常に必要となります。以下の例のどちらかを使用してください。

  • phone[0][number]: 「phone」配列の最初のレコード (インデックス0) のみを取得します (配列に項目が1つしかない場合でも)。

  • phone[][number]: 「phone」配列のすべてのレコードから「number」を取得し、CSV形式でリストを返します。

述部

述部を使用すると、値にきめ細かくアクセスできます。値は、1つの値の場合もあれば、値の配列の場合もあり、それぞれの値が文字列の場合もあれば、値の連想配列の場合もあります。

配列

述部が定義されていない場合は、1つの値のみが返されます。 戻り値に値の配列が含まれている場合は、最初の値のみが返されます。 数値を指定する述部が定義されている場合は (phone[0]など)、そのインデックスの値が返されます。 インデックスは0から始まります。

値を指定しない述部が定義されている場合は (phone[]など)、配列値が返されます。

サブフィールド

以下のように、一部のフィールドは他のサブフィールドで構成されています。

"fields": [
    { "type": "name", "value": [ 
        {"first:": "John", "last": "Doe"},
        {"first:": "Jane", "last": "Doe"} ]
    },
    { "type": "phone", "value": [
        {"number": "555-5555555", "ext": "55"}, 
        {"number": "777-7777777", "ext": "77"} ]
    }
]

サブフィールドにアクセスするには、フィールド名を英数字の述部として含めます。 たとえば、name[last]は上の例では「Doe」を返し、name[first]は「John」を返します。

混合型

以下のように、配列とサブフィールドを組み合わせた値もあります。

[
    {"number":"555-5555555", "ext":"55"},
    {"number":"777-7777777", "ext":"77"},
    {"number":"888-8888888", "ext": "", "type":"Home"},
    {"number":"999-9999999", "type":"Work"}
]

特定の値を取得するには、最初の数値述部を使用して全体の値を取得できます。例えば、phone[1]は、2番目のphoneの全体の値{"number": "777-7777777", "ext": "77"}を返します。

特定のサブフィールドを取得するには、2つの述部を使用する必要があります。例えば、phone[1][number]は、2番目のphoneのレコードのnumberのみを返します。

名前でレコードを取得

KeeperシークレットマネージャーSDKでは、レコード名でレコードを取得するKeeper表記法をサポートしています。

表記文字のエスケープ

レコードのどこかに「/」「\」「[」「]」が含まれている場合は、その文字をバックスラッシュでエスケープする必要があります。これらの記号は、内部セクションおよびインデックスの区切り文字として表記法で使用され、レコードタイトル、フィールドラベル、ファイル名に含まれる場合はエスケープする必要があります。

例:

タイトル: Twitter Login [Marketing] keeper://Twitter Login \[Marketing\]/field/password ラベルが「/. links」のURLカスタムフィールド keeper://My Slashdot Links/custom_field/\/.links[] (すべてのリンク) keeper://My Slashdot Links/custom_field/\/.links[1] (2番目のリンクのみ) ファイル名: creds[2].crt keeper://My \/.Credentials/file/creds\[2\].crt

名前を使用した環境切替の簡略化

Keeper表記法のレコードタイトル取得機能を使用すると、一度Keeper表記法で記述したクエリを、異なるビルド環境で異なるシークレットマネージャーアプリケーションを活用して再利用することができます。

例:

この例では、2つの共有フォルダを作成しました。1つは開発環境用、もう1つは本番用です。 それぞれのフォルダ内には、同じ名前のレコードがあります。 これらのレコードは同じ名前ですが、格納されているクレデンシャルは異なります。

それぞれの共有フォルダは、異なるシークレットマネージャーアプリケーションに関連付けられます。

関連するシークレットマネージャー統合で、以下のように表記法を使用してクレデンシャルを取得します。 keeper://MySQL Creds/fields/password 開発ビルドで使用される統合では、「Development Environment」フォルダに関連付けられたシークレットマネージャーアプリケーションを使用します。その後、プロダクションビルドを行う際には、関連付けられたシークレットマネージャーアプリケーションを「Production Environment」に変更するだけで、コードやスクリプトの変更は必要ありません。

最終更新