Auth0で多要素認証での音声通話利用がGAされていました

2020.08.04

Auth0は、多要素認証のための使い捨てコードを含むSMSメッセージの送信をサポートしていましたが、 これらのコードを音声通話で配信するオプションが追加されました。

Auth0からのお知らせには、以下のようなシナリオでSMSよりも有効だと言及されています。

  • 一部の業界には、テクノロジーに慣れていないユーザーがいて、携帯電話を持っていない可能性があります。
  • ユーザーは、携帯電話を携帯することはできないが、固定電話にはアクセスできる施設内のアプリケーションにアクセスする必要があります。
  • 旅行中、SMSは確実に配信されない可能性がありますが、音声通話はより信頼できる場合があります。

やってみる

  • Auth0のアカウント
  • Twilioのアカウント

が必要です。

Auth0ダッシュボードのMFA設定画面で、Phone Messageのトグルをオンにします。

Delivery Providerとして、Auth0,Twilio, Customが選べますが、

Auth0はボイスメッセージを送信することはできません。今回はTwilioを使います。

Twilioは、Twilio Programmable SMS API for SMSまたはTwilio Programmable Voice API for Voice を使用してメッセージを送信します。

SMS and VoiceVoiceを選択します。

SMS and Voiceだと、ユーザーは、SMSまたは音声で確認コードを受け取ることを選択できます。

Twilio SID、Twilio AuthToken、SMS Source、From  の設定をします。

  • Twilio SID
    • Twilioのコンソールにログインし、使用するプロジェクトのダッシュボードページからコピーします。

  • Twilio AuthToken

    • Twilioのコンソールにログインし、使用するプロジェクトのダッシュボードページからコピーします。

  • SMS Source

    • Messaging Serviceを利用する場合は、Messaging Service SIDが必要です
    • Use Fromを利用する場合は、FromにTwilioで取得した電話番号を入力します ← 今回はこれ

必須項目を入力し終えた後、Enrollment TemplateVerification Templateを編集します。

※ デフォルトのまま使っても大丈夫ですが、今回は日本語を使用するようにしてみます。

Liquid Syntaxを使用してテンプレートを作れます。

これでAuth0とTwilioの設定は終わりです。

確認する

サンプルのアプリケーションを使って認証フローを試してみます。

MFAを有効にした状態でログインしようとすると、以下のようにテキストメッセージか電話か選択できるようになっています。

SMS and Voiceで設定したため

自身の電話番号を入力し、音声通話で受け取るようにすると、電話がかかってきます。

こんな感じ

音声で言われたコードをログイン画面に入力すればログインできます。

テキストコードと一緒で、再度電話をかけ直すことも可能です。

MFAデバイスとして個人の携帯電話の使用が禁止されている環境などで、施設の電話を使ってMFAの認証コードを受け取れるようになるので 嬉しい人もいるのではないでしょうか?

今回はTwilioで設定しましたが、電話送信はカスタムHookを使用することも可能ですので、様々なプロバイダーの例を確認してみてください。

カスタム電話メッセージングプロバイダー

参考