Auth0のMFA設定方法(SendGrid Email)
注意点:
1. Auth0でEmail MFAを唯一なMFAに設定することはできません。(今回の記事はPhone Messageをオンした前提です)
2. Email認証をしていないユーザーのログイン画面には、Email MFAの選択肢は表示されません。
概要
MFAを使うことで、もっと安全なログインフローになります。
今日はAuth0上でSendGridを使って、EmailのMFAをやってみようと思います。
今回の記事はPhone Message (SMS)をオンした前提とのブログなので、他のMFA方法をオンしていなければ、前回のAuth0 PasswordlessとMFAの設定方法(Twilio SMS)も確認してください。
事前準備
- SendGridアカウント
- 送信元としてのメールアドレス(受信用と同じとしても問題ない)
- Auth0テナント
- Auth0のSPAテンプレートアプリ(callback URLなどを正しく設定される状態)
- Email-Passwordでログインするアプリのユーザーアカウント
手順
SendGridでAPI KEYの作成
SendGridのダッシュボードから、Settings -> API Keys
でCreate API Key
ボタンで、新しいAPI Keyを作る画面に入ります。
Create API Key画面に、API Key Name
はご自由に入力していただいて、API Key Permissions
をRestricted Access
にします。
Mail Send
を最大
(Scroll Bar最後の丸を押す)に設定します。
そしてCreate&View
ボタンをしたら、API Keyが作られて、Secret Key
が表示されます。
このSecret Key
は一回しか表示しませんし、これからの設定にも使うので、安全な場所にメモしてもらいます。
もう一度API Keysのリストに入ってみたら、作られたAPI Keyを確認できます。(押しても、詳細画面にSecret Key
が表示しませんが)
SendGridでSingle Senderの認証
Emailを送るため、「From」のメールアドレスが必要なので、「そのメールアドレスはあなたが所有している」のを確認するため、Single Senderの認証を行います。
Get Started -> Create New Sender
かVerify a Single Sender -> Create New Sender
で新しいSenderの登録画面に入ります。
Create a Sender
画面に、必要な情報を入力し、Create
でSenderが作成します。
Senderとしてのメールアドレスに認証メールが送られるので、Verify Single Sender
を押して、特に問題が出なければ、このメールアドレスのSender認証は成功となるはず。
(Sender Authentication画面にVerified
というマークが付けられています。)
Auth0にEmail Providerの設定
SendGridの設定が終わったら、Auth0テナントのBranding -> Email Provider
に入って、Use my own email provider
をオンにします。
そしてSendGrid
を選択します。
SendGrid Settingsの部分:
- From
に先ほどSenderとして認証できたメールアドレスを記入する
- API Key
にメモしたSendGridAPI Key: Secret Key
を記入し、セーブします。
Auth0にMFAをオンにする
Security -> Multi-factor Auth
の入って、Email
をオンにしてもらいます。
画面の下にスクロールしたら、Define Policyの部分はRequire Multi-factor Auth: Always
にし、セーブします。
MFAでログインする
事前に用意したSPAで試してみます。
Email-Passwordでログインしたら、MFA画面に入ります。
Phone MessageはデフォルトのMFA方法なんですが、他の方法にEmail
があって、Email
を選択したら、認証コードがアカウントのメールアドレスに送られて、そのコードをログイン画面に入力し、Continue
を押せば、ログインが成功となります。
以上です。