メインコンテンツへスキップ
Auth for UCP機能は早期アクセス段階にあります。この機能を使用することで、OktaのMaster Subscription Agreementにおける該当の無料トライアル条件に同意したものとみなされます。参加をご希望の場合は、Limited Early Access Partnership Programフォームにご記入のうえ、関心をお知らせください。
標準のアカウントリンクは、Geminiなどのエージェントプラットフォームにおける買い物客のセッションを、貴社サイト上のアカウントに結び付けます。買い物客はAuth0のユニバーサルログインからマーチャントプラットフォームにサインイン (またはアカウントを作成) し、エージェントが要求するアクセスを承認します。 その後、Auth0はその買い物客用のアクセストークンをエージェントプラットフォームに発行します。エージェントは、買い物客を貴社のAuth0テナントへリダイレクトする前に、UCPスコープをもとに構成した同意画面を表示します。標準のアカウントリンクは認可コードフローを使用し、パブリッククライアントと機密クライアントの両方に対応しています。パブリッククライアントはPKCEを使用した認可コードフローを使用し、機密クライアントはクライアント認証情報を使って認証します。UCP固有のトークンエンドポイントの動作は必要ありません。

前提条件

エージェントプラットフォームを登録する

エージェントプラットフォームを、Auth0のアプリケーションとしてモデル化します。ファーストパーティとサードパーティ製アプリケーションのどちらでも構いません。手動で作成するか、エージェントプラットフォームが対応している場合は、そのClient ID Metadata Document (CIMD) を使って作成します。
  1. [Dashboard] > [アプリケーション] > [アプリケーション] に移動し、[Create Application] を選択します。
  2. エージェントプラットフォームのクライアントの種類に合ったアプリケーションの種類を選択します。機密クライアントの場合は [Regular Web Application] を、パブリッククライアントの場合は [Native] または [Single Page Web Application] を選択します。リダイレクトURIにはエージェントプラットフォームから提供されたものを使用し、機密クライアントの場合は、提供されたクライアント認証情報も使用します。
  3. 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スコープを付与します。
  1. [Dashboard] > [アプリケーション] > [APIs] に移動し、UCPリソースサーバーを選択します。
  2. [Application Access] タブを選択します。
  3. エージェントプラットフォームのアプリケーションを探して認可し、付与するスコープを選択します。
サードパーティ製アプリケーションの場合、買い物客はユニバーサルログイン時に表示される通常のエンドユーザー向け同意プロンプトでアクセスを承認します。ファーストパーティアプリケーションでは同意プロンプトはスキップされます。

認可コードフロー

  1. エージェントプラットフォームが scopes_supported メタデータを読み取り、独自の同意画面を表示します。
  2. エージェントプラットフォームは、scope パラメーターを付けて、買い物客をテナントの /authorize エンドポイントにリダイレクトします。パブリッククライアントの場合は、PKCEコードチャレンジも送信します。
  3. 買い物客はユニバーサルログインでサインインまたはサインアップします。サードパーティ製アプリケーションの場合は、同意画面でアクセスを承認します。
  4. Auth0が認可コードを付けてリダイレクトします。
  5. エージェントプラットフォームは /oauth/token でコードをアクセストークンと交換します。機密クライアントはクライアント認証情報を使って認証し、パブリッククライアントはPKCEコードベリファイアを送信します。
これで、買い物客のエージェントプラットフォームのセッションがサイト上のアカウントと紐づけられ、エージェントはUCPサーバーを呼び出す際に、その買い物客に代わって操作できるようになります。エージェントプラットフォームは audience パラメーターを送信しないため、Auth0はテナントのデフォルトオーディエンス向けにトークンを発行します。

UCPサーバーを使用してファーストパーティAPIを呼び出す

コマース機能を提供するAPIがすでにあり、それを操作する新しい手段としてUCPを追加する場合は、Auth0でそれぞれを別個のリソースサーバーとしてモデル化します。
  • UCPリソースサーバー:エージェントプラットフォームが、認可フローで取得したアクセストークンを使用して呼び出します。
  • 既存のAPI:UCPサーバーが購入者に代わって呼び出します。
UCPサーバーは、On-Behalf-Of (OBO) トークン交換を使用して、購入者のUCPアクセストークンを既存のAPI向けにスコープされたトークンと交換します。新しいトークンでもサブジェクトは購入者のままとなるため、APIはどの購入者のリクエストであるかを把握できます。また、UCPサーバーはアクターとしてactクレームに記録されます。

OBO token exchange を設定する

標準の OBO 設定手順に従い、受信トークンのオーディエンスには UCP リソースサーバーを指定します。
  1. UCP リソースサーバーに紐づくカスタム API クライアントを作成します。resource_server_identifier には UCP リソースサーバーの識別子を設定します。
  2. カスタム API クライアントで On-Behalf-Of トークン交換を有効化します。
  3. カスタム API クライアントと既存の API の間にユーザー委任型のクライアントへの認可を作成し、UCP サーバーに必要なスコープを付与します。

買い物客のトークンを交換する

UCPサーバーがリクエストを受信したら、アクセストークンを検証してから、既存のAPI用のトークンと交換します。/oauth/tokenエンドポイントにPOSTリクエストを送信してください。
audience には既存のAPIの識別子を設定します。詳細については、「OBO token exchangeを実行する」をお読みください。 リクエストのたびにトークン交換を行うのではなく、交換済みのトークンを有効期限が切れるまでキャッシュしてください。

次のステップ