1Password SDKを使用してアイテムを管理する

1Passwordマニュアル|1Password SDKを活用して、シークレット参照を通じてコードに安全かつ効率的にシークレットをロードする方法をご紹介します。

1Password SDKを使用してアイテムを管理する

1Password SDK を使うと、1Password アイテムにSaveされているシークレット値の読み取り、書き込み、更新を行うことができます。始める前に、1Password SDK の使用を開始するための手順に従ってください。arrow-up-right

アイテムを管理するときは、保管庫名、アイテム名、セクション名、フィールド名の代わりに一意の識別子 (ID)を使う必要があります。保管庫arrow-up-rightとアイテムを一覧表示するarrow-up-rightことで ID を取得できます。

サポートされているフィールド タイプarrow-up-rightに対してアイテム管理操Createを実行できます。

ヒント

プロジェクトですぐに複製してテストできるサンプル コードについては、 1Password Goarrow-up-rightJavaScriptarrow-up-right、またはPythonarrow-up-right SDK GitHub リポジトリの examples フォルダーを参照してください。

アイテムをCreateする

CreateCreateするアイテムのパラメータを指定し、定義したアイテムをclient.Items.Create関数に渡します。

  • Go

次の例では、ユーザー名、パスワード、ワンタイム パスワード、および 1Password が資格情報を自動入力する Web サイトを含むログイン項目をCreateします。

ワンタイム パスワード フィールドの値は、ワンタイム パスワード シークレットまたはotpauth://URI のarrow-up-rightいずれかになります。この例では、ワンタイム パスワード フィールドはカスタム セクションの下に整理されています。

  • JavaScript

次の例では、ユーザー名、パスワード、ワンタイム パスワードを含むログイン項目と、1Password が資格情報を自動入力する Web サイトをCreateします。

ワンタイム パスワード フィールドの値は、ワンタイム パスワード シークレットまたは otpauth:// URI のいずれかです。この例では、ワンタイム パスワード フィールドがカスタム セクションの下に編Createされています。

// Creates an item

let item = await client.items.create({

title: "My Item",

category: sdk.ItemCategory.Login,

vaultId: "7turaasywpymt3jecxoxk5roli",

fields: [

{

id: "username",

title: "username",

fieldType: sdk.ItemFieldType.Text,

value: "my username",

},

{

id: "password",

title: "password",

fieldType: sdk.ItemFieldType.Concealed,

value: "my secret value",

},

{

id: "onetimepassword",

title: "one-time password",

sectionId: "custom section",

fieldType: sdk.ItemFieldType.Totp,

value:

"otpauth://totp/my-example-otp?secret=jncrjgbdjnrncbjsr&issuer=1Password",

},

],

sections: [

{

id: "custom section",

title: "my section",

},

],

tags: ["test tag 1", "test tag 2"],

websites: [

{

url: "example.com",

label: "url",

autofillBehavior: sdk.AutofillBehavior.AnywhereOnWebsite,

},

],

});

  • Python

次の例では、ユーザー名、パスワード、ワンタイム パスワードを含むログイン項目と、1Password が資格情報を自動入力する Web サイトをCreateします。

ワンタイム パスワード フィールドの値は、ワンタイム パスワード シークレットまたは otpauth:// URI のいずれかです。この例では、ワンタイム パスワード フィールドがカスタム セクションの下に編Createされています。

# Create an Item and add it to your vault.

to_create = ItemCreateParams(

title="MyName",

category="Login",

vault_id="7turaasywpymt3jecxoxk5roli",

fields=[

ItemField(

id="username",

title="username",

field_type="Text",

value="mynameisjeff",

),

ItemField(

id="password",

title="password",

field_type="Concealed",

value="jeff",

),

ItemField(

id="onetimepassword",

title="one-time-password",

field_type="Totp",

section_id="totpsection",

value="otpauth://totp/my-example-otp?secret=jncrjgbdjnrncbjsr&issuer=1Password",

),

],

sections=[

ItemSection(id="", title=""),

ItemSection(id="totpsection", title=""),

],

tags=["test tag 1", "test tag 2"],

websites=[

Website(

label="my custom website",

url="https://example.com",

autofill_behavior="AnywhereOnWebsite",

)

],

)

