インストールリンクを使用するベータ
ユーザーが Stripe App Marketplace の外部でアプリをインストールできるようにします。
インストールリンクを使用すると、Stripe App Marketplace の外部でアプリをインストールできます。特定の導入フローで、アプリケーションから状態を渡し、Stripe アプリのインストールを完了して、アプリケーションまたはサイトにリダイレクトすることができます。
インストールリンクのページ
概要
以下の手順では、ユーザーはインストールリンクを使用してアプリをインストールできます。
- お客様のサイトでは、ユーザーがリンクをクリックすると、Stripe にリダイレクトされ、
app_
が渡されます。id - Stripe で、ユーザーは、適切なアカウントを選択して、アプリをインストールする権限を受け取ります。
- インストールすると、ユーザーはサイトにリダイレクトされ、指定されたユーザーの Stripe アカウントも渡されます。
- これで、アプリは認証済みのアカウントのリクエストを行うことができます。
インストールリンクを作成する
アプリのマニフェストで allowed_
を設定します。これは、ユーザーがアプリをインストールした後にリダイレクトされる URL です。すべてのリダイレクト URL をアプリの設定で指定する必要があります。
allowed_
を設定した後、アプリの新しいバージョンをアップロードします。
{ "id": "com.invoicing.[YOUR_APP]", "version": "1.2.3", "name": "[YOUR APP] Shipment Invoicing", "icon": "./[YOUR_APP]_icon_32.png", "permissions": [], "app_backend": {}, "ui_extension": {}, "allowed_redirect_uris": [ "https://example.com/callback/stripe" ] }
インストールリンクを使用する
テストが完了したら、以下の手順を使用してすべてのユーザーに提供することができます。
allowed_
を定義するアプリの新しいバージョンを公開します。redirect_ uris - 設定タブをクリックします。インストールリンクはここに表示され、コピーすることができます。リンクは次のようになります。
https://marketplace.
stripe. com/apps/install/link/{id}?redirect_ uri=https://example. com - 推奨 CSRF 攻撃を防止するには、推奨の
state
パラメーターを追加して、値として一意のトークンを渡すことができます。Stripe は、お客様のサイトにユーザーをリダイレクトするときに、指定されたstate
を含めます。サイトではstate
パラメーターが変更されていないことを確認できます。 - ユーザーがインストールリンクをクリックすると、Stripe は次のページを開きます。このページでは、アカウントを選択して、アプリの詳細を確認し、インストールを先に進めることができます。
インストールリンクのアカウントの選択
サイトにリダイレクトしています
ユーザーは、アプリのインストール後に、アプリのマニフェストに記載された allowed_
で定義されているリダイレクトと一致する redirect_
URL パラメーターにリダイレクトされます。
インストールの成功
インストールが成功すると、URL に以下が含まれます。
user_
の値。インストールを開始した Stripe ユーザーの ID。id account_
値。貴社のアプリをインストールした Stripe アカウントの ID。id state
値 (指定されている場合)install_
値。これは、上記の値のハッシュであり、アプリの署名シークレットを使用して生成されます。signature - アプリがテスト環境にインストールされた場合、
livemode=false
値がリダイレクト URL に付加されます。
「本番環境のリダイレクトの一例:」
「テスト環境のリダイレクトの一例:」
インストールの失敗
ユーザーがインストールをキャンセルした場合でも、お客様のサイトにリダイレクトされますが、URL にはエラーが含まれます。
これで、ユーザーはアプリに連結されました。stripe_
をデータベースに保存します。これは、ユーザーの Stripe アカウント ID です。この値を Stripe-Account
ヘッダーでリクエストに渡すことで、連結アカウントとして認証します。
install_signature を使用してアプリのインストールを確認する 推奨
アプリのユーザーがリダイレクト URL に入力したアカウントでアプリのインストールを承認されているかを確認することが重要です。install_
が含まれているのはこのためです。このシグネチャーはアプリの署名シークレット、およびインストールを実行した user_
と account_
から生成されます。指定されている場合は渡された state
もこのシグネチャーに含まれます。署名シークレットにアクセスせずにこのシグネチャーを複製することはできず、実行できるのは、Stripe 内部とアプリのバックエンドのみです。これにより、不正行為者がリダイレクト URL を試したり偽装しようとしても、ハッシュを複製することはできません。アプリのシグネチャーを確認することによって、アカウントがアプリのユーザーに関連付けられていることを確信できます。
シグネチャーを確認するには、以下のステップを使用します。
- まだ作成していない場合は、アプリの署名シークレットを作成します。
- アプリのバックエンドを設定して、
install_
を確認します。signature
インストールを確認するバックエンドのサンプル:
The order and naming of the payload fields matter when performing signature verification. The state
precedes the user_
, which precedes the account_
. The resulting object should be { state, user_
.
確認後は、インストールしたアカウントの代理として API コールを実行できます。
認証されたリクエストを行う
サーバー側での API コールでは、プラットフォームユーザーの Stripe アカウント ID (プレフィックスは acct_
) とともに特殊なヘッダー Stripe-Account
を使用することで、連結アカウントとしてリクエストを作成できます。下記は、プラットフォームの API シークレットキーとユーザーのアカウント ID を使用して PaymentIntent を作成する方法を示す例です。
URL に Stripe アカウント ID を含む API リクエストのすべてで、Stripe-Account
ヘッダーによる方法が必要になります。下記は、URL 内のユーザーのアカウント ID を使用してアカウントを取得する方法を示す例です。
こちらで認証されたリクエストを行う方法の例をご覧ください。
URL パラメーターを使用してリンクをカスタマイズする
インストールリンクに追加の URL パラメーターを含めることで、アプリのインストールの動作を変更できます。
サポートされている URL パラメーター
パラメーター | 説明 | |
---|---|---|
redirect_ | ユーザーがアプリをインストールした後にリダイレクトされる URL。指定する場合は、アプリのマニフェストに記載されたカンマ区切りの redirect_ 値のいずれかに正確に一致させる必要があります。一部の中間者攻撃から自社を守るためには、本番環境の redirect_ でセキュリティで保護された HTTPS 接続を使用する必要があります。 | |
state | 推奨 | お客様に返される任意の文字列値。CSRF の対策に推奨されます。 |
state パラメーターを使用して CSRF 攻撃を防止する
クロスサイトリクエストフォージェリ (CSRF) 攻撃を防止するには、state
パラメーターを使用できます。このパラメーターは任意の文字列値を受け入れ、インストーラーからお客様のアプリケーションまたはプラットフォームにリダイレクトされるときにその文字列を変更せずに返します。このパラメーターを使用するには、インストールリンクを使用してインストールを開始するときに、推測できない一意の値を渡します。その値を保存し、後で確認に使います。
ユーザーがアプリケーションをインストールしてお客様のアプリケーションにリダイレクトされたら、指定された state パラメーターの値が当初のインストールリンク内に存在する値と一致するかどうか確認します。この確認プロセスによって、返された stripe_
がインストールを開始したユーザーのものであることを高い信頼性で確認でき、偽造対策になります。
アクセスを取り消す
ユーザーがアカウントからアプリの連結を解除すると、account.
イベントが発生します。Webhook でこのイベントを監視することにより、サーバーで必要なクリーンアップを実行できます。