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=ecom
と login_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=ecom
と login_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_id
、first_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."
}