Microsoft 365 MFA を PowerShell で設定するには

Microsoft 365 を利用する上ではぜひ利用しておきたい多要素認証の機能。
GUI からの設定もありますが PowerShell からでも設定することができます。

今回は PowerShell を使った設定を見ていきましょう。

MSOL に接続ができる状態にするため、必要であれば以下モジュールをインストールしておきましょう。

https://docs.microsoft.com/en-us/powershell/azure/install-az-ps?view=azps-4.5.0

まずは PowerShell を起動します。

 Connect-MsolServiceコマンドでログインします。

f:id:mohessu:20200808093714p:plain

ログインは管理権限がある人で行いましょう。

f:id:mohessu:20200808093813p:plain

管理権限を持っている人の場合、最近は MFA が自動的に有効となっているので安全です。まだ MFA を有効化していない場合はぜひ有効にしておきましょう。

f:id:mohessu:20200808094007p:plain

MFA は初期設定の状態により電話や SMS などで認証する形になっています。

f:id:mohessu:20200808093919p:plain

次に MFA 設定情報を作ります。

この設定情報をユーザーにあてることで設定していく形となります。

$sar= New-Object Microsoft.Online.Administration.StrongAuthenticationRequirement
$sar.RelyingParty= '*'
$sar.State = "Enabled"

RelyingParty は信頼先になります。 * を設定するのが良いようです。(ほかの値は何が取れるかわかりませんでした。おまじないと思っておきましょう、、、)

State は多要素認証を利用するかどうか。ですね。

State は Enabled のほか、 Enforced (強制)、 Disabled (無効)から選べます。

f:id:mohessu:20200808142153p:plain

1 名のユーザーに追加する場合は以下のコマンドレットを利用します。(最後の $sar の部分で先ほど作った MFA 設定情報を使う形ですね。)

Set-MsolUser -UserPrincipalName "UPN" -strongauthenticationrequirements @($sar)

複数ユーザーに適用したい場合は以下の形にして CSV ファイルなどから読み込みましょう。

$users=Import-Csv "c:\users.csv"
$users | foreach{Set-MsolUser –userprincipalname $_.userprincipalname -strongauthenticationrequirements @($sar)}

この書き方の場合 CSV ファイルはヘッダー付きのカンマ区切りで Unicode エンコードになっていれば OK です。ヘッダーは 1 行目から読まれるため、どこかに userprincipalname  の列があればOKです。

うまく活用すると少しの人数に分けながら MFA を有効にしていくことができます。

いきなり MFA が有効になると戸惑うことも考えられるため、適用ウインドウを考えながら設定を進めていくのがお薦めです。

音楽:昴の集い