SLAS 信頼できる代理システムの認可

信頼できる代理システム (Trusted System On Behalf (TSOB)) は、バックオフィスワークフローにおけるシステム間通信用に設計されたログインフローです。次のような場合に使用できます。

  • すべてのログインを外部 IDP 経由でルーティングし、顧客が SLAS でログインできないようにしたい場合。
  • 買い物客に代わってシステムとしてアクションを実行したい場合。

TSOB 認証では getTrustedSystemAccessToken エンドポイントを使用しますが、これには sfcc.ts_ext_on_behalf_of スコープをもつ SLAS プライベートクライアントが必要です。詳細については、認可スコープカタログを参照してください。

  • TSOB は OAuth および OIDC 標準の範囲外であるため、買い物客の認証フローには推奨されない方法です。最も安全な認証メカニズムを実現するには、Shopper Login のパブリックとプライベートのユースケースで説明されているワークフローのいずれかを使用します。買い物客の情報が頻繁に変更される場合、および idp_origin=ecom の場合は、TSOB が B2C Commerce から最新の顧客情報を取得しないため、TSOB を使用しないでください。
  • 今後のホリデーシーズンに向けたボット軽減戦略の一環として、SLAS Trusted System on Behalf (TSOB) ログインには 3 秒間のサービス保護ウィンドウがあります。
  • AP-Northeast-1 リージョンでは 2024 年 10 月 2 日以降、US-East-1 リージョンでは 2024 年 10 月 9 日以降、顧客が 3 秒間に TSOB を介して複数回ログインしようとすると、409 HTTP エラーが発生します。顧客への影響は予想されていません。409 HTTP エラーが増加している場合は、サポートケースを開いてください。
  • すでに 3 秒間に設定されている SLAS AP-Southeast-2 および EU-Central-1 リージョンについては、変更は予定されていません。 :::

SLAS TSOB 買い物客フロー

すべての TSOB フローでは、SLAS プライベートクライアント ID とシークレットを Authorization ヘッダーに含める必要があります。

ゲスト買い物客フロー

ゲスト買い物客の TSOB トークンをリクエストするには、次のようにします。

curl "$https://$CODE.api.commercecloud.salesforce.com/shopper/auth/v1/organizations/$ORG/oauth2/trusted-system/token" \
-u "$CLIENT:$SECRET" \
-d 'hint=ts_ext_on_behalf_of' \
-d 'grant_type=client_credentials' \
-d "channel_id=$SITE" \
-d 'idp_origin=ecom' \
-d 'login_id=guest'

ボディパラメーター idp_origin=ecomlogin_id=guest を指定します。

B2C Commerce の登録済み買い物客フロー

登録済み買い物客の TSOB トークンをリクエストするには、次のようにします。

curl "$https://$CODE.api.commercecloud.salesforce.com/shopper/auth/v1/organizations/$ORG/oauth2/trusted-system/token" \
  -u "$CLIENT:$SECRET" \
  -d 'hint=ts_ext_on_behalf_of' \
  -d 'grant_type=client_credentials' \
  -d "channel_id=$SITE" \
  -d 'idp_origin=ecom' \
  --data-urlencode 'login_id=shopper@salesforce.com'

ボディパラメーター idp_origin=ecomlogin_id を指定します。この値は既存の登録済み買い物客のログインです。

買い物客が存在しない場合、SLAS は HTTP 400 を返します。

{
"status_code": "400 BAD_REQUEST",
"message": "External user not found"
}

外部 IDP をもつ登録済み買い物客フロー

外部 IDP を通じて登録された買い物客の TSOB トークンをリクエストするには、次のようにします。

curl "$https://$CODE.api.commercecloud.salesforce.com/shopper/auth/v1/organizations/$ORG/oauth2/trusted-system/token" \
  -u "$CLIENT:$SECRET" \
  -d 'hint=ts_ext_on_behalf_of' \
  -d 'grant_type=client_credentials' \
  -d "channel_id=$SITE" \
  -d 'idp_origin=$IDP' \
  -d "login_id=$SHOPPER"

ボディパラメーター idp_origin (値は IDP の ID) と login_id (値は買い物客のログイン) を指定します。

買い物客レコードが存在しない場合は、SLAS によって作成されます。買い物客のlogin_idfirst_name、および last_name は、指定した値に設定されます。SLAS は、買い物客情報を取得するために IDP と通信しません。

TSOB トークンレスポンス

TSOB は、買い物客の SLAS TSOB アクセストークンとリフレッシュトークンを含む TokenResponse を返します。リフレッシュトークンを getAccessToken エンドポイントで使用して、新しい TSOB アクセストークンを取得できます。

TSOB アクセストークンには、isb サブクレームに tsob:ts_ext_on_behalf_of タイプが含まれます。

制約

過剰使用を防ぐために、同じ買い物客に対して複数の呼び出しが連続して行われた場合、SLAS は HTTP 409 を返します。

{
"status_code": "409 CONFLICT",
"message": "Tenant id <tenant_Id> has already performed a login operation for user id <user_id> on OCAPI in the last 3 seconds."
}