created_item = await client.items.create(to_create)

アイテムパラメータには以下が含まれます。

パラメータ

意味

Title

アイテムの名前。

Category

Createするアイテムの種類arrow-up-right。サポートされているカテゴリ

Vault ID

アイテムをCreateする保管庫の ID。

Tags

アイテムに追加するタグのリスト。

Websites

1Password が項目を自動入力する Web サイトのオプション リスト。ログインとパスワードの項目でのみ使用できます。

カスタム セクション パラメータには次のものが含まれます。

パラメータ

説明

Section ID

セクションの一意の識別子。

Section Title

セクションの名前。

フィールド パラメータには次のものが含まれます。

パラメータ

説明

ID

フィールドの一意の識別子。ログイン項目usernameなどの項目カテゴリに固有のフィールドの場合は、適切な組み込みフィールドarrow-up-rightID を使用します。password

Title

フィールドの名前。

Field type

フィールドのarrow-up-rightタイプ。サポートされているフィールド

Value

フィールドに格納される値。

Field Details

オプション。

Section ID

フィールドをカスタム セクションに整理するには、セクションの ID を指定します。オプション。

自動入力ウェブサイトパラメータには以下が含まれます:

パラメータ

説明

URL

ウェブサイトの URL。

ラベル

ウェブサイトの名前。

自動入力の動作

1Password がウェブサイトで認証情報を自動入力するタイミング。オプションには次のものがあります:

  • AnywhereOnWebsite: 1Password は、サブドメインを含む、Web サイトの一部である全てのページで資格情報を自動入力します。

  • ExactMatch: 1Password は、ドメイン (ホスト名とポート) が完全に一致する場合にのみ資格情報を自動入力します。

  • Never: 1Password はこの Web サイトで資格情報を自動入力することはありません。

ワンタイムパスワードを取得する

1Password SDK を使うと、フィールドからワンタイム パスワードなどのフィールドにSaveされている値を取得できますtotp。

  • Go

前の手順でCreateしたアイテムからワンタイム パスワードを取得して印刷するには:

  • JavaScript

前の手順でCreateしたアイテムからワンタイム パスワードを取得して印刷するには:

  • Python

前の手順でCreateしたアイテムからワンタイム パスワードを取得して印刷するには:

アイテムを入手する

アイテムを取得するには、取得するアイテムのアイテム ID と保管庫 ID を client.Items.Get 関数に渡します。

  • Go

前の手順でCreateしたアイテムを取得するには:

// Retrieves the newly created item

login, err := client.Items.Get(context.Background(), createdItem.VaultID, createdItem.ID)

if err != nil {

panic(err)

}

  • JavaScript

let retrievedItem = await client.items.get(item.vaultId, item.id);

  • Python

前の手順でCreateしたアイテムを取得するには:

# Retrieve an item from your vault.

item = await client.items.get(created_item.vault_id, created_item.id)

アイテムを更新する

アイテムを更新するには、更新するアイテムを取得しarrow-up-right、変更内容を指定して、更新したアイテムを関数に渡しますclient.Items.Put。

  • Go

  • JavaScript

  • Python

アイテムを削除する

アイテムを削除するには、削除するアイテムのアイテム ID と保管庫 ID を client.Items.Delete 関数に渡します。

  • Go

err := client.Items.Delete(context.Background(), vaultID, itemID)

if err != nil {

panic(err)

}

  • JavaScript

// Deletes an item

await client.items.delete(item.vaultId, item.id);

  • Python

# Delete a item from your vault.

await client.items.delete(created_item.vault_id, updated_item.id)

Troubleshooting

アイテムをCreate、編集、または削除できず、「この引数を実行するための適切な権限がありません」というエラーが表示される場合は、アイテムがSaveされている保管庫内のサービス アカウントの権限を確認してください。

サービス アカウントに読み取りアクセス権のみがある場合は、読み取り権限と書き込み権限を持つ新しいサービス アカウントをCreateするarrow-up-right必要があります。

1Password.com ではサービス アカウントの詳細を公開しています。

詳しく