A cloud-based identity and access management service for securing user authentication and resource access
I understand you want to extract a report of each user's Per-User MFA registration status (Enabled, Disabled, or Enforced).
You can use PowerShell or the Microsoft Graph API to achieve this. For a single user, you can use the following Graph API endpoint:
GET https://graph.microsoft.com/beta/users/{replace-user-id}/authentication/requirements
This endpoint retrieves the per-user MFA status for one user.
To get the per-user MFA status for all users, you can use the PowerShell script below:
Connect-Entra -Scopes 'User.Read.All', 'UserAuthenticationMethod.Read.All', 'Policy.Read.All'
$users = Get-EntraUser -All -Select Id, UserPrincipalName, DisplayName
Write-Output "Amount of requests within `"fetchAll`": $($users.Length)"
$usersReport = @()
$users | ForEach-Object {
$userObj= New-Object -TypeName PSObject
$userObj | Add-Member -Name 'Id' -MemberType NoteProperty -Value $_.id
$userObj | Add-Member -Name 'DisplayName' -MemberType NoteProperty -Value $_.DisplayName
$userObj | Add-Member -Name 'UserPrincipalName' -MemberType NoteProperty -Value $_.UserPrincipalName
$userObj | Add-Member -Name 'PerUserMFAState' -MemberType NoteProperty -Value (Get-EntraBetaUserAuthenticationRequirement -UserId $_.id).PerUserMFAState
$usersReport += $userObj
}
$usersReport | ft
Hope this helps. Do let us know if you any further queries.
Please remember to "Accept Answer" if answer helped you.This will help us as well as others in the community who might be researching similar questions.