- ユーザーにインデックスを付ける基本的な方法の1つとしてメールアドレスを使用する
- メールをユーザーに送信する
- アカウントのリンクを奨励するのにメールアドレスを使用する
- メールアドレスに結び付けたアカウントをユーザーが作成できるようにする
メール検証は、アカウントが侵害されるリスクを軽減する手段ですが、完璧な解決策にはなりません。アプリケーションに、他のセキュリティ対策を追加する必要があります。
正しい手法を選択する
メールには検証済または未検証のマークを付ける方法が複数あります。どの手法が最適かを判断するために、ご自身やチームで以下の点を検討してください。- 識別子とパスワードをAuth0(またはAuth0を介して接続されているデータベース)に保管する(予定)か?
- Auth0に組み込みのメール検証フローを利用できない、特殊なメール検証上の要件があるか?
- 大量のユーザーを検証済メールに一括設定する必要があるか?
- メールの検証が必要になるユーザーがMicrosoft Entra ID、ADFS、その他のエンタープライズ接続からアクセスしてくるか?
メール確認リンク
Auth0でメールを検証する一般的な方法は、ユーザーにメール確認リンクを送信することです。ユーザーがこのリンクをクリックすると、ユーザーのemail_verified
フラグがtrue
に設定されます。
デフォルトで、Auth0はユーザーのサインアップ時にメール確認リンクを送信します。
Auth0が確認メールを送信するタイミングをカスタマイズすることもできます。たとえば、一括でメールを検証する必要がある場合や、検証済のメールが必要なアクションをユーザーが実行するまで検証を遅らせたい場合などです。
ユーザーが確認メールを受け取るタイミングを制御するには、2つの方法があります。
- メール検証ジョブを使用します。これは、Auth0がメール検証テンプレートを使って確認メールを送信することをトリガーします。
- メール検証チケットを作成して、メールを自分で送信します。その際には、ユーザーがメールを確認するのにクリックするべきチケットを含めて送信します。
ワンタイムパスワード
ワンタイムパスワード(OTP)は、新しいユーザーのアカウント作成時にメールで送信して、確実にすべてのユーザーのメールが検証されるようにします。メール確認リンクはメールスキャナーやユーザー自身による偶発的な確認につながる可能性があるため、OTPが各ユーザーが既存のメールアドレスを自発的に確認することを保証します。OTPを使用するには、テナントでユニバーサルログイン、フレキシブル識別子、およびIdentifer Firstログインが有効化されていなければなりません。 別の方法でメールを検証したい状況があるかもしれません。たとえば、ユーザーのリストを使ってまとめて検証したり、独自に作成したカスタムワークフローを通してユーザーのメールを検証する方法があったりする場合です。
特殊な検証の対応
そのような場合には、PATCH/api/v2/users
エンドポイントを使ってemail_verified
をtrue
に設定します。
Microsoft Entra IDとADFSのエンタープライズ接続について、Auth0は一部のカスタムメール検証ワークフローに対応しています。これで、他のシステムからのユーザーが安全で正確な方法によってメール検証されていることを確認できます。詳細は、「Microsoft Entra IDとADFSのメール検証」をお読みください。
そのような場合には、PATCH /api/v2/users
エンドポイントを使用して、email_verified
をtrue
に設定します。