認証プロバイダー登録ハンドラーの作成
認証プロバイダーを使用してシングルサインオン (SSO) を設定するには、登録ハンドラーを設定する必要があります。登録ハンドラーは、ID プロバイダーによる認証後に Salesforce ユーザーを作成および更新します。登録ハンドラを設定するには、Flow Builder または Apex を使用できます。
必要なエディション
| 使用可能なインターフェース: Lightning Experience および Salesforce Classic |
| 使用可能なエディション: Enterprise Edition、Performance Edition、Unlimited Edition、および Developer Edition |
登録ハンドラーの役割
SSO 中の登録ハンドラーのロールを理解するために、SSO が認証プロバイダーフレームワークでどのように機能するかを簡単に説明します。
- (1) エンドユーザーが Salesforce に移動して、Google などの ID プロバイダーを使用してログインするボタンをクリックします。
- (2) Salesforce がユーザーのブラウザーを ID プロバイダーのログインページにリダイレクトします。
- (3) ID プロバイダーのログインページで、ユーザーはログイン情報を入力します。
- (4) ID プロバイダーがユーザーを認証し、ID トークンを含むトークンを Salesforce に返します。
- (5) ID プロバイダーがユーザー情報エンドポイントをサポートしている場合、Salesforce はトークンを使用してユーザー情報応答を要求します。
- (6) ID プロバイダーがサポートしている場合、ユーザー情報応答を返します。
- (7) ID プロバイダーから返された情報を使用して、Salesforce はユーザーを表す Apex
Auth.UserDataオブジェクトを作成します。 - (8) Salesforce で、登録ハンドラーが ID プロバイダーから情報を取得し、次のアクションを実行します。
- 登録ハンドラーは、ID プロバイダーから返された情報と一致する情報を持つ Salesforce ユーザーを検索します。
- 一致するユーザーがいない場合、登録ハンドラーはユーザーレコードを作成します。
- 一致するユーザーがいる場合、登録ハンドラーは ID プロバイダーからの情報でユーザーレコードを更新します。
- (9) 作成または更新されたユーザーが Salesforce にログインし、Salesforce データにアクセスできる。
登録ハンドラー種別の選択
登録ハンドラー種別を選択する前に、登録ハンドラーの基本設計を考慮してください。その設計を把握しておくと、使用事例にフローと Apex のどちらが適しているかを判断しやすくなります。少なくとも、登録ハンドラーは次のタスクを実行する必要があります。
- ID プロバイダーから情報を取得し、Salesforce で一致するユーザーレコードを探します。ID プロバイダーによっては、このステップで複雑な JSON 構造の解析が必要になる場合があります。
- ユーザーを作成するか、既存のユーザーを更新するかを決定します。
- ID プロバイダーからの情報に基づいて完全なユーザーレコードを作成します。
- ID プロバイダーからの情報で既存のユーザーを更新します。
使用する登録ハンドラーの種別に関する明確なルールはありません。これらの考慮事項を確認するときに、登録ハンドラーに何を実行させ、どのようなリソースを使用できるかを検討します。
| 考慮事項 | フロー | Apex |
|---|---|---|
| 複雑な使用事例に対応するパフォーマンスと拡張性 | ほとんどの使用事例をサポートするが、非常に複雑な使用事例には必ずしも最適ではない | より複雑な使用事例をサポート |
| アクセシビリティとメンテナンス性 | コードではなく、クリックで完全に設定および管理できます。Developer Knowledge は必要ありません。 | 開発と管理に Apex のトレーニングを受けた開発者が必要 |
| ユーザーアクセス | 1つのトランザクションで権限セットを追加および削除してユーザー・アクセスを制御する組み込み方法を提供し、Apexでよく発生する混在DMLエラーを回避 | 混在する DML エラーを回避しながら権限セットを管理することがより複雑になる可能性がある |
| ID プロバイダーからの情報の解析 | 複雑なネストされた JSON 構造から特定の属性値を取得する呼び出し可能なアクションを提供します。ID プロバイダーがユーザー情報応答と ID トークンを返す場合、このアクションにより情報を取得しやすくなります。 | ユーザー情報応答または ID トークンから情報を取得するには、ID プロバイダーから特定の属性値を取得するメソッドを作成する必要があります。 |
- Apex 登録ハンドラの開発
認証プロバイダーを使用してシングルサインオン (SSO) を設定するには、登録ハンドラーを作成する必要があります。SSO 中、ハンドラーは ID プロバイダーからの情報に基づいてユーザーを作成および更新します。高スケールでパフォーマンスの高い使用事例では、Apexを使用して登録ハンドラを開発します。 - 認証プロバイダーのユーザー登録フローの設計
Flow Builder で認証プロバイダー登録ハンドラーを設定する前に、登録ハンドラーの要件を理解します。 - 例: 認証プロバイダー登録ハンドラーフロー
シングルサインオン (SSO) の登録ハンドラーフローを作成するには、認証プロバイダーユーザー登録フローテンプレートをカスタマイズします。このテンプレートでは、内部ユーザーと外部ユーザーの両方が作成および更新されます。[JSON 文字列からユーザーデータを取得] アクションと [ユーザーデータを生成] 呼び出し可能なアクションを使用する方法を示します。また、権限セットの割り当てを管理する方法も示します。 - 認証プロバイダーのユーザー登録フローのトラブルシューティング
認証プロバイダーのユーザー登録にフローを使用する場合、フローの実行時にのみ明らかになるエラーがいくつかあります。実行エラーに基づいてフローを更新する方法について説明します。
この記事で問題は解決されましたか?
ご意見をお待ちしております。

