[Auth0] Email未検証のユーザーによる各種操作時の動作を確認してみた

2021.06.17

こんにちは、CX事業本部の若槻です。

認証管理プラットフォームAuth0では、作成されたユーザーのEmailが利用可能であるかを検証済み(verified)/未検証(pending)のステータスで管理しています。

今回は、Auth0でEmailが未検証のユーザーによる各種操作時の動作を確認してみました。

Email未検証のユーザーを作成

ユーザーを作成します。作成後のユーザーのEmailのステータスは既定で未検証(pending)となります。

ユーザーを作成するとメールアドレス宛にVerify Linkが記載されたメールが送付され、そのLinkを開くことによりEmailの検証が完了しますが、ユーザー側であえてこの検証完了操作は行わないでおきます。

このEmail未検証のユーザーを使用して各種操作を試してみます。

各種操作を試す

ログイン

アプリケーションに初回ログインしてみます。(ログインを行う人が初期パスワードを知っている前提です)

するとログイン成功し、アプリケーションのログイン後の画面が開けました。

初回ログインに成功後もEmailのステータスは引き続きpendingとなっています。

ユーザー自身によるパスワードリセット

アプリケーションのログイン画面からユーザー自身によるパスワードリセットをしてみます。

パスワードリセットメールの送信完了画面が表示されました。

この時点でもEmailのステータスは引き続きpendingとなっています。

メールアドレスにはパスワードリセットを要求するメールが届いているので、本文に記載のURLリンクを開きます。

パスワードリセット画面が開くのでリセットを行います。

パスワードリセットが完了しました。

この時点のユーザーのEmailのステータスを見ると検証済み(verified)に更新されています。

リセット後のパスワードでアプリケーションへのログインも行えました。

まとめ

ユーザーのEmailのステータスが未検証(pending)の場合でも、下記の操作はすべて可能であり、「3. パスワードリセットの実施」の操作を行ったタイミングでEmailのステータスが自動で検証済み(verified)に更新される、という結果となりました。

  1. 初期パスワードでのログイン:(初期パスワードを知っている場合に限り)可能
  2. ユーザー自身によるパスワードリセットメールの送信:可能
  3. パスワードリセットの実施:可能
  4. リセット後のパスワードでのログイン:可能

パスワードリセットメール送付による操作がEmailの検証を兼ねているようですね。

おわりに

Auth0でEmailが未検証のユーザーによる各種操作時の動作を確認してみました。

Email未検証のユーザーでもログインは可能であるというのは予想外の動作でした。pendingの場合にログインさせたくない場合はRulesなどを使用して認証時にステータス確認してVerifiedの場合のみログイン許可させる、という実装が必要そうです。

一方で、パスワードリセットメール送付による操作がEmailの検証を兼ねている、というのは納得の結果でした。

以上