この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

サードパーティの SMS ベースの 2 要素認証のリリース

2 要素認証 (2FA) は、ユーザの ID を検証するときのセキュリティを強化し、Salesforce 組織へのアクセスを保護します。SMS ベースの 2FA では、パスワードに加え、モバイルデバイスで受信したワンタイムパスワード (OTP) コードの入力がユーザに要求されます。

2FA を実装するには、Twilio や TeleSign のような、サードパーティの SMS または音声配信サービスを Salesforce ログインフローと一緒に利用できます。

SMS ベースの 2FA プロセスを詳しく見ていきましょう。

  1. ユーザがログインすると、ログインフローがランダムな OTP を生成し、音声またはテキストメッセージを介してユーザの携帯電話に送信します。
  2. ユーザがその OTP を Salesforce アプリケーションに入力します。
  3. Salesforce がそのコードを検証します。
  4. コードが有効な場合、Salesforce はユーザのアクセスを許可します。

ログインフローには 4 つのステップがあります。

  1. レコードを取得— ユーザレコードを照会して携帯電話番号を取得します。
  2. Apex アクション (従来) — OTP を生成し、サードパーティの SMS 配信サービスを使用してその OTP をユーザのモバイルデバイスに送信します。
  3. 画面— ユーザに受信した OTP を入力するように促します。
  4. 決定 — Apex アクションで生成された OTP をユーザが入力した OTP と比較します。等しければ、フローは完了し、ユーザはアプリケーションにリダイレクトされます。等しくなければ、フローは別のコードを生成し、ユーザに再検証を要求します。

フローの設定

この例では、Twilio Apex SDK を使用して SMS 配信操作を実行します。他のクラウドベースの SMS または音声ベンダーでも、サービスにアクセスするための公開 API があれば使用できます。

  1. Flow Builder を開きます。[設定] で、[クイック検索] ボックスに「フロー」と入力して、[フロー] を選択し、[新規フロー] をクリックします。
  2. [画面フロー] を選択して、[作成] をクリックします。
  3. ツールボックスから、[マネージャ] タブを開いて [新規リソース] をクリックします。
  4. LoginFlow_UserId 入力テキスト変数を作成します。この変数には、ログインイベント中にユーザ ID が入力されます。 LoginFlow_UserId 変数の作成
  5. テキスト変数を作成します。
    • Mobile (モバイル) — ユーザの携帯番号
    • VerificationCode (確認コード) — Apex プラグインで生成された OTP
    • Code (コード) — ユーザから収集された OTP
    • Status (状況) — プラグイン実行時に返された状況
  6. ツールボックスから、[要素] タブを開きます。[レコードを取得] 要素をキャンバスに追加し、ログインしようとしているユーザを検索します。 [レコードを取得] 要素で、LoginFlow_UserId 変数に保存されている ID に一致する ID を持つユーザレコードを検索します。
  7. ユーザの携帯番号を Mobile 入力変数に保存します。 [レコードを取得] 要素で、最初のレコードのみ保存することを選択し、個別の変数に項目値を保存することを選択します。その下で、Mobile 変数に MobilePhone 項目を保存します。
  8. https://github.com/twilio/twilio-salesforce から Twilio Apex SDK をインストールします。
  9. SMS プラグインに Twilio Web サービスへのアウトバウンド API コールの実行を許可するには、Salesforce で https://api.twilio.com をリモートサイトとして設定します。[設定] で、[クイック検索] ボックスに「リモートサイトの設定」と入力し、[リモートサイトの設定] を選択して Twilio Web サービスの URL を追加します。 サードパーティの Web サービス URL をリモートサイトとして追加
  10. Apex クラスを作成します。
  11. OTP コードを生成して SMS 経由でユーザの携帯番号に送信する SMS プラグイン���作成します。このプラグインは、次の入力を取り込みます。
    • AccountSid (アカウント SID) — Twilio アカウント SID (Twilio アカウントのユーザ名)
    • Token (トークン) — Twilio 認証トークン (Twilio アカウントのパスワード)
    • From (送信者) — SMS の送信者番号
    • Message (メッセージ) — 確認コードと一緒にユーザに送信されるメッセージ
    • To (送信先) — ユーザの携帯電話番号
    SMS プラグインの作成
    このプラグインは、2 つの値を返します。
    • Status (状況) — SMS 配信操作の状況
    • VerificationCode (確認コード) — 生成されてユーザに送信される確認コード このプラグインは 2 つの出力を返す
  12. 受信した確認コードの入力を促す画面要素を作成します。 画面要素の作成
  13. 2 つの結果を持つ決定要素を作成します。
    • Valid (有効) — 確認コード ({!VerificationCode} に保存) はユーザがコード画面コンポーネントで入力したコードと同じです。
    • Invalid (無効) — 有効な結果の条件が満たされないため、結果は無効です。この結果を作成するには、デフォルトの結果の表示ラベルを「Invalid」 (無効) に変更します。
    決定要素の作成
  14. 要素と要素を接続します。決定を従来の Apex アクションに接続する場合、無効な結果を選択します。 SMS 2FA プロセス
  15. フローを保存して有効化します。
  16. ログインフローをプロファイルに接続しますフローをプロファイルに接続
  17. ログアウトし、テストプロファイルに接続されたテストユーザとしてログインします。 ようこそ画面のサンプル

フローの拡張

本番リリースでは、この基本フローを拡張することがよくあります。たとえば、次のようなカスタマイズ、検証、ポリシーを追加できます。
  • ブランド — 会社のロゴとメッセージを検証画面に追加します。
  • 検証 — ユーザレコードに電話番号が含まれているかどうかを検証します。含まれていなければ、ユーザに入力を促します。
  • 再試行回数 — ユーザが入力した OTP コードが誤りの場合、ログインフローは新しい OTP コードを生成してユーザに送信します。一般的に、再試行回数を制限したり、検証の試行が複数回失敗したらユーザのログインを一時的にブロックしたりします。
  • ポリシー — ユーザが携帯電話番号ではなく固定電話を登録している場合、SMS ではなく音声で OTP を送信します。または、Salesforce にユーザの電話番号が登録されていない場合、メールで OTP コードを送信します。別の方法として、ユーザに 2 つ目の認証要素 (Salesforce の時間ベースの OTP や、YubiKey のようなハードウェアベースの OTP など) の入力を要求することもできます。