APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

EntraIDユーザアカウントに対して多要素認証を一括で設定する方法

背景

こんにちは。クラウド事業部の宇野です。

AzureのEntraIDユーザアカウントに対してMFA(多要素認証)を設定する際、「ユーザごとのMFA」という機能で設定できます。MFAの種別として「無効」「有効」「強制」と3種類ありますがそれぞれ設定方法が異なり分かりづらい部分がありましたので今回紹介させていただきます。

目的

EntraIDユーザーアカウントに対して一括でMFAを設定する

どのような方に読んでほしいか

極力費用をかけずにMFA設定を一括で設定したい方

前提条件

■EntraIDのプランについて
今回はEntraIDのFreeプランを前提にしています。Microsoft Entra ID P1やP2などの有料プランであれば、より簡易的にMFA制御が可能な「条件付きアクセスポリシー」という選択肢があります。予算の都合がつく場合はこちらを使用することが推奨されています。 

learn.microsoft.com

MFAを一括で「有効」に設定する方法

1. [MULTI-FACTOR AUTHENTICATION の状態] を有効化にしたいユーザー情報を記載したCSVを作成します。MFA の状態を有効としたいユーザーの UPN を列挙し、MFA status の列に "Enabled" (有効) と記載した CSV を用意します。一部ユーザを "Disabled" (無効)と記載して除外することも可能です。

----- Sample CSV 抜粋 -----
Username, MFA Status
a01@test2uno.onmicrosoft.com, Enabled
a02@test2uno.onmicrosoft.com, Enabled
a03@test2uno.onmicrosoft.com, Enabled
b03@test2uno.onmicrosoft.com, Disabled
------------------------------

2.Azureポータルから「Microsoft EntraID」サービスのユーザ画面を表示し、「ユーザごとのMFA」ボタンを押下します。

3.多要素認証画面で「一括更新」ボタンを押下します。表示されるCSVファイルの選択画面にある「ファイルの参照」ボタンを押下し、手順1で作成したCSVファイルを指定し、「→」アイコンを押下します。

4.アップロードが開始されます。100 名を超えるユーザー数を対象とする場合は  完了画面にて数十秒~数分ほど待機する必要があります。

MFAを一括で「強制」に設定する方法

「ユーザーごとのMFA」を利用しているユーザーでは、通常 「有効」のユーザーがMFA登録を行うと自動的に [強制] 状態へ遷移する動作があります。ユーザーが既にMFA登録済みな状態を除き、手動で 「強制」 へ切り替えることはマイクロソフト公式として推奨されていないようですが、以下は参考までに記載します。

1.MFAを強制化したいEntraIDユーザのCSV作成

[MULTI-FACTOR AUTHENTICATION の状態] を強制にしたいユーザー情報を記載したCSVを作成する。項目名に "UserPrincipalName" を記載し、その後の行にユーザーの UPN を列挙します。
----- Sample CSV 抜粋 -----
UserPrincipalName
a01@test2uno.onmicrosoft.com
a02@test2uno.onmicrosoft.com
a03@test2uno.onmicrosoft.com
------------------------------

2.Windows PowerShell を実行し、以下の PowerShell コマンドレットを実行します。
※NuGet プロバイダーをインストールするようにメッセージが表示されましたら、「Y」と入力し、Enter キーを押します。
※PSGallery からモジュールをインストールするようにメッセージが表示されましたら、「Y」と入力し、Enter キーを押します。
※インストール済みの場合は、次のステップから進めてください。
```

PS C:\Windows\system32> Install-Module MSOnline

```

3.以下の PowerShell コマンドレットを実行し、表示されるサインイン画面にてグローバル管理者、特権認証管理者、認証管理者ロールのいずれかを持つユーザーで接続します。
```
PS C:\Windows\system32> Connect-MsolService
PS C:\Windows\system32>
```

4.以下の PowerShell コマンドレットを実行し、CSV に記載のあるユーザーの MFA を "強制" にします。
※C:\temp1\MFA_users.csv に作成したファイルを参照しています。
```
PS C:\Windows\system32> $st = New-Object -TypeName Microsoft.Online.Administration.StrongAuthenticationRequirement
PS C:\Windows\system32> $st.RelyingParty = "*"
PS C:\Windows\system32> $st.State = "Enforced"
PS C:\Windows\system32> $sta = @($st)
PS C:\Windows\system32> Import-CSV C:\temp1\MFA_users.csv | foreach{Set-MsolUser -UserPrincipalName $_.UserPrincipalName -StrongAuthenticationRequirements $sta}
PS C:\Windows\system32>
```

MFAを一括で「無効」に設定する方法

1. [MULTI-FACTOR AUTHENTICATION の状態] を無効化にしたいユーザー情報を記載したCSVを作成します。項目名に "UserPrincipalName" を記載し、その後の行にユーザーの UPN を列挙します。
----- Sample CSV 抜粋 -----
UserPrincipalName
a01@test2uno.onmicrosoft.com
a02@test2uno.onmicrosoft.com
a03@test2uno.onmicrosoft.com
------------------------------

2.Windows PowerShell を実行し、以下の PowerShell コマンドレットを実行します。
※NuGet プロバイダーをインストールするようにメッセージが表示されましたら、「Y」と入力し、Enter キーを押します。
※PSGallery からモジュールをインストールするようにメッセージが表示されましたら、「Y」と入力し、Enter キーを押します。
※インストール済みの場合は、次のステップから進めてください。
```

PS C:\Windows\system32> Install-Module MSOnline

```

3.以下の PowerShell コマンドレットを実行し、表示されるサインイン画面にてグローバル管理者、特権認証管理者、認証管理者ロールのいずれかを持つユーザーで接続します。
```
PS C:\Windows\system32> Connect-MsolService
PS C:\Windows\system32>
```

4.以下の PowerShell コマンドレットを実行し、CSV に記載のあるユーザーの MFA を "無効" にします。
※C:\temp1\MFA_users.csv に作成した、ファイルを参照しています。
```
PS C:\Windows\system32> Import-CSV C:\temp1\MFA_users.csv | foreach{Set-MsolUser -UserPrincipalName $_.UserPrincipalName -StrongAuthenticationRequirements @()}
PS C:\Windows\system32>

おわりに

一部MSOnline にて提供されているコマンドを使用していますが、MSOnline モジュールは2024年3月30日に非推奨となり、今後廃止が予定されているようです。
現時点では上記のコマンドを利用できますが、今後使用できなくなる可能性があるようですのでご注意ください。