カスタムワンタイムパスワード配信プロセス
Salesforce のデフォルトプロバイダーの代わりにカスタムワンタイムパスワード (OTP) 配信プロバイダーを使用する場合、プロバイダーはエンドユーザーに OTP メッセージを送信します。
必要なエディション
| 使用可能なインターフェース: Salesforce Classic (一部の組織で使用可能) および Lightning Experience の両方 |
| 使用可能なエディション: Professional Edition、Enterprise Edition、Unlimited Edition、Developer Edition |
カスタム OTP 配信は、Auth.CustomOneTimePasswordDeliveryHandler インターフェースを実装する Apex ハンドラに依存します。このインターフェースでは sendOneTimePassword メソッドが使用されます。このメソッドでは、Salesforce によって生成された OTP、ユーザーの電話番号、ユーザー ID、Experience Cloud サイト ID などの複数のパラメーターを渡します。カスタムコードを使用して、メッセージのコンテンツを作成できます。メッセージを送信するには、ハンドラーがプロバイダーでホストされているメッセージングエンドポイントに対して API コールアウトを実行し、応答を処理します。
このプロセスは、外部ユーザーに SMS を使用して ID を検証するように要求するときに開始できます。エントリポイントは使用事例によって異なります。次の使用事例では、SMS を使用した ID 検証がサポートされています。
たとえば、パスワードなしのログインを使用する場合、ユーザーが Experience Cloud サイトのログインページに移動して電話番号を入力し、ログインしたときにこのフローを開始できます。
- Salesforce は、カスタム OTP 配信 Apex ハンドラーで
sendOneTimePasswordメソッドをコールします。 - Apex 実装は、
sendOneTimePasswordメソッドを使用して、認証済み要求をプロバイダのコールアウトエンドポイントに送信します。要求には、ユーザーの ID、電話番号、メッセージコンテンツ、Salesforce OTP、およびプロバイダーが必要とするその他のパラメーターが含まれます。
メモ Apex 実装は、プロバイダーに接続して SMS メッセージを送信します。Salesforce では、この機能はデフォルトで提供されていません。 - プロバイダが応答を返し、Apex ハンドラーが応答を取得して処理します。応答の処理方法は、プロバイダーによって異なります。
- 応答が成功すると、ハンドラーは
Auth.CustomOneTimePasswordDeliveryResultの列挙値SUCCESSを返します。 - プロバイダーがユーザーの電話番号に OTP を送信します。
- ユーザーが Experience Cloud サイト検証フォームに OTP を入力します。
- Salesforce が OTP を検証します。このステップは、使用事例によって異なります。たとえば、パスワードなしのログインの場合、
System.UserManagementクラスのverifyPasswordlessLoginメソッドを使用できます。 - ユーザーの ID は、使用事例に応じて記録または登録されます。
この記事で問題は解決されましたか?
ご意見をお待ちしております。

