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 でログインする必要があります。

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

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

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

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

  • API リクエストのボディで使用する JSON オブジェクトの name プロパティの値には、このサポートされている IDP のリストにある文字列のいずれかを使用する必要があります。また、IDP 名に - を付加し、その後に任意の文字列を付加してバリエーションを作ることもできます。たとえば、"name": "google""name": "google-test" は両方使用できますが、"name": "googletest" は使用できません。
  • リクエスト内の redirectUrl の値は特定の形式に従います。

外部 IDP で SLAS を使用して買い物客をログインするには、パブリックまたはプライベートのユースケースガイドで詳しく説明されているフェデレーションログインフローに従います。

パブリッククライアントの使用例を以下に示します。

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

一部の 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 として設定するリクエストの例を次に示します。