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 Admin UI または SLAS Admin API を使用して、SLAS テナントの IDP を構成します。
1 つのテナントに複数の IDP を設定できます。たとえば、同じテナントに対して、Google と Facebook の両方を IDP として設定できます。
SLAS Admin API の registerIdentityProvider を使用して、Google を IDP として設定するリクエストの例を次に示します。
name
の値の前には、サポートされている IDP の識別子を付ける必要があります。接頭辞に-
を追加し、その後に文字列を追加してバリエーションを作成できます。たとえば、google
google-test
は使用できますが、googletest"
は使用できません。redirectUrl
は特定の形式に従います。- IDP は
redirectUrl
を使用して SLAS にリダイレクトし、買い物客がログインしたままで SLAS 認証コードが作成されるようにします。 - デフォルトでは、SLAS は
client_secret_basic
認証を使用して IDP と対話します。メソッドをclient_secret_post
に変更するには、リクエストボディでisClientCredsBody: true
を提供します。
買い物客を IDP でログインさせるには、パブリックまたはプライベートのユースケースガイドで詳述されているフェデレーションログインフローに従います。
authorizeCustomer エンドポイントと getAccessToken エンドポイントを使用したパブリッククライアントフローの例を以下に示します。
買い物客が認証に失敗した場合、または認証をキャンセルした場合、ブラウザーはクエリ文字列内のエラーの詳細とともにリダイレクト URI に送信されます。
SLAS の logoutCustomer
エンドポイントを呼び出しても、顧客はサードパーティ IDP からログアウトされません。顧客は IDP から明示的にログアウトする必要があります。
一部の IDP (特に Google) は、OAuth 同意画面にリダイレクト URL (またはリダイレクト URL の一部) を表示します。
ドメインが含まれるようにリダイレクト URL をカスタマイズするには:
- ブランドドメインで、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
- 許可されたコールバック URL としてリバースプロキシ URL を含めるように IDP の OAuth クライアントを構成します。
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 をネイティブにサポートしています。
adfs
: Active Directory Federated Serviceapple
: Appleauth0
: Auth0azure_adb2c
: Azure Active Directory B2Cazure
: Azure Active Directorycognito
: Amazon Cognitofacebook
: Facebookforgerock
: Forgerockgigya
: SAP Gigyagigya_social
: SAP Gigya ソーシャルログインgoogle
: Googleokta
: Oktaping
: Ping Identitysalesforce
: Salesforce
SLAS は、OpenID Connect をサポートする IDP のみをサポートします。SLAS は SAML をサポートしていません。
SLAS のデフォルトの IDP 機能を使用して、他の IDP を構成します。
Apple を IDP として構成するには、追加の構成が必要です。
authUrl
はhttps://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 として設定するリクエストの例を次に示します。