Azure MFAを用いた多要素認証を実装してみた

##検証の背景
実際にMFAを用いた認証を試してみることで、どの程度実際の運用に使えそうか判断したい。

##MFAとは
多要素認証とは、従来の ID (アカウント) とパスワードを組み合わせる「パスワード認証」以外に、さらに別の手段を使って利用者本人であることを証明する方法。

多要素認証には、ショート メッセージや生体情報を利用するなど、さまざまな利用方法がある。パスワード認証で本人確認が行われると、あらかじめ利用するサービスに登録しているメールアドレスや電話にセキュリティ コードが送られ、それを追加で入力して利用者本人であることを証明するものや、専用の認証アプリに発行されたセキュリティ コードを入力するといったサービスもある。

##実装手順
###1.ユーザーのMulti－Factor Authenticationを構成する
1-1. ポータルメニューでAADをクリックします。
1-2. [ユーザー]をクリックします。
1-3. 画面上部にある[Multi－Factor Authentication]をクリックします。
　　→[多要素認証]タブが表示されます。
1-4. ユーザーの一覧でMFAを有効化したいユーザーのチェックボックスを選択し、画面右側の[有効にする]をクリックします。
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641192/6eb8160a-a418-1347-5e71-52709fb7c524.png)
1-5. 確認メッセージが表示されたら、[Multi－Factor Authを有効にする]をクリックします。
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641192/3c4dfbd3-0977-1e5d-2666-8426e6c8d3a4.png)
1-6. 更新が正常に完了したら、[閉じる]をクリックします。
1-7. 「多要素認証]タブを閉じます。
1-8. ポータルから一度サインアウトし、Webブラウザーを閉じます。

###2.ユーザーの多要素認証を登録する（モバイルアプリによる多要素認証の構成手順）
2-1. ブラウザからポータル (https://portal.azure.com/) にアクセスします。
2-2. 手順1でMFAを有効化したユーザー名、パスワードでサインインします。（これが1要素目の認証）
　　→多要素認証を構成するため、[詳細情報が必要]が表示されます。
![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641192/95c61335-0c69-d01f-056a-497ec3d3382d.png)
2-3. [次へ]をクリックします。
　　→[追加のセキュリティ確認]が表示されます。

####<モバイルアプリによる多要素認証の構成手順>（認証用電話(携帯電話)を使用する場合の構成手順）
※この手順を行うには、自身のiOSまたはAndroidデバイスに、Microsoft Authenticatorアプリをインストールする必要があります。
2-4. [追加のセキュリティ確認]画面で、[モバイルアプリ]を選択します。
2-5. [モバイルアプリをどのような用途で使用されますか？]で[確認のため通知を受け取る]を選択し、[セットアップ]をクリックします。
![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641192/1a367817-1f78-06f6-3edf-1e4ac2e1bf95.png)

#####次の手順は、iOSまたはAndroidデバイスの[Microsoft Authenticator]アプリで操作します。

2-6. iOSまたはAndroidデバイスの[Microsoft Authenticator]アプリを起動します。
2-7. アプリでアカウントを追加し、[職場または学校アカウント]を選択します。
　　→カメラの起動許可が求められたら、[許可]をクリックします。
2-8. アプリ内のカメラで、画面に表示されたQRコードをスキャンします。
　　→アプリ内に、アカウントの情報が追加されます。
![9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641192/d727da25-33d2-5eaa-d6d7-b01e72ef5e46.png)

#####次の手順は、ブラウザ側で操作します。

2-9. [モバイルアプリケーションの構成]で[次へ]をクリックします。
![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641192/b44702b6-1165-7ce3-a573-c2a81fb832b0.png)
2-10. [追加のセキュリティ確認]で[次へ]をクリックします。
![6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641192/3b18ee76-af81-15cd-ccb9-f3dec3a22327.png)

#####次の手順は、iOSまたはAndroidデバイスの[Microsoft Authenticator]アプリで操作します。

2-11. [サインインを承認しますか？]と表示されたら、[承認]をタップします。
![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641192/2c6d5e92-655f-cd10-3f49-9df1f97c3860.png)

#####次の手順は、ブラウザ側で操作します。

2-12. [追加のセキュリティ確認]の[手順3:モバイルアプリにアクセスできなくなった場合]の画面で、[国/地域を選択してください]で[日本(+81)]をクリックし、ご自身の携帯電話番号を入力し、[次へ]をクリックします。
![7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641192/c251417b-801c-0fc9-eae3-e5c907a6167e.png)
3-13. [完了]をクリックします。
　　　→ポータル画面が表示されます。

###3.ユーザーの多要素認証を確認する
3-1. ブラウザからポータル(https://portal.azure.com/)にアクセスします。
3-2. MFAを有効化したユーザー名、パスワードでサインインします。（これが1要素目の認証）
![8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641192/4c259ae9-d39b-f103-1059-f611b64542a1.png)
3-3. モバイルアプリ側で[サインインを承認しますか？]と表示されたら、[承認]をタップします。
　　→ポータル画面が表示され、多要素認証でサインインできることを確認します。

##所感
特権アカウントなど全権限を所有しており漏洩リスクが大きいユーザーに対しては有効にしておくのがよいと感じた。
ただセキュリティが向上する一方で、単純にAzure MFAを使用した場合は社内外からのすべてのアクセスに多要素認証を求められてしまい、手間に感じるユーザーも少なくないと思う。
社内からのアクセス時には多要素認証を求めずに、社外からのみ多要素認証を強制する方法として「条件付きアクセス」で接続元IPを絞るなどほかの設定を併用することが重要だと感じた。