Slack 認証プロバイダーの設定
Slack 認証プロバイダーを設定し、ユーザーが Slack ログイン情報を使用して Salesforce にログインできるようにします。
必要なエディション
| 使用可能なインターフェース: Lightning Experience および Salesforce Classic |
| 使用可能なエディション: Enterprise Edition、Performance Edition、Unlimited Edition、および Developer Edition |
| 必要なユーザー権限 | |
|---|---|
| 設定を参照する | 「設定・定義の参照」 |
| 設定を編集する | 「アプリケーションのカスタマイズ」 および 「認証プロバイダーの管理」 |
Slack を認証プロバイダーとして設定するには、次の手順を実行します。
- 登録ハンドラーを設定します。
- Slack アプリケーションを設定します。
- Salesforce で Slack 認証プロバイダーを定義します。
- Salesforce によって生成されるコールバック URL を Slack のリダイレクト URL として使用するように、Slack アプリケーションを更新します。
- シングルサインオン (SSO) 接続をテストします。
- ログインページに Slack 認証プロバイダーを追加します。
登録ハンドラーの設定
シングルサインオンに認証プロバイダーを使用するには、登録ハンドラーを作成する必要があります。登録ハンドラーがユーザーを作成し、ID プロバイダーを介して Salesforce にアクセスする既存のユーザーを更新します。Apex または Flow Builder を使用して登録ハンドラを設定できます。詳細は、「Create an Authentication Provider Registration Handler (認証プロバイダー登録ハンドラーの作成)」を参照してください。
Slack アプリケーションの設定
Salesforce で Slack を設定する前に、Slack でアプリケーションを設定します。
- Slack 開発者 Web サイトに移動して、アプリケーションを作成します。
- 必要に応じて、アプリケーションの設定を変更します。
- アプリケーション ID とクライアントの秘密をメモします。
Salesforce での Slack プロバイダーの定義
Salesforce で Slack プロバイダーを設定するには、Slack アプリケーションの ID とアプリケーションの秘密に関する情報が必要です。
- [設定] の [クイック検索] ボックスに「認証」と入力して、[認証プロバイダー] を選択します。
- [新規] をクリックします。
- [プロバイダータイプ] に [Slack] を選択します。
- プロバイダーの名前を入力します。
-
クライアント設定 URL に使用する URL サフィックスを入力します。たとえば、プロバイダーの URL サフィックスが MySlackProvider の場合、SSO URL は
https://mydomain_url or site_url/services/auth/sso/MySlackProviderのようになります。 - [コンシューマー鍵] に Slack アプリケーション ID を使用します。
- [コンシューマーの秘密] に Slack のクライアントの秘密を使用します。
-
必要に応じて、次の項目を設定します。
- [承認エンドポイント URL] に、Slack から入手したベース URL を入力します。たとえば、
https://slack.com/openid/connect/authorizeです。この項目を空白のままにした場合は、アプリケーションで使用する Slack API のバージョンが使用されます。 - [トークンエンドポイント URL] に、Slack から入手した URL を入力します。たとえば、
https://slack.com/api/openid.connect.tokenです。この項目を空白のままにした場合は、アプリケーションで使用する Slack API のバージョンが使用されます。 - Slack のプロファイル API から要求された値を変更するには、[ユーザー情報エンドポイント URL] を入力します。たとえば、
https://slack.com/api/openid.connect.userInfoです。要求された項目は、要求された範囲に対応する必要があります。この項目を空白のままにした場合は、アプリケーションで使用する Slack API のバージョンが使用されます。 - [デフォルトの範囲] に、認証エンドポイントへの要求と共に送信する範囲を入力します。送信しない場合は、プロバイダータイプのハードコード化されたデフォルトが使用されます。
- コンシューマー鍵とコンシューマーの秘密を入力すると、コンシューマーの秘密がデフォルトで SOAP API の応答に含まれます。SOAP API 応答で秘密を表示しないようにするには、[SOAP API 応答にコンシューマーの秘密を含める] の選択を解除してください。2022 年 11 月より、メタデータ API 応答では、秘密が常にプレースホルダーの値に置き換えられます。デプロイ時に、プレースホルダーをプレーンテキストのコンシューマーの秘密に置き換えるか、後から UI で値を変更してください。
- [カスタムエラー URL] に、プロバイダーがエラーの報告に使用する URL を入力します。
- [アイコン URL] に、サイトのログインページのボタンとして表示するアイコンのパスを追加します。このアイコンは Experience Cloud サイトにのみ適用されます。Salesforce のログインページまたは [私のドメイン] のログイン URL には表示されません。ユーザーは、このボタンをクリックし、サイトに関連付けられた認証プロバイダーを使用してログインします。独自の画像へのパスを指定するか、いずれかのサンプルアイコンの URL を項目にコピーしてください。
- [承認エンドポイント URL] に、Slack から入手したベース URL を入力します。たとえば、
-
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 MFA の使用」を参照してください。
- プロバイダーを保存します。
-
生成された [認証プロバイダー ID] の値をメモします。
Auth.AuthTokenApex クラスで使用します。
認証プロバイダーを定義した後、複数のクライアント設定 URL が生成されます。
- テスト専用初期化 URL — Salesforce システム管理者は、この 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 — この URL を使用して、1 回のログアウトで複数のアプリケーションからユーザーをログアウトします。たとえば、ユーザーが Salesforce からログアウトすると、ユーザーは自動的にサードパーティプロバイダーからログアウトされます。
クライアント設定 URL では、ユーザーの特定サイトへのログイン、サードパーティからのカスタマイズされた権限の取得、認証後の特定の場所への移動を行うための、追加の要求パラメーターをサポートしています。
Slack アプリケーションの更新
Salesforce で認証プロバイダーを定義したら、Slack に戻り、Salesforce からのコールバック URL を Slack のリダイレクト URL として使用するようにアプリケーションを更新します。
ログインページへの認証プロバイダーの追加
認証プロバイダーをログインオプションとして表示するようにログインページを設定します。組織の SSO を設定しているのか、Experience Cloud サイトの SSO を設定しているかに応じて、このステップは異なります。
- 組織の場合、「組織のログインページへの認証プロバイダーの追加」を参照してください。
- Experience Cloud サイトの場合、「Experience Cloud サイトのログインページへの認証プロバイダーの追加」を参照してください。

