Google 認証プロバイダーの設定
Google を認証プロバイダーとして設定し、ユーザーが Google ログイン情報を使用して Salesforce にログインできるようにします。
必要なエディション
| 使用可能なインターフェース: Lightning Experience および Salesforce Classic |
| 使用可能なエディション: Enterprise Edition、Performance Edition、Unlimited Edition、および Developer Edition |
| 必要なユーザー権限 | |
|---|---|
| 設定を参照する | 「設定・定義の参照」 |
| 設定を編集する | 「アプリケーションのカスタマイズ」 および 「認証プロバイダーの管理」 |
Google を認証プロバイダーとして設定するには、次の手順を実行します。
- 登録ハンドラーを設定します。
- Google アプリケーションを設定し、Salesforce をアプリケーションのドメインにします。
- Salesforce で Google 認証プロバイダーを定義します。
- Salesforce によって生成されるコールバック URL を Google の Web サイト URL として使用するように、Google アプリケーションを更新します。
- 接続をテストします。
- ログインページに認証プロバイダーを追加します。
登録ハンドラーの設定
シングルサインオンに認証プロバイダーを使用するには、登録ハンドラーを作成する必要があります。登録ハンドラーがユーザーを作成し、ID プロバイダーを介して Salesforce にアクセスする既存のユーザーを更新します。Apex または Flow Builder を使用して登録ハンドラを設定できます。詳細は、「Create an Authentication Provider Registration Handler (認証プロバイダー登録ハンドラーの作成)」を参照してください。
Google App の設定
Salesforce で Google 認証プロバイダーを定義する前に、Google でアプリケーションを設定します。
- Google でクライアントを作成します。
- アプリケーション設定を変更し、アプリケーションドメインを Salesforce に設定します。
- クライアント ID とクライアントの秘密をメモします。これは、Google プロバイダーを Salesforce で作成するために使用します。
Salesforce での Google プロバイダーの定義
Salesforce で Google プロバイダーを設定するには、Google アプリケーションの ID とアプリケーションの秘密に関する情報が必要です。
- [設定] から、[クイック検索] ボックスを使用して [認証プロバイダー] を見つけて選択します。
- [新規] をクリックします。
- プロバイダータイプに [Google] を選択します。
- プロバイダーの名前を入力します。
- クライアント設定 URL に使用する URL サフィックスを入力します。たとえば、プロバイダーの URL サフィックスが MyGoogleProvider である場合、シングルサインオン (SSO) URL は https://mydomain_url または site_url /services/auth/sso/MyGoogleProvider のようになります。
- コンシューマー鍵には、Google アプリケーション ID を使用します。
- コンシューマーの秘密には、Google アプリケーションの秘密を使用します。
-
必要に応じて、次の項目を設定します。
- 承認エンドポイント URL — Google から基本認証 URL を指定します。たとえば、https://accounts.google.com/o/oauth2/authorize です。URL は「https://accounts.google.com/o/oauth2」で開始する必要があります。
必要に応じて、クエリ文字列パラメーターをベース URL に追加できます。たとえば、オフラインアクセス用に Google から更新トークンを取得するには、https://accounts.google.com/o/oauth2/auth?access_type=offline&approval_prompt=force を使用します。Google で最初の更新トークンの後にも更新トークンが引き続き提供されるように、更新アクションの承認をユーザーに求めるには approval_prompt パラメーターが必要となります。
- トークンエンドポイント URL — Google から OAuth トークンの URL を指定します。たとえば、https://accounts.google.com/o/oauth2/accessToken です。URL は「https://accounts.google.com/o/oauth2」で開始する必要があります。
- ユーザー情報エンドポイント URL — Google のプロファイル API から要求された値を変更します。URL は https://www.googleapis.com/oauth2/ で始まる必要があります。
- セキュリティを強化する OAuth 2.0 Proof Key for Code Exchange (PKCE) 拡張を自動的に有効にするには、[Use Proof Key for Code Exchange (PKCE) Extension (Code Exchange (PKCE) 拡張を使用)] を選択します。この設定がプロバイダーのセキュリティ保護にどのように役立つかについての詳細は、「Proof Key for Code Exchange (PKCE) Extension (コード交換の証明鍵 (PKCE) 拡張機能)」を参照してください。
- デフォルトの範囲 — 認証エンドポイントへの要求と共に送信するデフォルトの範囲を入力します。送信しない場合は、プロバイダータイプのハードコード化されたデフォルトが使用されます。デフォルトについては、Google の開発者向けドキュメントを参照してください。
詳細は、「Customize Relying Party Data Requests (証明書利用者データ要求のカスタマイズ)」を参照してください。
- コンシューマー鍵とコンシューマーの秘密を入力すると、コンシューマーの秘密がデフォルトで SOAP API の応答に含まれます。SOAP API 応答で秘密を表示しないようにするには、[SOAP API 応答にコンシューマーの秘密を含める] の選択を解除してください。2022 年 11 月より、メタデータ API 応答では、秘密が常にプレースホルダーの値に置き換えられます。デプロイ時に、プレースホルダーをプレーンテキストのコンシューマーの秘密に置き換えるか、後から UI で値を変更してください。
- カスタムエラー URL — プロバイダーがエラーのレポートに使用する URL を指定します。
- [アイコン URL] に、サイトのログインページのボタンとして表示するアイコンのパスを追加します。このアイコンは Experience Cloud サイトにのみ適用されます。Salesforce のログインページまたは [私のドメイン] のログイン URL には表示されません。ユーザーは、このボタンをクリックし、サイトに関連付けられた認証プロバイダーを使用してログインします。独自の画像へのパスを指定するか、いずれかのサンプルアイコンの URL を項目にコピーしてください。
- プロバイダーでポータルを使用するには、[ポータル] リストからポータルを選択します。
- 承認エンドポイント URL — Google から基本認証 URL を指定します。たとえば、https://accounts.google.com/o/oauth2/authorize です。URL は「https://accounts.google.com/o/oauth2」で開始する必要があります。
-
Apex 登録ハンドラを使用するには、次の手順を実行します。
- [登録ハンドラ種別] で、[Apex] を選択します。
-
[登録ハンドラ] で、
Auth.RegistrationHandlerインタフェースを実装する既存の Apex クラスを選択します。または、登録ハンドラのテンプレートを作成するには、[登録ハンドラテンプレートを自動的に作成] をクリックします。このクラスを後で編集してデフォルトのコンテンツを変更してから使用します。
-
登録ハンドラーにフローを使用するには、次の手順を実行します。
- [登録ハンドラ種別] で、[フロー] を選択します。
- [登録ハンドラー] で、[ID ユーザー登録] フロー種別の既存のフローを選択します。
-
デフォルトプロファイルを選択します。登録ハンドラーを実行するには、デフォルトプロファイルが必要です。ここでデフォルトプロファイルを指定しない場合、フロー自体でデフォルトプロファイルを設定します。
認証プロバイダーユーザー登録フローテンプレートを使用する場合、ここで設定したプロファイルは defaultProfileId 変数に自動的に保存されます。
-
デフォルトの取引先を選択します。Experience Cloud サイトで認証プロバイダーを使用している場合、このアカウントには新しい内部ユーザーが保存されます。
「認証プロバイダーのユーザー登録」フローテンプレートを使用する場合、ここで設定したプロファイルは自動的に defaultAccountId 変数に保存されます。
-
[Execute Registration As (登録の実行ユーザー)] で、Apex クラスまたはフローを実行する実行ユーザーを選択します。このユーザーは「ユーザーの管理」権限を持っている必要があります。
[他のアカウントで登録を実行] では、登録ハンドラーが動作するコンテキストが提供されます。本番環境では、通常、[他のアカウントで登録を実行] ユーザー用にシステムユーザーを作成します。このように、ハンドラーによって実行される操作は、その登録プロセスが簡単に特定されます。たとえば取引先責任者が作成される場合、システムユーザーがそれを作成します。
- ID プロバイダーの MFA サービスではなく、Salesforce 多要素認証 (MFA) 機能を使用するには、[この SSO プロバイダーで Salesforce MFA を使用] を選択します。この設定は、MFA が直接適用されているユーザーの MFA のみをトリガーします。詳細は、「SSO (Salesforce 組織) での Salesforce MFA の使用」を参照してください。
- 作業内容を保存します。
プロバイダーを定義したら、生成された認証プロバイダー ID の値をメモします。Auth.AuthToken Apex クラスで使用します。Salesforce では、次のクライアント設定 URL も生成されます。
- テスト専用初期化 URL — システム管理者は、この URL を使用して、サードパーティプロバイダーが正しく設定されていることを確認します。システム管理者がブラウザーでこの URL を開き、サードパーティにサインインすると、属性の対応付けにより Salesforce にリダイレクトされます。
- シングルサインオン初期化 URL — この URL を使用して、サードパーティからサードパーティのログイン情報を使用して Salesforce への SSO を実行します。ユーザーは、ブラウザーでこの URL を開いて、サードパーティにサインインします。このサードパーティは、ユーザーを作成するか既存のユーザーを更新します。次にサードパーティは、ユーザーを Salesforce にそのユーザーとしてサインインします。
- 既存ユーザーをリンクする URL — この URL を使用して、既存の Salesforce ユーザーをサードパーティアカウントにリンクします。このユーザーはブラウザーでこの URL を開いてサードパーティにサインインし、Salesforce にサインインしてリンクを承認します。
- OAuth 専用初期化 URL — この URL を使用して、サードパーティの OAuth アクセストークンを取得します。サードパーティサービスがトークンを取得するには、ユーザーが Salesforce で認証する必要があります。このフローでは、以降の SSO 機能は提供されません。
- コールバック URL — 認証プロバイダーが設定のためにコールバックするエンドポイントに、この URL を使用します。認証プロバイダーは、各クライアント設定 URL の情報と共に、コールバック URL にリダイレクトします。
クライアント設定 URL では、ユーザーの特定サイトへのログイン、サードパーティからのカスタマイズされた権限の取得、認証後の場所への移動を行うための、他の要求パラメーターをサポートしています。
Google App の更新
Google 認証プロバイダーを Salesforce で定義した後で、Google アプリケーションに戻ります。コールバック URL を Google の Web サイト URL として使用するように、アプリケーションを更新します。
SSO 接続のテスト
ブラウザーの認証プロバイダー設定ページでテスト専用初期化 URL を開きます。ユーザーは Google にリダイレクトされ、サインインするよう求められます。そしてサインイン時に、アプリケーションを認証するよう求められます。認証後、ユーザーは Salesforce にリダイレクトされます。
ログインページへの認証プロバイダーの追加
認証プロバイダーをログインオプションとして表示するようにログインページを設定します。組織の SSO を設定しているのか、Experience Cloud サイトの SSO を設定しているかに応じて、このステップは異なります。
- 組織の場合、「組織のログインページへの認証プロバイダーの追加」を参照してください。
- Experience Cloud サイトの場合、「Experience Cloud サイトのログインページへの認証プロバイダーの追加」を参照してください。
