アプリにシークレット認証情報やトークンを保存する
認証情報などの機密データは、Secret Store API を使用して保存します。
Secret Store API を使用すると、Stripe Apps で使用される永続シークレットの設定、検索、リスト、削除を安全に行うことができます。シークレットと呼ばれる認証情報には、アプリとシークレットを所有するユーザーのみがアクセスできます。
概要![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Secret Store API を使用すると、アプリで以下を実行できます。
- 認証情報を安全に保存し、取得します
- ユーザーは、
stripe.
からサインアウトして、再びサインインした場合でも、サードパーティーへの認証を維持できますcom - UI 拡張機能とバックエンドの間でシークレットを安全に渡します
注意
Stripe では、Secret Store API を使用して機密個人データ、クレジットカード番号などの個人の口座番号、PCI 準拠のその他のデータを格納することを許可していません。
範囲![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
アップロードされたアプリのシークレットにアクセスできるのは、貴社がアップロードした他のアプリのみです。1 つのアカウントで公開できるアプリは 1 つのみのため、公開されたアプリはシークレットを共有できません。サードパーティーアプリによるリクエストが、貴社のアプリのシークレットにアクセスすることは不可能です。
範囲を使用して、特定のシークレットのアクセシビリティーをさらに詳細に指定できます。範囲とは、アクセシビリティーによって特定されるシークレットのコレクションです。
Secret Store API は、以下の範囲タイプをサポートしています。
範囲タイプ | 対象範囲の制限 | 保管できる最大数 | 用途 | アクセスできるユーザー |
---|---|---|---|---|
アカウント範囲 | アプリごとに 1 つの account スコープがあります。例: サードパーティーの API キー | 最大 10 個のシークレット | アプリをインストールする Stripe アカウントのすべてのユーザーに適用されるシークレット | アプリ単位での Stripe アカウントのすべてのダッシュボードユーザーとアプリのバックエンド |
ユーザー範囲 | 各ユーザーは、アプリごとに 1 つの user スコープを持ちます。例: OAuth アクセストークン | 最大 10 個のシークレット | Stripe アカウントの特定のユーザーにのみ適用されるシークレット | アプリ単位での Stripe アカウントの特定のダッシュボードユーザーとアプリのバックエンド |
以下の図は、次の間のシークレットの範囲を示しています。
- Stripe アカウント: 「The Cactus Practice Stripe account (Cactus Practice Stripe アカウント)」
- 同じ Stripe アカウントを共有している 2 人のユーザー: 「User 1」、「User 2」
- Stripe アカウントによってインストールされている 2 つのアプリ: 「Installed app A」、「Installed app B」
account
範囲のシークレット: app A の「Foo API key」、app B の「Bar API key」user
範囲のシークレット: 「OAuth access token (OAuth アクセストークン)」、「OAuth refresh token (OAuth 更新トークン)」
![アカウントのシークレットの関係](https://b.stripecdn.com/docs-statics-srv/assets/secret_scoping_diagram.32c3c7d35e007d261389cf593bec470f.png)
Cactus Practice Stripe アカウントによってインストールされている 2 種類のアプリの範囲が設定されたシークレット。
有効期限![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
将来のある時点でシークレットを無効にする場合は、シークレットを設定する際にオプションの expires_at パラメーターを設定して、有効期限を指します。このパラメーターは Unix タイムスタンプ (Unix エポックから経過した秒数) を使用しています。
expires_
の日付を過ぎると、シークレットは Secret Store API から自動的に削除されます。
有効期限に過去の日付は設定できず、100 年後以降の日付にすることもできません。
シークレットを設定する![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
アプリに
secret_
権限を追加します。write Command Linestripe apps grant permission "secret_write" "Allows storing secrets between page reloads"
Secret Store API で名前と範囲を指定してシークレットを設定します。アプリの UI 拡張機能またはバックエンドでは以下のコードサンプルを使用できます。
詳細については、シークレットの設定に関する API リファレンスのドキュメントをご覧ください。
シークレットを見つける![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Secret Store API で名前と範囲を使用してシークレットを見つけることができます。たとえば、アプリの UI 拡張機能またはバックエンドで以下のコード例を使用します。
詳細については、シークレットを探すをご覧ください。
シークレットを削除する![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Secret Store API で名前と範囲を使用してシークレットを削除するには、アプリの UI 拡張機能またはバックエンドで以下のコードサンプルを使用できます。
詳細については、シークレットを削除するをご覧ください。
シークレットをリストする![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
account
または user
の範囲に最大数のシークレットを保存していて、別のシークレットを追加する場合は、10 個のシークレットのうち少なくとも 1 つを削除する必要があります。削除するシークレットを決定するために、特定の範囲のすべてのシークレットを一覧表示できます。
account
または user
の範囲のシークレットをリストするには、アプリの UI 拡張機能またはバックエンドで以下のコードサンプルを使用できます。
詳細については、シークレットをリストアップするをご覧ください。
サンプルアプリ![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
以下のサンプルアプリは、Secret Store API の使用法を説明しています。