メールマジックリンクでのパスワードレス認証

パスワードレス接続を構成して、メールマジックリンクをメールでユーザーに送信し、認証を完了してもらえます。

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

仕組み

ユーザーがメールマジックリンクを開くと、Auth0が直接ログインさせます。ワンタイムパスワード(OTP)をメールで受け取り、アプリに戻ってOTPを入力する機能に似ているものの、実際にこの手順を踏む必要はありません。

制限事項

メールマジックリンクは、Universal Loginには対応していません。

クラシックログインでメールマジックリンクを利用する際、当初の要求とその応答の両方が同じブラウザで発生することが必要で、これに該当しない場合、トランザクションは失敗します。特に、デフォルトのウェブブラウザを変更できないiOSユーザーにおいてこの影響が顕著にみられます。

例えば、ユーザーが当初の要求をChromeブラウザで行うものの、メールでマジックリンクを開くとiOSは自動的にSafari(デフォルトのブラウザ)でこれを開きます。この場合、トランザクションは失敗します。

メールマジックリンクでのクラシックログインフロー

続いてユーザーがメールのボタンまたはリンクをクリックすると、アプリケーションに自動的にサインインします。

接続を構成する

  1. Auth0 Dashboardで、[Authentication(認証)] > [Passwordless(パスワードレス)]と移動し、[Email(メール)]を有効に切り替えてください。

  2. [Email(メール)]を選択すると構成ウィンドウが開くので、[Settings(設定)]ビューに切り替え、メールの[Form(フォーム)][Subject(件名)][Message(メッセージ)]テキストを入力します。

  3. 生成されるサインインリンクに含めたいあらゆる認証パラメーターを含めてください。

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

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

多言語対応

[Message(メッセージ)]エリアは、多言語に対応しています。

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

メッセージ構文

[Message(メッセージ)]エリアは、Liquid構文を受け付けます。この構文にパラメーターバリューを組み合わせて使え、メッセージの要素をプログラム的に構築できます。

例えば、request_languageパラメーターを参照し、メッセージの言語を変更できます:

{% if request_language contains 'dutch' %}
   Hier is uw verificatie code: {{ code }}
{% endif %}
{% if request_language contains 'fr-FR' %}
   Ceci est votre code: {{ code }}
{% endif %}

Was this helpful?

/

メッセージのテンプレートの定義の際、次のパラメーターをご利用になれます。

パラメーター 説明
code 使用するパスワード。
link 生成されるサインインリンク。
application.name ユーザーがサインアップしているアプリケーションの名前。
request_language メッセージコンテンツに対して要求された言語。
operation APIを介してユーザーのメール更新によってテンプレートがトリガーされたかを示します。トリガーされると値はchange_emailになります。トリガーされていない場合はnullです。

クラシックログイン設定の更新

アプリケーションでクラシックログインを利用している場合、メールマジックリンクを実装するにはページテンプレートを更新する必要があります。

  1. Auth0 Dashboardで、[Branding(ブランディング)] > [Universal Login(ユニバーサルログイン)] > [Advanced Options(高度なオプション)]へと進みます

  2. [Login(ログイン)]ビューに切り替え、[Default Templates(デフォルトのテンプレート)]ドロップダウンから[Lock (passwordless)(ロック(パスワードレス)) を選択します。

  3. 続いて、コードのAuth0LockPasswordlessセクションを新しいパラメーターに更新します。passwordlessMethodをテンプレートに追加してください。

    passwordlessMethod: 'link',

    Was this helpful?

    /

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

埋め込みログイン構成オプションの詳細については、埋め込み型ログインのパスワードレス認証をご覧ください。

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

[Applications(アプリケーション)]ビューに切り替え、パスワードレスメールを利用したいアプリケーションを有効化します。

メールプロバイダー

Auth0は、デフォルトで自身のSMTPプロバイダーからメールを送信します。Auth0の内蔵メールプロバイダーは、テスト目的でのみのものであrい、メールテンプレートのカスタマイズには対応していません。

メールによるコミュニケーションの管理、監視、トラブルシュート、およびメールテンプレートのカスタマイズには、自身のSMTPメールプロバイダーを構成してください。

Auth0は、次のメールプロバイダーをサポートします: