対象
Microsoft 365 にて Access Control によるフェデレーションを実施しているお客様が対象です。
目的
Microsoft 365 (Microsoft Entra ID) のモダン認証 (先進認証) のセッションを管理者より切断し、ユーザーへ Microsoft 365 の再認証を要求します。
よくある使い方としては、フェデレーション実行後に Access Control を経由した Microsoft 365 へのログインを強制する際に実行します。
注意事項
1. 本記事の内容は 2024 年 11 月時点での Microsoft 社の製品内容をもとにしたものです。以後アップデートや仕様変更により、予告なく変更される場合があります。
2. 本手順は、onmicrosoft.com ドメインユーザーを使用して実行します。
3. 必要に応じて事前にユーザーへのアナウンスをおすすめします。
手順
事前確認事項
1. Microsoft Graph PowerShell SDK モジュールが PowerShell にインストールされている必要があります。あらかじめ以下の内容が完了していることを確認ください。
Microsoft Graph PowerShell SDK のインストール
1. Microsoft Graph に接続
Windows PowerShell を管理者権限で起動し、次のコマンドを実行してください。
Connect-MgGraph -Scopes "Domain.ReadWrite.All","Directory.AccessAsUser.All" -ErrorAction Stop
ログインダイアログが表示されるので、Microsoft 365 の全体管理者権限を持つアカウントでログイン処理を続行してください。
2. モダン認証セッションの切断
ユーザー単位、ドメイン単位、テナント単位での切断が可能です。
※ 各コマンドの実行後、実際に切断されるまでに暫く時間がかかる事があります。
2.1. ユーザー単位のモダン認証セッションの切断
Revoke-MgUserSignInSession -UserId "ユーザー名"
実行例 : 対象ユーザーが "user@example.com" の場合、コマンドは以下となります。
Revoke-MgUserSignInSession -UserId user@example.com
2.2. ドメイン内の全ユーザーのモダン認証セッションの切断
ドメイン内の全ユーザーのモダン認証セッションの切断を行うためには、次のコマンドを実行します
foreach($user in Get-mguser -ALL | where { ($_.userprincipalname-like"*@ドメイン名")} ){Revoke-MgUserSignInSession -UserId $user.id}
実行例 : 対象ドメインが "example.com" の場合、コマンドは以下となります。
foreach($user in Get-mguser -ALL | where { ($_.userprincipalname-like"*@example.com")} ){Revoke-MgUserSignInSession -UserId $user.id}
2.3. テナント内の全ユーザーのモダン認証セッションの切断
テナント内の全ユーザーのモダン認証セッションの切断を行うためには、次のコマンドを実行します。
foreach($user in Get-MgUser -ALL){Revoke-MgUserSignInSession -UserId $user.id}
3. Microsoft Graph から切断する
次のコマンドを実行し、Microsoft Graph から切断します。
Disconnect-MgGraph
※ [ Connect-MgGraph ] コマンドでは、次回に起動した際にはサインインを求められずに、前回の認証済みの資格情報が保持されます。そのため、サインインを確実に切断するためには [ Disconnect-MgGraph ] を実施する必要がございます。