MFA…しないとダメ？…ダメ。そう…。（Azure portal / EntraID）

[Azureやその他の管理ポータルにおける多要素認証の義務化の計画](https://learn.microsoft.com/ja-jp/entra/identity/authentication/concept-mandatory-multifactor-authentication?tabs=dotnet "Azureやその他の管理ポータルにおける多要素認証の義務化の計画")
…えぇ！EntraIDとかに入るのにMFAが必要なの！？FF14くらいでしかやってないよぉ！

…
……
………
AzureやM365の管理者としては毎日のようにサインインするのでちょっと面倒くさいですが、イマドキ多要素認証は必須みたいなもんですもんね。
仕方ない、せめて管理用アカウントだけでも時代の波に乗りますか…と思っていたところ、

ユーザ「すみません、Azure portalにサインインしようとしたらこんなの出たんですけど…。」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3640351/4d893e70-d453-47f7-89ea-55ea16d44207.png)

あっ…
AzureのSaaSとかCognitive Serviceとかそういうので開発をしている一般ユーザがいたのでした。
彼らには特定のリソース単位で高権限を付けているのでAzure portal内のそのリソースのページにアクセスしようとしてMFAを求められたのでしょう。


## 課題・困ったこと
・グローバル管理者権限の付いた管理用アカウントはAzure portalやEntraIDはもちろん、その他のサインインについてもMFAを有効化してセキュリティを高めたい。

・Azure portalにアクセスしたい一部のユーザにもMFAを有効化させる必要があるが、一般ユーザにMFAを有効化していない以上、一部とは言え情シス以外のユーザに「日々のM365のサインインも含めてMFA必須になるよ♡」とは言いにくい。

・というか、Azure portalにアクセスしたいユーザの中にも業務用携帯を所持していない人がいる。

私と同じくトラディショナルな環境の方は参考になる…かもしれません。


## で、どうするか（目次）
・認証方法の登録手順（共通設定事項）
・管理用アカウントは全てのサインインにMFAを求めるように設定する
・一般ユーザでAzure portalにサインインする人は必要最低限の領域だけMFAを要求するように設定する
・個人で業務用携帯電話を支給されていない人はどうするか案を考える
・Authenricator？なにそれおいしの？


## 認証方法の登録手順（共通設定事項）
ユーザが実際にMFAを行う際の認証方法を設定します。

EntaraID（旧AzureAD）にアクセスし、「管理」-「ユーザ」内内すべてのユーザから対象ユーザを選択し、「認証方法」-「認証方法の追加」から電話番号などのMFAで使う認証方法を登録します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3640351/41619f6f-933b-4f96-ae07-2b8347d5ff97.png)
認証方法としては業務用携帯などがあれば電話番号が一番楽だと思います。


## （管理者向け）全てのサインインにMFAを求める
こちらは主に管理用アカウントに対して、M365も含む全てのサインインにMFAを求めるようにする設定です。

EntraIDにて「管理」-「ユーザ」内すべてのユーザ画面にて右上の「…」→「ユーザごとのMFA」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3640351/a3adb3a5-9260-4336-a103-5d47cae15538.png)
ユーザを検索して、選択する→「MFAを有効にする」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3640351/c968f59b-f7fa-414d-b5c1-da6d5b5f0ceb.png)
これで次回以降、このアカウントを使ってサインインする場合にはMFAが必要になります。（多分有効化時にセッションが切れます）


## （ユーザ向け）必要最低限だけMFAを有効化する
こちらは主に一般ユーザに対して、Azure PortalやEntraID管理センターなどMFAが義務化されているページへのアクセス時だけMFAを要求するようにする設定です。日々M365を使う分には影響ありません。

EntraIDに入り、「概要」の下部の方にある「条件付きアクセス」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3640351/71a1bee4-3831-4b69-832f-e2924662b509.png)
「ポリシー」から「＋新しいポリシー」でポリシーを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3640351/1ffe0826-88ef-43c2-a104-073bfc39159b.png)
ポリシー名を良い感じにつけて、ユーザの項目で
対象タブ
┗ユーザとグループの選択
　┗ユーザとグループ
 からMFAを有効化したいユーザまたはグループを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3640351/c71c502f-471f-4f75-8201-d855c80f8f1a.png)
ターゲットリソースの項目で、
リソース（以前のクラウドアプリ）を選択し
┗リソースの選択
　┗「選択」で「Microsoft 管理ポータル」を選択します

 これがMFAが義務化されている必要最低限の範囲選択になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3640351/3d90e538-0e44-44ab-91e7-a0071ddeb904.png)
許可の項目で、
・アクセス権の付与　を選択し、
┗・多要素認証を要求する　にチェックを付けます

以上で設定は完了です。他の項目はいじらなくても大丈夫です。
最後にポリシーの有効化をオンにして作成すればMFAが要求されるようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3640351/dd8f3d0c-e77e-4806-9204-4e8890cab873.png)


