SLAS ID プロバイダー

ソーシャルメディアのアカウントや他の連携ログインシステム (Google のシステムなど) を使ったログインをサポートするためには、SLAS の外部 ID プロバイダー (IDP) を設定する必要があります。

IDP を使用する場合、買い物客の認証情報は B2C Commerce ではなく外部 ID システムに保存されます。IDP の使用は任意です。外部 IDP ではなく、B2C Commerce システムに認証情報が保存されている買い物客のログインと API アクセスの実装には、引き続き SLAS を使用できます。

買い物客が IDP を通じてログインすると、その IDP に関連する顧客レコードが作成されます。たとえば、rachel.rodriquez@example.com が最初に Google でログインし、次に Facebook でログインした場合、2 つの別々の顧客レコードが作成されます。Rachel が Google でログインして買い物をした後、Facebook でログインすると、Google でログインしたときに購入したものは表示されません。購入した商品を再び見るには、(Facebook ではなく) Google でログインする必要があります。

サポートされている IDP を設定するには、まず IDP の管理ポータルで OAuth クライアントを作成します。次に、SLAS 管理 UIまたは SLAS 管理 APIを使用して、SLAS テナントの IDP を構成します。

1 つのテナントに複数の IDP を設定できます。たとえば、同じテナントに対して、Google と Facebook の両方を IDP として設定できます。

SLAS Admin API の registerIdentityProvider を使用して、Google を IDP として設定するリクエストの例を次に示します。

  • nameの値の前には、サポートされている IDP の識別子を付ける必要があります。接頭辞に a -を追加し、その後に文字列を追加してバリエーションを作成できます。たとえば、 は使用できますが、 は使用google``google-testできませんgoogletest"
  • redirectUrl特定の形式に従います。
  • IDP は を使用して、redirectUrl買い物客がログインしたままで SLAS 認証コードが作成されるように、SLAS にリダイレクトします。
  • 既定では、SLAS は認証を使用してclient_secret_basic IDP と対話します。要求本文で提供するisClientCredsBody: trueメソッドclient_secret_postを変更します。

買い物客を IDP でログインさせるには、公開または非公開のユースケースガイドで詳しく説明されているフェデレーションログインフローに従います。

authorizeCustomerエンドポイントとgetAccessTokenエンドポイントを使用したパブリッククライアントフローの例を以下に示します。

買い物客が認証に失敗した場合、または認証をキャンセルした場合、ブラウザーはクエリ文字列内のエラーの詳細とともにリダイレクト URI に送信されます。

SLAS の logoutCustomer エンドポイントを呼び出しても、顧客はサードパーティ IDP からログアウトされません。顧客は、IDP から明示的にログアウトする必要があります。

一部の IDP (特に Google) は、OAuth 同意画面にリダイレクト URL (またはリダイレクト URL の一部) を表示します。

ドメインが含まれるようにリダイレクト URL をカスタマイズするには:

  1. ブランドドメインで、SLAS IDP コールバック URL をプロキシするリバースプロキシを構成します。例: https://auth.example.com/slas-callback/{{idp_name}}https://$SHORT_CODE.api.commercecloud.salesforce.com/shopper/auth/v1/idp/callback/$IDP_NAME
  2. 許可されたコールバック URL としてリバースプロキシ URL を含めるように IDP の OAuth クライアントを構成します。
  3. redirectUrl パラメーターにリバースプロキシ URL を使用するように SLAS IDP 設定を構成します。SLAS Admin API の registerIdentityProvider エンドポイントまたは SLAS Admin UI の IDP ページを使用して、新しい IDP を登録したり、既存の IDP を更新したりできます。

PWA Kit デベロッパーは、リバースプロキシを構成する手順をスキップできます。(前述の他の 2 つの構成手順は実行する必要があります。) デフォルトでは、PWA Kit プロジェクトは、Managed Runtime のリバースプロキシを使用して、パスに /mobify/proxy/api/ を含むリクエストを B2C Commerce API に転送するようにすでに構成されています。PWA Kit プロジェクトの SLAS IDP コールバック URL は次のようになります。

PWA Kit と Managed Runtime を使用したプロキシの詳細については、リクエストのプロキシを参照してください。

SLAS は、以下の IDP をネイティブにサポートしています。

SLAS は、OpenID Connect をサポートする IDP のみをサポートします。SLAS は SAML をサポートしていません。

SLAS の既定の IDP 機能を使用して、他の IDP を構成します。

Apple を IDP として構成するには、追加の構成が必要です。

  • authUrlhttps://appleid.apple.com/auth/authorize?response_mode=form_post でなければなりません。
  • クライアントシークレットは Apple アプリケーションの秘密鍵である必要があります。Apple Developer Dashboard から、「Certificates, Identifiers & Profiles (証明書、ID、プロファイル)」の「Keys (キー)」 を選択します。SLAS で使用するキーを選択し、その .p8 ファイルをダウンロードします。-----BEGIN PRIVATE KEY----- から ----END PRIVATE KEY----- までの値をクライアントシークレットとして使用します。
  • クライアント認証用の秘密鍵を作成するときに、Apple から取得したキー ID を指定します。この値は、Apple Developer Dashboard の「Certificates, Identifiers & Profiles (証明書、ID、プロファイル)」の「Keys (キー)」にもあります。
  • Apple チーム ID を入力します。

SLAS Admin API の registerIdentityProvider エンドポイントを使用し、Apple を IDP として設定するリクエストの例を次に示します。