# 1Password SDKのコンセプト

### 1Password SDKのコンセプト <a href="#a6j1vo1a5rs8" id="a6j1vo1a5rs8"></a>

### [認証](https://developer.1password.com/docs/sdks/concepts/#authentication) <a href="#id-13ud6vh1dvn9" id="id-13ud6vh1dvn9"></a>

1Password SDK は現在、 1Password への自動化されたプロセスを認証するように設計された[1Password サービス アカウント](https://developer.1password.com/docs/service-accounts/)による認証をサポートしています。

サービス アカウントがアクセスできる保管庫と各保管庫での権限を選択できるため、プロジェクトで[最小権限の原則に従うことができます。](https://csrc.nist.gov/glossary/term/least_privilege)

### ウェブサイトの自動入力 <a href="#w5663mudja5" id="w5663mudja5"></a>

ログインとパスワード項目の構造Item体にはオプションの Web サイト リストが含まれているため、1Password が資格情報を自動入力する場所を管理できます。自動入力の動作オプションには次のものがあります。

| **自動入力の動作**       | **説明**                                                        |
| ----------------- | ------------------------------------------------------------- |
| AnywhereOnWebsite | デフォルト。1Password は、サブドメインを含む、Web サイトの一部である全てのページで資格情報を自動入力します。 |
| ExactDomain       | 1Password は、ドメイン (ホスト名とポート) が完全に一致する場合にのみ資格情報を自動入力します。        |
| Never             | 1Password はこの Web サイトで資格情報を自動入力することはありません。                    |

### レート制限 <a href="#id-9brwpy2etih" id="id-9brwpy2etih"></a>

1Password サービス アカウントには、時間単位および日単位のレート制限があります。これらは、SDK でサービス アカウントを使う場合にも適用されます。[サービス アカウントのレート制限](https://developer.1password.com/docs/service-accounts/rate-limits)の詳細については、こちらをご覧ください。

### SDKクライアント <a href="#xijdmaezkt1x" id="xijdmaezkt1x"></a>

SDK を初期化するときに、1Password SDK クライアント インスタンスをCreateし、設定パラメータを SDK コアに渡します。同じまたは異なるサービス アカウント トークンを使用して、複数の SDK クライアントを順番にまたは並行してインスタンス化できます。

### 秘密の参照 <a href="#id-3guyrobt6jzd" id="id-3guyrobt6jzd"></a>

1Password SDK を使うと、[シークレット参照 URI を](https://developer.1password.com/docs/cli/secret-reference-syntax/)使用して、コード内のプレーンテキストのシークレットが公開されるリスクを回避できます。シークレット参照は 1Password で行った変更を反映するため、SDK を使用してシークレットを読み込むと最新の値が得られます。

シークレット参照では次の構文を使用します。

op\://\<vault>/\<item>/\[section/]field\[?attribute=\<attribute-value>]

### **State management** <a href="#id-7s2gpu24c61e" id="id-7s2gpu24c61e"></a>

1Password SDK クライアントは、1Password サーバーとの認証済みセッションを設定し、期限が切れるたびに自動的に更新します。そのため、認証キーとセッション キーの管理について心配する必要はありません。

### **サポートされているフィールドタイプ** <a href="#v9gel2rytczo" id="v9gel2rytczo"></a>

1Password SDK は現在、次のフィールド タイプに対する操Createをサポートしています。サポートされているフィールド タイプのみを取得および変更できます。

| **フィールドタイプ**   | **説明**                                                                                                                         |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| Concealed      | パスワード、API キー、クレジットカードの PIN など、1Password がデフォルトで隠す秘密の値。                                                                         |
| Text           | テキスト文字列。                                                                                                                       |
| Totp           | ワンタイムパスワードフィールド。                                                                                                               |
| Url            | 自動入力動作に使用されない Web アドレス。                                                                                                        |
| private key    | SSH鍵の秘密キー。SSH鍵項目に固有です。[シークレット参照](https://developer.1password.com/docs/sdks/load-secrets/)でサポートされます。項目管理操Createではまだサポートされていません。 |
| Phone          | 電話番号。                                                                                                                          |
| CreditCardType | クレジットカードの種類。例えば、Visa、Mastercard、American Express など。                                                                           |

アイテムにサポートされていないフィールド タイプでSaveされた情報が含まれている場合、そのアイテムを更新または削除することはできません。

詳細については、[サポートされている機能](https://developer.1password.com/docs/sdks/functionality/)を参照してください。

### **サポートされているクエリパラメータ** <a href="#s12dhfk2okay" id="s12dhfk2okay"></a>

1Password SDK は、otp(またはtotp)[属性クエリ パラメータ](https://developer.1password.com/docs/cli/secret-reference-syntax#attribute-parameter)を使用して、[Resolve関数](https://developer.1password.com/docs/sdks/load-secrets/)でワンタイム パスワードを取得することをサポートしています。

?attribute=otpワンタイム パスワードがSaveされているフィールドを指すシークレット参照にクエリ パラメータを追加します。例:

op\://dev/gitlab/one-time password?attribute=otp

### 一意の識別子 <a href="#cpg0yvt7kwrc" id="cpg0yvt7kwrc"></a>

一意の識別子 (ID) は、保管庫、アイテム、セクション、フィールドなどの 1Password オブジェクトを識別するために使用できる 26 個の数字と文字の文字列です。ID は、アイテムを別の保管庫に移動した場合にのみ変更されます。

1Password SDK では、アイテム管理操Createを実行するときに 1Password オブジェクトを参照するために、名前ではなく ID を使う必要があります。

保管庫[とアイテムをリストする](https://developer.1password.com/docs/sdks/list-vaults-items/)ことで ID を取得できます。
