こんにちは、サイオステクノロジーの服部です。
Graph APIを用いたユーザーのMFAリセットについて調査する機会がありましたので、簡単にまとめていきます。
ユーザーのMFAリセット
ユーザーのMFAリセットは、管理者がAzure Portal上から実施することが可能です。
外部システムと連携してMFAリセットを行いたいとの要件があった場合、APIからこの操作を実施する必要があります。
日本語資料ではPowershellのMSOlineモジュールを使用した方法が見つかりますが、このモジュールは非推奨のため、Graph APIでリセットを行う必要があります。
MSGraphのgithubリポジトリにてGraph APIを用いたMFAリセットのスクリプトが公開されていたため、こちらを試してみました。
https://github.com/orgs/msgraph/discussions/55
検証
パスワード以外に4つの認証方法を追加したユーザーを用意しました。
以下のスクリプトをPowershellにて実行します。実行に必要なスコープはUserAuthenticationMethod.ReadWrite.All
となります。
※実行前に、Graph Powershellモジュールのインストールが必要です。
Import-Module Microsoft.Graph.Identity.SignIns
Connect-MgGraph -Scopes UserAuthenticationMethod.ReadWrite.All
$userId = "テストユーザーのUPN"
<上記githubページのスクリプト2行目移行(function DeleteAuthMethod~以降)>
実行中に以下のエラーが表示される場合がありますが、デフォルトに指定されている認証方法を削除した際に発生するエラーになります。
※デフォルトの認証方法のみ登録されている場合は削除できます。
デフォルトの認証方法はAPIから取得できないため、スクリプトではエラーが発生した認証方法を最後に再度削除しています。
スクリプトの実行後テストユーザーの認証方法を確認すると、多要素認証の登録がリセットされていることが確認できました。
まとめ
Graph APIを用いてMFAリセットが可能であることが確認できました。
皆様のご参考になれば幸いです。
参考
多要素認証 (MFA) のリセット手順 2022 年版
Delete all authentication methods for a user