1Password SDKを使用してアイテムを管理する
1Passwordマニュアル|1Password SDKを活用して、シークレット参照を通じてコードに安全かつ効率的にシークレットをロードする方法をご紹介します。
Table of Contents
1Password SDKを使用してアイテムを管理する
1Password SDK を使うと、1Password アイテムにSaveされているシークレット値の読み取り、書き込み、更新を行うことができます。始める前に、1Password SDK の使用を開始するための手順に従ってください。
アイテムを管理するときは、保管庫名、アイテム名、セクション名、フィールド名の代わりに一意の識別子 (ID)を使う必要があります。保管庫とアイテムを一覧表示することで ID を取得できます。
サポートされているフィールド タイプに対してアイテム管理操Createを実行できます。
ヒント
プロジェクトですぐに複製してテストできるサンプル コードについては、 1Password Go、JavaScript、またはPython SDK GitHub リポジトリの examples フォルダーを参照してください。
アイテムをCreateする
CreateCreateするアイテムのパラメータを指定し、定義したアイテムをclient.Items.Create関数に渡します。
- Go
次の例では、ユーザー名、パスワード、ワンタイム パスワード、および 1Password が資格情報を自動入力する Web サイトを含むログイン項目をCreateします。
ワンタイム パスワード フィールドの値は、ワンタイム パスワード シークレットまたはotpauth://URI のいずれかになります。この例では、ワンタイム パスワード フィールドはカスタム セクションの下に整理されています。

- JavaScript
次の例では、ユーザー名、パスワード、ワンタイム パスワードを含むログイン項目と、1Password が資格情報を自動入力する Web サイトをCreateします。
ワンタイム パスワード フィールドの値は、ワンタイム パスワード シークレットまたは otpauth:// URI のいずれかです。この例では、ワンタイム パスワード フィールドがカスタム セクションの下に編Createされています。
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するアイテムの種類。サポートされているカテゴリ |
Vault ID | アイテムをCreateする保管庫の ID。 |
Tags | アイテムに追加するタグのリスト。 |
Websites | 1Password が項目を自動入力する Web サイトのオプション リスト。ログインとパスワードの項目でのみ使用できます。 |
カスタム セクション パラメータには次のものが含まれます。
パラメータ | 説明 |
Section ID | セクションの一意の識別子。 |
Section Title | セクションの名前。 |
フィールド パラメータには次のものが含まれます。
パラメータ | 説明 |
ID | フィールドの一意の識別子。ログイン項目usernameなどの項目カテゴリに固有のフィールドの場合は、適切な組み込みフィールドID を使用します。password |
Title | フィールドの名前。 |
Field type | フィールドのタイプ。サポートされているフィールド |
Value | フィールドに格納される値。 |
Field Details | オプション。 |
Section ID | フィールドをカスタム セクションに整理するには、セクションの ID を指定します。オプション。 |
自動入力ウェブサイトパラメータには以下が含まれます:
パラメータ | 説明 |
URL | ウェブサイトの URL。 |
ラベル | ウェブサイトの名前。 |
自動入力の動作 |
1Password がウェブサイトで認証情報を自動入力するタイミング。オプションには次のものがあります:
|
ワンタイムパスワードを取得する
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)
アイテムを更新する
アイテムを更新するには、更新する アイテムを取得し 、変更内容を指定して、更新したアイテムを関数に渡します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されている保管庫内のサービス アカウントの権限を確認してください。
- ①1Password.com のアカウントにサインインします。
- ②サイドバーで開発者ツールを選択します。
- ③サービス アカウントを選択し、Vaults テーブルの Vault の横にRead & Write が表示されていることを確認します。
サービス アカウントに読み取りアクセス権のみがある場合は、読み取り権限と書き込み権限を持つ新しいサービス アカウントをCreateする必要があります。