はじめに
認証によるセキュリティの担保が大事だということは言うまでもないですが、セキュリティを万全にしようとすればするほど認証が終わるまでのハードルは高くなり、必然的にユーザー体験が落ちてしまうという結果に陥りがちです。
安全を優先するかユーザ利便性を重視するかサービス開発者にとっては悩ましいところですね。
安全性が高い認証のやり方としてMFA(Multi-factor Authentication:多要素認証)が広く使われています。ユーザー名とパスワードだけでなく、さらにもう1つ追加の検証要素を要求することで、万が一ユーザー名とパスワードが漏洩したとしても認証を突破される可能性を小さく出来る手軽な方法として普及しているようです。
ただ、このMFAも一部の人にとってはハードルが高いように思います。
と言うのはGoogle Authenticatorアプリなどを使ったMFA認証はスマホなどの操作が不慣れな方にはアプリのインストールから設定、操作までの流れが難しく、結果的にユーザビリティを下げることになってしまうからです。
また、MFA以前のログイン画面でのユーザー名(またはメールアドレス)とパスワードの入力自体もパスワードが複雑であればあるほど、入力のハードルが上がりログイン作業自体が億劫になる方もいらっしゃるようです。確かにブラウザのパスワード自動設定機能などを使わないと慣れてる人でも面倒くさいですよね。
MFAは使いたいけどGoogle Authenticatorなど他の認証アプリを使うハードルも下げたい!というニーズに応えるにはどうすれば良いでしょうか?
その解決策の1つをAuth0の機能を使って考えてみました。
Eメールを活用したMFA認証の設定方法
さすがに日常的にWebサービスなどを使っている人でEメールアドレスを持っていないという人はいないでしょう。
MFA認証のハードルを下げるためにEメールによる認証コードで認証を行うというのは実際に色々なWebサービスで使われています。
ですが、これは一見MFA認証のように見えますがEメールによる認証コード認証は厳密には二段階認証であり、二要素認証とは認められていません。Eメールだけでは認証の1要素しか使用されないためAuth0ではMFA設定としてメールだけによる認証コードを有効にする事はできません。
Email is not true MFA because it does not represent a different factor than the password. It does not represent something I have or something I am, but rather just something I know (the email password). It is also weaker than other factors in that it’s only as secure as the email itself (for example, encrypted end-to-end).
(途中省略)
Once Email MFA is enabled, users will be prompted to complete MFA with another enabled factor. If they select Try another method, and then pick Email, they will be sent an email with a 6-digit code that they will need to enter to complete the authentication flow.
<DeepLによる翻訳>
電子メールはパスワードとは異なる要素を表すものではないので、真のMFAではない。なぜなら、電子メールはパスワードとは異なる要素を表すものではないからです。電子メールは、私が持っているもの、あるいは私が持っているものを表すものではなく、単に私が知っているもの(電子メールのパスワード)を表すものだからです。また、電子メール自体の安全性(例えば、暗号化されたエンド・ツー・エンド)と同程度の安全性しかないという点で、他の要素よりも弱い。
(途中省略)
電子メールMFAが有効になると、ユーザは別の有効な要素でMFAを完了するよう促されます。別の方法を試す」を選択し、「電子メール」を選択すると、認証フローを完了するために入力する必要がある6桁のコードが記載された電子メールが送信されます。
ということでAuth0ではEメールによるMFAを実現するためには、Eメール以外の有効な手段(Googel Authenticatorなど)での認証を有効にしておくことが必須です。
では実際の流れを見てみましょう。
1.初回認証
2.2回目以降
2回目以降のログイン時にEメールによる認証コードを入力することが可能ですが、手順としては画面遷移も必要なため手間が増えます。
Eメールによる認証コードを入力するためには「Try another method」を押して、他の方法選択画面に遷移し、そこで「Emai」を選択する必要があります。
3.メールによる認証コード
先ほどの画面で「Email」が選択されるとEメール宛にワンタイムパスワードが飛んでくるのでこれでログイン出来ます。
Eメールのみのパスワードレス認証の設定方法
普段よく使うEメールだけでセキュリティを向上させるのはユーザビリティ的にも良い手段ではありますが、前述の通りそこまで辿り着くためのハードルがかなり高いように思います。
この問題を解決する手段はないでしょうか?
Eメールだけでの認証というユーザビリティもセキュリティ対策も兼ね備えたやり方としてEメールによるパスワードレス認証が使えそうです。
試してみましょう。
(1)Eメールによるパスワードレス認証はAuth0管理画面で以下の通り設定が必要です。
メニューの「Authentication」ー「Passwordless」を選択すると表示される画面で「Email」をONにします。
(2)設定ポップアップが表示されたら、Applicationsタブでパスワードレスを使うアプリをONにし保存します。
(3)続いてメニューの「Branding」ー「Universal Login」を選択し、「Advanced Options」を押して表示される画面で「Login」タブを選択します。
LoginタブのCustomize Login PageをONにします。
(4)Customize Login PageをONにした後は下のコード上にあるDefault Templates選択項目を押して、
「Lock (passwordless)」を選択します。
(5)Lock (passwordless)のHTMLコードが表示されたら51行あたりに以下のコードを追加し保存します。
passwordlessMethod: ‘code’,
もし、コードではなくリンクによるログインにする場合は’code’の部分を’link’にします。リンクであればクリックするだけで認証が終わるのでユーザーはさらに楽に認証処理を終えることができます。
(6)設定が完了したらパスワードレスのログイン画面が表示されます。メールアドレスを入力し、[SUBMIT]ボタンを押すことでメールが配信されます。
いかがでしたでしょうか?セキュリティもユーザビリティもどちらも譲れないといった場合にEメールによるパスワードレス認証は検討に値する選択肢ではないかと思います。
こういった機能をAuth0を使えばほんの少しの作業で実現可能です。
ソリューションサービスのご紹介
TC3はOkta CIC(Customer Identity Cloud)を代表とするIDaaSを活用したデジタルサービス開発のプロフェッショナルです(Customer Identity Cloudの認定も取得しています)。
すでに実践的に設計・実装された基盤サービスとして2024年5月末に、「Tactna Identity Platform」を発表しました!このサービスを活用いただくことで、事業部やサービス間の調整を減らし、リリースまでの期間を早め、ユーザー体験を向上させるといったメリットの多い開発プランをご提供します。
トライアル・MVP開発の段階から、どのようにIDaaS/CIAMを導入するかについてもサポートさせていただきますので、お気軽にお問い合わせください。
Tactna Identity Platformに関する詳細のご紹介資料は以下からダウンロードいただけます!
ひとまず情報のキャッチアップだけしておきたいという方は、こちらからニュースレターの購読ができます。