SMSでのパスワードレス認証

パスワードレス接続を構成して、SMS経由でユーザーにワンタイムパスワード(OTP)を送信し、認証を完了できます。

詳細については、「パスワードレス認証にメールまたはSMSを構成する」をお読みください。

Auth0は、TwilioとカスタムSMSゲートウェイを使用したOTPの送信をサポートしています。カスタムSMSゲートウェイを使用する場合は、「パスワードレス接続用にカスタムSMSゲートウェイを設定する」をお読みください。

仕組み

新しいユーザーがコードを受け取り、アプリケーションで初めて入力すると、Auth0によって認証される前に、sms接続でユーザープロファイルが作成されます。

OTPが送信された電話番号が既存のユーザーと一致する場合、Auth0はユーザーを認証します。

埋め込みログイン

SMS workflow for passwordless authentication

ユニバーサルログイン

Passwordless sms workflow diagram with universal login

カスタムSMSゲートウェイ

埋め込みログインまたはユニバーサルログイン用にカスタムSMSゲートウェイを構成することもできます。

Custom SMS gateway workflow for passwordless authentication

接続を構成する

  1. Auth0 Dashboardで、[Authentication(認証)]>[Passwordless(パスワードレス)]に移動し、[SMS]トグルを有効にします。

  2. [SMS]を選択して構成ウィンドウを開きます。

Twilio設定を構成する

TwilioアカウントSIDTwilio認証トークンが必要になります。これらは、Auth0がユーザーにSMSを送信するために使用するTwilio API資格情報です。

  1. TwilioアカウントSIDTwilio認証トークンを入力します。

  2. SMSソースを選択し、TwilioメッセージングサービスSIDまたは送信元電話番号を入力します。ユーザーには、SMSの送信者として入力したものが表示されます。

カスタムSMSゲートウェイを構成する

独自のSMSゲートウェイを使用する場合は、パスワードレス接続を作成し、Auth0 Management APIを使用して変更する必要があります。詳細については、「パスワードレス接続用にカスタムSMSゲートウェイを設定する」をお読みください。

パスワードレスSMS設定を構成する

  1. メッセージに、SMSの本文を入力します。

  2. OTPの有効期限OTPの長さの設定を調整します。

    • 最後に発行されたワンタイムパスワード(またはリンク)のみが受け入れられます。最新のパスワードが発行されると、他のパスワードは無効になります。最新のパスワードも、一度使用すると無効になります。

    • ワンタイムパスワードの入力は、3回しか試行できません。その後は、新しいコードを要求する必要があります。

    • 発行されたワンタイムパスワードは、期限が切れるまで(デフォルトでは)3分間有効です。

    • ワンタイムパスワードの有効期限を延長する場合は、ワンタイムパスワードコードの長さも延長する必要があります。そうしないと、攻撃者が短いコードを推測しようとする時間が長くなります。

  3. サインアップを無効にするかどうかを決定します。この設定を有効にすると、既存のユーザーのみにパスワードレスアクセスを許可できますが、アプリケーションがユーザー列挙攻撃の脅威にさらされる可能性があります。詳細については、「パスワードレス接続のベストプラクティス」をお読みください。

  4. [Save(保存)]を選択します。

多言語サポート

メッセージ領域は複数の言語をサポートしています。

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

メッセージ構文

メッセージ領域は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 %}

Was this helpful?

/

メッセージテンプレートを定義するときに使用できるパラメーターは次のとおりです。

パラメーター 説明
passwordまたはcode 使用するパスワード。
phone_number ユーザーの電話番号。
application.name ユーザーがサインアップしているアプリケーションの名前。
request_language メッセージの内容で要求されている言語。

Liquidの使用について詳しくは、「Liquid for Designers on GitHub」をご覧ください。

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

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