AzureADで多要素認証を設定する

#はじめに
AzureADのテナントを取得し、仕様版で良いのでP1、もしくはP2のライセンスを付与していること

※AzureADってなんなの？という方は[こちら](https://qiita.com/morih90/items/e2ca1c789615a4cf2354)

#多要素認証とは何か
##パスワードだけの認証は危険
世の中の一般的な認証として、ユーザは「IDとパスワード」でログインを行っています。
パスワードを用いることは便利な反面いくつかのリスクがあります。

例えば
・パスワード覚えるの面倒だから、名前と同じにしよう
・長すぎると覚えられないから、簡単なものにしよう

などと考えて安易なパスワードにした場合は、攻撃者に乗っ取られやすくなります。

また、
・どのサービスやシステムでも同じパスワードを設定しておけば、忘れないよ

という考え方もまずくて、いったん乗っ取られてしまうとその人が使用するシステムやサービス全部が乗っ取られてしまいます。

このようなことが起きてしまう原因としては、攻撃者がいるからなのですが
突き詰めていくと、
**パスワードを入力したのが本人かどうかはわからない**、というところが弱点なのです。

その弱点を補うための１つの手段として、「多要素認証」があります。

##AzureADの多要素認証
AzureADでは２段階認証が用意されています。
認証の１要素目には本人のみが知っている情報を使用します。
　→すなわちパスワードのことですね。

認証の２要素目には、そのユーザーが所有するデバイスを使用します。

この方法を用いると、万一パスワードが漏洩した場合でも
本人が所有するデバイスを持っていなければログインはできないです。

逆にデバイスが盗まれた場合でも、１要素目のパスワードが分からなければログインはできないです。

また、AzureADの多要素認証はシンプルかつ、アプリケーションに依存することなく使いやすい点がメリットです。
実際にこの後手順を記載していくのですが、とても簡単です。

##２要素目の認証手段
ユーザーが既定で利用できるものは以下の３つです。
・固定電話
・携帯電話（音声もしくはSMS）
・モバイルアプリ（Azure Autenticator）

##Azure ADの２段階認証の種類
以下の３つがある。
**・Azure管理者用の多要素認証**
　→Azure AD全体管理者専用に提供されています。
　　一般ユーザは使えません。
**・Office365の多要素認証**
　→一般ユーザも使える。
　　Office365アプリケーション専用のため、それらに関するアカウントとリソースしか提供されない。

**・Azure Multi-Factor Authentication**
　→全てのユーザや多要素認証の機能を使用できる
　　例えば信頼できるIPアドレスの設定やPINモードの設定は上記２つでは使用できない、これをつけると使用可能となる。
　　これを使うにはAzure ADPremiumのP1、もしくはP2のライセンスが必要となる。

#ユーザへのAzure MultiーFactor Authenticateの設定
基本的には以下のステップを踏む
①Azure ADユーザに対してMFAの有効化　（管理者が行う）
②MFAの２要素目のセットアップ（ユーザが行う）
③ユーザにてログイン時にMFAの実行

一つずつみていきましょう。
##ユーザに対してMFA有効化
まず、AzureADの画面から「ユーザー」→「すべてのユーザー」を選択します。

画面上部、表示がなければ「・・・」の部分から「Multi-Factor Authentication」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167126/407a40c0-aaa5-ba71-e795-7b531023aab4.png)

すると、別タブで多要素認証ページが開くので
MFAを有効にするユーザーを選択し、「有効にする」を選択します。
有効化の確認画面が出てくるので、「Multi-Factor authを有効にする」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167126/1954f051-6f0e-8dce-6dba-37ee2d05bb66.png)

##ユーザによるMFAの２要素目セットアップ
多要素を認証したユーザでログインしていきましょう。
AzurePortal、もしくはOffice365ポータルのいづれかでログインします。
最初は普通にIDとパスワードでログインすると、以下のような画面が出てくるので「次へ」を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167126/caabdba2-ff27-a9d6-1a21-3da993c6ee8b.png)

2要素目の選択画面が出てきます。
認証用電話とモバイルアプリが選べるのですが、今回は認証用電話でやります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167126/b040bb67-ed9a-ef4f-f84e-4045e594dc3e.png)

すると、設定した端末に６桁のコードがSMSで飛んでくるのでそれをいれる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167126/4951875f-d57e-70d8-6836-1448bc9c7082.png)

追加のセキュリティ確認の画面が出てくるが、これはOffice2013よりも前のものなど一部アプリでは携帯電話を２段階認証に設定することができないものがあります。
それらはモバイルアプリが必要なのですが、ほとんどの場合は対応しているので特段ここは対応不要で
そのまま「確認」で次へ進むと、設定完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167126/eb0f6a56-9664-8a91-c186-27e8c8353455.png)

再度ログインを行うと、以下のような2要素目の画面が出てくるので
先ほど設定した端末に送付されてくるコードを入力してログインします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167126/9768be1e-eccc-c26f-6ea0-14f94a6ffc00.png)

##モバイルアプリの場合
「Azure Authenticator」というモバイルアプリをGoogle PlayやApp Storeからインストールします。
アカウントを追加し
**モバイルアプリで承認通知を受け取る構成**にした場合は
アプリ側で「承認しますか？」とポップアップ通知が出てくるので、承認を選択するとログインができます。

**確認コードを使用する構成**にした場合は
アプリ側でワンタイムパスワードが生成されるので、それを入力してログインを行います。

#そのほかの設定
ここまで簡単なMFAの有効化をしてきましたが、要件によってはいろんなことができます。
例えば、社内からのアクセスであれば多要素認証は不要にしたい場合は
信頼済IPを登録することで実現可能です。

また、**条件付きアクセス**というもので、ユーザやアクセス元やデバイスなどなど様々な条件によって
多要素を強制する、しないなどの細かい設定もできます。

条件付きアクセスは結構多岐に渡るので別記事でも書いていこうと思います。