詳細情報:
Salesforce IdP Sandbox 組織への SSO の構成
B2C インスタンスが Salesforce Sandbox 組織に接続する場合は、まず本番組織で外部クライアントアプリケーションを構成します。次に、Sandbox 組織で認証プロバイダを設定します。認証プロバイダは、本番組織で設定した外部クライアントアプリケーションを使用します。
本番組織での外部クライアントアプリケーションの作成
本番組織で、B2C マーチャントエージェントの OAuth プロバイダーと通信できる外部クライアントアプリケーションを構成します。
-
Salesforce Org にログインします。
login.salesforce.comまたは [私のドメイン] の URL (Salesforce システム管理者によって設定されている場合はhttps://company.my.salesforce.comなど) でログインします。
-
ページの上部にある
] をクリックし、[ 設定 ] を選択します。
- [クイック検索] ボックスに、「External Client App Manager」と入力して選択します。
- [New External Client App (新規外部クライアントアプリケーション )] をクリックします。
- [基本情報(Basic Information)] タブで、必須フィールドに入力し、配布状態を[ローカル(Local )] に設定します。
- [API (OAuth 設定を有効にする)] で、[ OAuth を有効にする ] を選択します。
-
[コールバック URL ] に「
https://login.salesforce.com/」と入力します。Sandbox 組織で認証プロバイダを作成したら、そのコールバック URL をコピーして、ここに入力した URL を置き換えます。 -
以下の OAuth 範囲を選択します。
- ID URL サービス(ID、プロファイル、電子メール、住所、電話)へのアクセス
- API によるユーザーデータの管理 (api)
- リクエストをいつでも実行 (refresh_token、offline_access)
- 一意のユーザー識別子 (openid) にアクセス
- その他の設定はすべてデフォルト値のままにします。
- 作成をクリックします。
外部クライアント アプリが完了すると、アプリはコンシューマ キーとコンシューマ シークレットを提供します。これらの値を使用して、Sandbox で OAuth プロバイダーを作成します。
Sandbox 組織での認証プロバイダの設定
開始する前に、外部クライアントによって生成されたコンシューマ鍵とシークレットを B2C Commerce マーチャントエージェントで使用できるようにします。
-
Salesforce Sandbox 組織で、登録ハンドラ Apex クラスを作成します。
-
ページの上部にある
] をクリックし、[ 設定 ] を選択します。
- [クイック検索] ボックスに「Apex クラス」と入力し、[ Apex クラス ] を選択します。
- 新規をクリックします。
-
このコードをコピーしてクラス エディターに貼り付けて、B2CRegistrationWrapper クラスを作成します。
global class B2CRegistrationWrapper implements Auth.RegistrationHandler { /** * ロジックを委任する標準の B2C Commerce ハンドラーをインスタンス化します */ private Auth.B2CCommerceCloudRegistrationHandler getStandardHandler() { return new Auth.B2CCommerceCloudRegistrationHandler(); } global User createUser(Id portalId, Auth.UserData data) { // カスタムの前処理ロジックをここに追加できます // 標準ハンドラに委譲 return getStandardHandler().createUser(data); } global void updateUser(Id userId, Id portalId, Auth.UserData data) { // カスタムロギングまたは属性マッピングをここで追加できます // 標準ハンドラに委譲 getStandardHandler().updateUser(userId, data); } }
-
ページの上部にある
-
変更内容を保存します。
この Apex クラスは、標準の B2C Commerce 登録ハンドラのラッパーとして機能します。必要に応じて、カスタムの前処理ロジックまたは属性マッピングを追加できます。
- [クイック検索] ボックスに「認証プロバイダー」と入力し、[ 認証プロバイダー ] を選択します。
- 新規をクリックします。
-
次の表のフィールド値を入力して、認証プロバイダーを構成します。
フィールド 値 プロバイダーの種類 Salesforce 名前 認証プロバイダーのわかりやすい名前を入力します。 コンシューマ キー Salesforce IdP 組織から外部クライアントアプリケーションに移動し、[設定] タブを選択して、[OAuth 設定] でコンシューマキーを見つけます。 コンシューマ シークレット Salesforce IdP 組織から外部クライアントアプリケーションに移動し、[設定] タブを選択して、[OAuth 設定] でコンシューマシークレットを見つけます。 エンドポイント URL の承認 https:// idp-org-hostname /services/oauth2/authorize を実行します。 トークン エンドポイント URL https:// idp-org-hostname /services/oauth2/token 登録ハンドラの種類 Apex 登録ハンドラー B2CRegistrationWrapper クラス 登録を実行 Salesforce 管理者ロールをもつユーザーを選択します - 保存をクリックします。
-
生成されたコールバック URLをコピーします。
認証プロバイダは、ユーザが Sandbox 組織にアクセスするためのシングルサインオン URL も生成します。
- プライマリ IdP 組織にログインし、前に作成した外部クライアントアプリケーションを開きます。
- コールバック URL を外部クライアント アプリの[コールバック URL ] フィールドに貼り付けます。
- 変更内容を保存します。
