Azure ADのパスワードレス認証

皆さんこんにちは。国井です。

セキュリティという観点でのオンプレミスとクラウドの違いを語るとき、オンプレミスではファイアウォールを使ったネットワークベースの境界で守るのに対して、クラウドの場合にはIDを利用したバーチャルな境界で守る、という話をよくします。
IDを利用したセキュリティ対策と言っても、それがユーザー名とパスワード(だけ)では心もとないです。かと言って、多要素認証を利用することになれば、手間ばかりが増えたという印象をユーザーに持たれてしまいます。そこで最近、Azure ADではユーザー名とパスワードに代わる認証方法というのを模索しています。
Azure ADでは次の3つの方向でパスワードに代わる認証方法を提供しようとしています。

・Windows Hello for Business
・FIDO 2.0
・Microsoft Authenticator

今日はこのうち、Microsoft Authenticatorを利用した方法がプレビューで出てきたので試してみたいと思います。Microsoft Authenticatorを使った認証方法は、パスワードを入力する画面で2桁の数字が表示されるので、

image

それと同じ数字を携帯電話にあらかじめインストールしたMicrosoft Authenticatorアプリから選択することで、認証を完了する方法です。
image

■ ■ ■

簡単に概念だけ説明しておくと、Microsoft Authenticatorを使った認証方法はWindows Hello for Businessなどと同じく証明書ベースの認証を行っています。
Windows Hello for Businessの場合は、デバイスのTPMに秘密鍵を入れておいて、顔認証やPINなどを使った認証の後に秘密鍵にアクセスできるようにしていますが、
Microsoft Authenticatorを使った認証では、Microsoft Authenticatorアプリをインストールした携帯電話の中に秘密鍵があります。
秘密鍵には、上記で紹介したようにMicrosoft Authenticatorを使った認証プロセスを完了することによってアクセスできるようになります。

Microsoft Authenticatorによる認証の有効化

この投稿を書いている時点(2018年10月)ではプレビューですが、Microsoft Authenticatorによる認証を利用するにはAzure ADディレクトリの単位で有効化設定を行います。
2019年8月現在、Azure AD管理ポータルの[認証方法]-[認証方法ポリシー]から有効化できるようになっています。
https://docs.microsoft.com/ja-jp/azure/active-directory/authentication/howto-authentication-passwordless-phone

有効化設定は、Azure AD PowerShellのプレビュー版をインストールし、PowerShellから行います。

個々のデバイスでの設定

手持ちの携帯電話(iOS, Android)では、Microsoft Authenticatorをインストールし、Azure ADアカウントとデバイスの関連付け設定を行います。
まず、アクセスパネル (https://myapps.microsoft.com/) を開いてプロファイル > 追加のセキュリティ確認 の順にアクセスして [認証アプリ] にチェックをつけ、QRコードを表示させます。

image

一方、携帯電話ではMicrosoft Authenticatorを起動し、アカウントを追加します。すると、QRコードの追加画面が出るので、読み取るとアカウントがアプリ内に追加されます。

20181007_040438000_iOSimage

アカウントが追加された右上のメニューをタップすると、[電話によるサインインを有効にする]というのが出てくるので、これをタップします。
このとき、携帯電話がAzure ADへデバイス登録されていない場合、右側のような画面が出るので、画面の指示に従ってデバイス登録を行います。

image20181007_040607000_iOS

ここまでが完了したら、設定は完了です。実際にPCからAzure ADユーザーを利用してサインインを行います。すると、ユーザー名を入力したところで、2桁の数字が表示されます。

image

携帯電話では、Microsoft Authenticatorから通知が来ています。通知に応答すると、
ご覧のような3択問題が出てきます。PCに表示された数字と同じ数字を入力し、
さらに携帯電話のロック解除するときの認証(iOSなら指紋認証など)を行えば
サインインは完了です。
image

3択というのがどの程度の強度なのかよくわかりませんが
3択の女王だったら当ててしまうかも
いずれにしてもMicrosoft Authenticatorを使った認証+携帯電話の認証の2要素で
パスワードよりも簡単に、かつパスワードよりも強力に認証を実行できます。

2018年10月15日追記
なぜ3択なのか?について、MSさんからコメントをいただきました。
Authenticatorで3択が出てきたときに、自分が認識して出したものなのか?を確認する目的があるそうです。
第三者が勝手にユーザー名を入力してサインインしようとしたときに、[確認]ボタンみたいなものだけだと、何かの拍子に押してしまって、サインインが成功してしまう可能性があります。だからこそ、3択のような選択肢を出して確認をさせているのです。

2018年10月14日追記
Microsoft Authenticatorを使った認証方法に切り替えてもパスワード認証が使えなくなるわけでなく、パスワード認証も引き続き利用できます。パスワード認証を利用したか、それともMicrosoft Authenticatorを利用したか?についてはAzure ADのサインインログからMFAを利用したかを見えば確認できます。

■参考情報
https://docs.microsoft.com/en-us/azure/active-directory/authentication/howto-authentication-phone-sign-in

https://docs.microsoft.com/en-us/azure/active-directory/user-help/microsoft-authenticator-app-phone-signin-faq