## ユーザ「自分用の業務携帯無いんだけど…。」
困りました…。
一番良いのは、「ではその方に携帯を貸与してあげてください。」と言うことです。ダメ元で提案してみても良いと思います。

でも、難しいという場合には
・共用の携帯を用意してもらって、全員の認証方法の番号をその携帯にする
・（外線から直接電話可能な）オフィスの固定電話の電話番号を使って認証する
と言ったことも、まぁ一応できますね。セキュリティとしてどうなのか、みたいなところもありますが。

やっぱり電話は難しいよ、とか、さすがに共用電話ではセキュリティがね（正論）、といった場合には電話が無くとも
・Windows Hello for Business
・FIDO2 セキュリティ キー
・ OATH ハードウェア トークン (プレビュー)
（・一時アクセス パス）
と言った方法も存在します。
これらの方法についてはここでは解説しきれないので一旦参考ページを…。
→[Microsoft Entra ID で使用できる認証方法と検証方法](https://learn.microsoft.com/ja-jp/entra/identity/authentication/concept-authentication-methods#how-each-authentication-method-works "Microsoft Entra ID で使用できる認証方法と検証方法")

・Windows Hello for Business
は環境によって使える/使えないがあると思いますので要件には注意してください。（弊社の構成・環境では厳しそうでした）

・FIDO2 セキュリティ キー
・OATH ハードウェア トークン
の二つは物理デバイスが必要です。とは言え、スマホよりは安いので認証のためだけ…ということならこっちの方が良いかもしれないですね。

・一時アクセスパス
は一時的な措置としてのものであり、毎回管理者が一定時間有効なパスワードを発行するものなので普段の運用としては適さないと思います。（緊急対応用として用意しておくのはアリ）

その他、WinAuthというソフトを使うことでもMFAできますが、こちらはMicrosoftの提供するソフトでは無いのでサポートの観点等注意してください（自己責任）。
→https://winauth.github.io/winauth/download.html

業務用携帯（スマホ）があれば電話番号で登録しておくのが一番楽だと思います。（もっと言えば、後述のAuthenticatorを使うとさらにセキュアです）

## Authenticator？なにそれおいしいの？
AuthenticatorはMS謹製の認証に用いることのできるアプリです。スマホにインストールできます。
私も個人的にFF14のサインインの多要素認証として使っています。

電話のダイヤルインでの認証やSMSを使った認証よりも高いセキュリティの認証方法になるので、スマホを使って認証するなら可能であればこちらを使ってもらうとより良いと思います。（ダイヤルインでかかってきた電話に出て#押すだけの方が楽ちんですけどね）
→この辺りの電話＜Authenticatorっていうことを詳しく解説しているMSのブログがあります。
　[認証に電話網を使うのはそろそろやめよう](https://jpazureid.github.io/blog/azure-active-directory/it-s-time-to-hang-up-on-phone-transports-for-authentication/ "認証に電話網を使うのはそろそろやめよう")

ちなみにこのAuthenticator、使用を強制できます。逆にAuthenticatorを利用できないけどなんか強制するような設定になっちゃってる、という場合には解除することもできます。ので、設定箇所について一応補足しておきます。

＜Authenticatorを強制する設定＞
Authenticatorを強制する設定をしていると、Authenticator以外の登録した認証方法でMFAを通過するとこのようなメッセージが表示されます。
（正確にはAuthenticatorの使用を奨励する表示、すなわちAuthenticatorでアカウント保護しようキャンペーンという感じです。設定次第では強制力がつきます）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3640351/15381823-83d4-49ab-b566-efc1386ad176.png)
ユーザから「こんなメッセージが出たんだけど…」なんて言われたらEntraIDの「登録キャンペーン」という設定が入っていますので下記をチェックしてみてください。

・EntraIDにアクセスし、[概要] - [認証方法]
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3640351/2bf40124-eb29-4674-afd7-d08130c6a87a.png)
[登録キャンペーン]を開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3640351/5f1b4ddc-37eb-433d-87af-a6e2c743807b.png)
ここでAuthenticatorの強制の設定・解除ができます。
・状態：Authenticatorの奨励表示を明示的に[有効/無効]の設定ができます。MS管理にもできます。
・再通知できる日数：本項最初の、アカウント保護してねというメッセージに「今はしない」を選択した際に再度このメッセージを表示させるまでの期間を設定します。
・再通知の回数が制限されています：「今はしない」を3回まで選べる、というような、強制力を持たせる設定です。
・除外されたユーザーとグループ：ユーザやグループでこの奨励を除外することもできます。管理用アカウントやそれに準ずるものは強制させるけど、一般ユーザにはそこまでしないとかもできそうですね。


## おわり
どこに行っても多要素認証が求められる時代、会社の環境とか、コストとか色々と実現出来たり出来なかったりという事情はありますが私には認証について調べたり考えたりする良い機会になりました。

※もしFF14でMFAをまだ入れていないという方は、安心して楽しく遊ぶためにも導入しましょう。Authenticatorでなくても良いですが、スマホがあれば簡単にできますので自分の物語を守りましょう。同じヒカセンからの提言です。