Shopper Login (SLAS) の概要
Shopper Login and API Access Service (SLAS) を使用すると、B2C Commerce API と Open Commerce API (OCAPI) の Shopper API にセキュアにアクセスできます。
SLAS を設定するための管理ツールとして、SLAS Admin API と SLAS Admin UI の 2 つが用意されています。どちらの管理ツールでもアクセスコントロールに Account Manager を使用し、SLAS Organization Administrator (SLAS 組織管理者) の役割をもち、B2C Commerce インスタンスに正しいフィルターが設定されている必要があります。
SLAS Admin UI にアクセスするには、次の URL の {{short-code}}
を、自社の B2C Commerce インスタンスで使用されているショートコードに置き換えます。
ショートコードの詳細については、ベース URL とリクエストの作成ガイドを参照してください。
高ボリュームの状況で SLAS を使用する場合のアドバイスについては、Salesforce デベロッパーブログの Shopper Login API: Techniques and Tricks to Get the Most Out of High-Volume Holidays (Shopper Login API: 高ボリュームのホリデー期間を最大限に活用するためのテクニックとコツ) の記事を参照してください。
認可されたリクエストを SLAS に対して行うには、各アプリケーションを 1 つまたは複数の SLAS クライアントと関連付ける必要があります。各 SLAS クライアントは 1 つの SLAS テナントに登録され、各 SLAS テナントは 1 つの B2C Commerce インスタンスに関連付けられます。
SLAS クライアントは、パブリックまたはプライベートの 2 つのタイプのいずれかを使用して作成できます。アプリケーションに適切なクライアントタイプを選択するために最も重要なことは、そのクライアントがクライアントシークレットを安全に保存できると信頼できるかどうかです。クライアントを信頼できる場合はプライベートクライアントを使用し、信頼できない場合はパブリッククライアントを使用してください。
たとえば、SLAS と直接通信するモバイルアプリは、買い物客のデバイスにクライアントシークレットを保存する必要がありますが、これは安全ではありません。このため、ほとんどのモバイルアプリはパブリッククライアントを使用します。それに対し、BFF (Backend for Frontend) システムを備えたモバイルアプリは、買い物客のデバイスがアクセスできない安全な場所にクライアントシークレットを保存 できます。ですから、BFF システムを備えたアプリはプライベートクライアントを使用できます。
次の表は、最も一般的なタイプのアプリケーションで使用されるクライアントタイプをまとめたものです。
アプリケーション | クライアントタイプ |
---|---|
シングルページの Web アプリ (PWA Kit のストアフロントなど) | パブリッククライアント |
従来のフルスタック Web アプリ | プライベートクライアント |
モバイルアプリ (Android または iOS) | パブリッククライアント |
BFF (Backend for Frontend) 方式を備えたあらゆる種類のアプリ | プライベートクライアント |
SLAS API は、OAuth 2.1 規格で定義された付与タイプに基づいています。
アクセストークンリクエストに使用される付与タイプは、SLAS クライアントのタイプ (パブリックまたはプライベート) と買い物客の認証メソッドに依存します。
ほとんどの SLAS クライアントは getAccessToken エンドポイントでアクセストークンをリクエストし、ShopperToken を受け取ります。
信頼できるシステムは getTrustedSystemAccessToken エンドポイントを使用し、ShopperTsob トークン を受け取ります。このトークンは、信頼できるシステムがユーザーの代理でリクエストを行えるように、追加の機能を備えています。
買い物客の代理を務めるエージェントは、getTrustedAgentAccessTokenエンドポイントを使用して、ShopperTokenTaob トークンを受け取ります。
B2C Commerce セッションの SLAS トークンを取得するには、getSessionBridgeAccessTokenエンドポイントを使用します。
次の表は、SLAS クライアントとユーザー認証メソッドのタイプごとに使用されるさまざまな付与タイプとトークンタイプをまとめたものです。
SLAS クライアント | 認証方法 | メソッド付与タイプ | トークン | |
---|---|---|---|---|
公開 | なし (ゲストユーザー) | getAccessToken | authorization_code_pkce | 買い物客 |
公開 | 登録済みユーザー (フェデレーションログイン) | getAccessToken | authorization_code_pkce | 買い物客 |
公開 | 登録済みユーザー (B2C Commerce ログイン) | getAccessToken | authorization_code_pkce | 買い物客 |
非公開 | なし (ゲストユーザー) | getAccessToken | client_credentials | 買い物客 |
非公開 | 登録済みユーザー (フェデレーションログイン) | getAccessToken | authorization_code | 買い物客 |
非公開 | 登録済みユーザー (B2C Commerce ログイン) | getAccessToken | authorization_code | 買い物客 |
非公開 | 登録済みユーザー (B2C Commerce ログイン) | getAccessToken | authorization_code_pkce | 買い物客 |
(TSOB) ユーザー | getTrustedSystemAccessToken | client_credentials ShopperTsob の代理のプライベート | 信頼済みシステム | |
公開 | セッションブリッジ (ゲストユーザー) | getSessionBridgeAccessToken | session_bridge | ShopperSesb |
公開 | セッションブリッジ (B2C Commerce ログイン) | getSessionBridgeAccessToken ShopperSesb | session_bridge | |
Private | Session Bridge (ゲストユーザー) | getSessionBridgeAccessToken | client_credentials | ShopperSesb |
非公開 | セッションブリッジ (B2C Commerce ログイン) | getSessionBridgeAccessToken ShopperSesb | client_credentials | |
(TAOB) | getTrustedAgentAccessToken ShopperTaob | client_credentials の代理のプライベート | な信頼できるエージェント |
ShopperToken をリクエストするには、getAccessToken のエンドポイントを使用します。ShopperTokenTsob をリクエストするには、getTrustedSystemAccessToken のエンドポイントを使用します。
両エンドポイントは、認証に成功すると以下を返します。
- JSON Web Token (JWT) 形式のアクセストークン
customer_id
文字列- 一意の買い物客識別子 (USID)
- リフレッシュトークン
アクセストークンは 30 分間有効です。このトークンは、発行元の SLAS API クライアントの範囲の対象となる B2C Commerce API エンドポイントにリクエストを行うときに使用できます。また、このトークンで、SLAS API クライアント ID が許可されている Open Commerce API エンドポイントをリクエストできます。発行されたインスタンスおよびサイトから API をリクエストする目的でのみ使用可能です。
リフレッシュトークンを使用して、新しいアクセストークンをリクエストできます。Production (本番) テナントの場合、リフレッシュトークンは、登録済みの買い物客においては 90 日間、ゲストにおいては 30 日間有効です。本番以外のテナントの場合、リフレッシュトークンは 9 日間有効です。リフレッシュトークンを使用すると、その後発行されるトークンの有効期間は、その有効期間分延長されます。
パブリッククライアントを使用して発行されたリフレッシュトークンは、1 回限り使用できます。リフレッシュトークンが使用されると、レスポンスで新しいトークンが返されます。プライベートクライアントを使用して発行されたリフレッシュトークンは、複数回使用できる場合があります。同じリフレッシュトークンは、レスポンスに返されます。
- 買い物客がログイン ID またはパスワードを変更すると、パスワードの変更前に付与されていたアクセストークンは取り消され、B2C Commerce API と OCAPI の両方によって拒否されます。買い物客に、新しい認証情報を使用して再度ログインするように促します。トークンの失効は完了するまでに数分かかり、既定では運用環境でのみ有効であることに注意してください。サンドボックスなどのその他の環境では、トークンの失効を有効にする必要があります。
- SLAS から返される JWT には多数のクレームが含まれています。クレームを調査するコードを作成する場合は、順序に依存しないようにしてください。クレームが追加される可能性があるためです。
- アクセストークンを使用すると、買い物客に代わって操作を行えるようになります。アカウントに紐づく E メールの更新など、実行するアクションは機密性の高いものになる可能性があります。買い物客を保護するために必要な予防措置を常に講じてください。
SLAS の今後の変更ではchannel_id``grant_type``client_credentials
、 別の変更を有効にすると、あるサイト用に作成された SLAS 買い物客トークンが、別のサイトに対して SCAPI または OCAPI 呼び出しを行うために使用されることがなくなります。
トークンを取得するときに常にパラメーターを指定しますchannel_id
。
デコードされたアクセストークンのトークンの詳細 (トークンの有効期間や承認されたスコープなど) を表示できます。例:
jku
: これは bodyiss
クレームと同じです。kid
: トークン署名の検証に使用する公開鍵の鍵 ID。getJwksUriエンドポイントを使用してキーを取得します。
scp
:トークン内のスコープ。特定のスコープが要求でない限り、これは SLAS クライアントのスコープになります。sub
:、tenant_id、および usid が含まれます client_id。dnt
:買い物客の追跡設定。詳細については、買い物客の追跡環境設定の管理」を参照してください。isb
オリジン、買い物客情報、ゲスト ID、登録済み買い物客 ID、トークンタイプ、チャネル ID が含まれます。
買い物客の追跡環境設定をアプリケーションに組み込むことができます。を使用して SLAS トークンgetAccessToken
を取得する場合は、追跡環境設定を指定します。追跡環境設定は、そのトークンを使用するすべてのリクエストで考慮されます。B2C Commerce 24.4 以降。リリースの場合、Shopper Login API には、セッションに設定するDo Not Track
ブール値dnt
パラメーターが含まれます。定義されていない場合、dnt
値はデフォルトでfalse
になります。
詳細については、次を参照してください。買い物客の追跡環境設定を管理します。
SLAS でサポートされるレート制限は次のとおりです。
- Production (本番) インスタンスでは、1 テナントにつき 24,000 RPM (Requests Per Minute: 1 分あたりのリクエスト数)。
- Production (本番) 以外のインスタンスでは、1 テナントにつき 500 RPM。
- getJwksUri と getWellknownOpenidConfiguration のエンドポイントでは 25 RPM。
レート制限に達すると、SLAS は Retry-After
HTTP レスポンスヘッダーを含む HTTP 429 Too Many Requests で応答します。Retry-After
ヘッダーの値には、リクエストを再試行するまでの待機時間 (秒単位) が設定されています。
クライアントコードはこのリスポンスを処理できる必要があります。次のリクエストが確実に成功するよう、再試行する前に必ず指定された時間待機してください。
authenticateCustomerを含む一部の SLAS エンドポイントは、関連付けられている B2C Commerce インスタンスと通信します。そのインスタンスを使用できない場合、これらのエンドポイントへの呼び出しは失敗します。
dw.ocapi.shop.customer.auth.*
のフックを含む SCAPI フックは、SLAS 呼び出しと競合する可能性があります。SLAS 呼び出しが予期せず失敗する場合、B2C Commerce ログでフック呼び出しエラーがないか確認してください。
アクセストークンに関連付けられた買い物客アカウントが無効化または削除された場合、そのアクセストークンを使用して行われたその後のリクエストは失敗します。
SLAS では、最大 30 個のカスタムオブジェクトスコープを処理できます。詳細については、「Shopper Custom Objects API」を参照してください。
入門ガイドの Shopper API の認可の指示に従って、パブリック SLAS クライアントまたはプライベート SLAS クライアントを設定します (この設定が完了していない場合)。
SLAS クライアントの設定が完了したら、メインの SLAS API と SLAS Admin API の両方を使用する方法について説明する以下の SLAS ガイドを参照してください。
- パブリック SLAS クライアントのユースケース (メインの SLAS API)
- プライベート SLAS クライアントのユースケース (メインの SLAS API)
- SLAS ID プロバイダー (SLAS Admin API)
SLAS API の機能に関する技術的な詳細については、参照資料セクションの次の API 仕様を参照してください。