前提条件
- UCPリソースサーバーを構成し、UCPスコープを追加します。
- UCPリソースサーバーをテナントのデフォルトオーディエンスに設定します。
- 買い物客のアカウントを管理する接続を新規作成するか、既存の接続を使用します。使用できるのは、Auth0のデータベース接続、または既存のIDプロバイダーへのエンタープライズ接続です。エージェントプラットフォームがサードパーティ製アプリケーションの場合は、接続をドメインレベルに昇格する必要があります。
エージェントプラットフォームを登録する
エージェントプラットフォームを、Auth0のアプリケーションとしてモデル化します。ファーストパーティとサードパーティ製アプリケーションのどちらでも構いません。手動で作成するか、エージェントプラットフォームが対応している場合は、そのClient ID Metadata Document (CIMD) を使って作成します。- [Dashboard] > [アプリケーション] > [アプリケーション] に移動し、[Create Application] を選択します。
- エージェントプラットフォームのクライアントの種類に合ったアプリケーションの種類を選択します。機密クライアントの場合は [Regular Web Application] を、パブリッククライアントの場合は [Native] または [Single Page Web Application] を選択します。リダイレクトURIにはエージェントプラットフォームから提供されたものを使用し、機密クライアントの場合は、提供されたクライアント認証情報も使用します。
- Geminiなど、自社が所有していないエージェントプラットフォームの場合は、サードパーティ製アプリケーションを作成します。[This application is owned by a third party. Enable stricter セキュリティ対策] をオンにします。Management APIを使用する場合は、
is_first_partyをfalseに設定し、third_party_security_mode: strictを指定します。
サードパーティ製アプリケーションを登録すると、より厳格なセキュリティ対策が適用されるため、追加の設定が必要です。CIMDを使用して登録したアプリケーションは、自動的にstrictモードのサードパーティ製アプリケーションになります。詳しくは、サードパーティアプリケーションを構成するを参照してください。
エージェントプラットフォームにUCPサーバーの呼び出しを認可する
アプリケーションとUCPリソースサーバーの間にクライアントへの認可を作成し、公開したいUCPスコープを付与します。- [Dashboard] > [アプリケーション] > [APIs] に移動し、UCPリソースサーバーを選択します。
- [Application Access] タブを選択します。
- エージェントプラットフォームのアプリケーションを探して認可し、付与するスコープを選択します。
認可コードフロー
- エージェントプラットフォームが
scopes_supportedメタデータを読み取り、独自の同意画面を表示します。 - エージェントプラットフォームは、
scopeパラメーターを付けて、買い物客をテナントの/authorizeエンドポイントにリダイレクトします。パブリッククライアントの場合は、PKCEコードチャレンジも送信します。 - 買い物客はユニバーサルログインでサインインまたはサインアップします。サードパーティ製アプリケーションの場合は、同意画面でアクセスを承認します。
- Auth0が認可コードを付けてリダイレクトします。
- エージェントプラットフォームは
/oauth/tokenでコードをアクセストークンと交換します。機密クライアントはクライアント認証情報を使って認証し、パブリッククライアントはPKCEコードベリファイアを送信します。
audience パラメーターを送信しないため、Auth0はテナントのデフォルトオーディエンス向けにトークンを発行します。
UCPサーバーを使用してファーストパーティAPIを呼び出す
コマース機能を提供するAPIがすでにあり、それを操作する新しい手段としてUCPを追加する場合は、Auth0でそれぞれを別個のリソースサーバーとしてモデル化します。- UCPリソースサーバー:エージェントプラットフォームが、認可フローで取得したアクセストークンを使用して呼び出します。
- 既存のAPI:UCPサーバーが購入者に代わって呼び出します。
actクレームに記録されます。
OBO token exchange を設定する
標準の OBO 設定手順に従い、受信トークンのオーディエンスには UCP リソースサーバーを指定します。- UCP リソースサーバーに紐づくカスタム API クライアントを作成します。
resource_server_identifierには UCP リソースサーバーの識別子を設定します。 - カスタム API クライアントで On-Behalf-Of トークン交換を有効化します。
- カスタム API クライアントと既存の API の間にユーザー委任型のクライアントへの認可を作成し、UCP サーバーに必要なスコープを付与します。
買い物客のトークンを交換する
UCPサーバーがリクエストを受信したら、アクセストークンを検証してから、既存のAPI用のトークンと交換します。/oauth/tokenエンドポイントにPOSTリクエストを送信してください。
audience には既存のAPIの識別子を設定します。詳細については、「OBO token exchangeを実行する」をお読みください。
リクエストのたびにトークン交換を行うのではなく、交換済みのトークンを有効期限が切れるまでキャッシュしてください。