メインコンテンツへスキップ
認証を設定すると、SMS でユーザーにワンタイムパスワード (OTP) を送信できます。詳細については、パスワードレス認証用のメールアドレスまたは SMS を設定するを参照してください。 Auth0 では、OTP の送信に Twilio とカスタム電話プロバイダーを使用できます。Auth0 Actions でカスタム電話プロバイダーを使用する場合は、カスタム電話プロバイダーを設定するまたは Terraform でカスタム電話プロバイダーを設定する を参照してください。

仕組み

新しいユーザーが code を受け取り、アプリケーションで初めてその code を入力すると、Auth0 による認証の前に、そのユーザーのプロフィールが sms 接続上に作成されます。 OTP の送信先の電話番号が既存のユーザーと一致する場合、Auth0 はそのユーザーを認証します。

埋め込みログイン

SMS を使用したパスワードレス認証のワークフロー

Universal Login

Universal Login を使用したパスワードレス SMS のワークフロー図

電話プロバイダーを設定する

  1. Auth0 Dashboard で、ブランディング > 電話プロバイダー に移動します。
  2. Phone Message Provider トグルを有効にします。
    Auth0 Dashboard > ブランディング > 電話プロバイダー > Phone Message Provider を有効にする
  3. 電話メッセージプロバイダーを選択します。
    1. Twilio を使用するには、Twilio を電話メッセージングプロバイダーとして設定する を参照してください。
    2. カスタムプロバイダーを使用するには、Auth0 Actions を使用するために カスタム電話プロバイダーを設定する を参照してください。
  4. 配信方法を選択します。
  5. 変更を保存します。

レガシー SMS ゲートウェイ

Auth0 Action のカスタム電話プロバイダーで要件に対応できない場合は、 を使用して、パスワードレス SMS 接続 のカスタム SMS ゲートウェイを管理できます。詳しくは、Set Up Custom SMS Gateway for Passwordless Connections を参照してください。

パスワードレス SMS の設定

  1. Message に SMS の本文を入力します。
    @@password@@ プレースホルダーは、ユーザーに送信されるワンタイムパスワードに自動的に置き換えられます。
  2. OTP ExpiryOTP Length の設定を調整します。
    • 発行されたワンタイムパスワード (またはリンク) のうち、受け付けられるのは最後に発行されたものだけです。新しいものが発行されると、それ以前のものはすべて無効になります。最新のものも、一度使用されると無効になります。
    • ワンタイムパスワードの入力に失敗できるのは 3 回までです。これを超えると、新しい code をリクエストする必要があります。
    • 発行されたワンタイムパスワードは、デフォルトで 3 分間有効です。
    • ワンタイムパスワードの有効期限を延長する場合は、ワンタイムパスワードの code の長さも延長してください。そうしないと、攻撃者が短い code を推測するための猶予時間が長くなります。
  3. Disable Sign Ups を有効にするかどうかを決定します。この設定を有効にすると、既存のユーザーにのみパスワードレスアクセスを許可できますが、アプリケーションがユーザー列挙攻撃の脅威にさらされる可能性があります。詳細については、Passwordless Connections Best Practices を参照してください。
  4. Save を選択します。

多言語対応

Message 領域は複数の言語に対応しています。 言語を指定するには、Auth0 Authentication API Get Code or Link エンドポイント を呼び出し、x-request-language ヘッダーに値を設定します。このヘッダーが設定されていない場合、言語はブラウザーによって自動的に設定される accept-language ヘッダーから取得されます。

メッセージ構文

Message 領域では Liquid 構文を使用できます。この構文をパラメーター値と組み合わせることで、メッセージの各要素をプログラムで組み立てることができます。 たとえば、request_language パラメーターを参照して、メッセージの言語を変更できます。
{% if request_language contains 'dutch' %}
   Hier is uw verificatie code: {{ password }}
{% endif %}
{% if request_language contains 'fr-FR' %}
   Ceci est votre code: {{ password }}
{% endif %}
メッセージテンプレートを定義する際に使用できるパラメーターは、次のとおりです。
パラメーター説明
password or code使用するパスワードです。
phone_numberユーザーの電話番号です。
application.nameユーザーがサインアップに使用しているアプリケーションの名前です。
request_languageメッセージ内容に使用する言語です。
Liquid の使用方法の詳細については、GitHub の Liquid for Designers を参照してください。

アプリケーションを有効にする

Applications ビューに切り替え、パスワードレス SMS を使用するアプリケーションを有効化します。

詳しくはこちら