MFA Status of Users

Argus Technology 0 Reputation points
2025-07-14T15:44:18.33+00:00

We want to extract the report of the User's MFA registration status in the form of whether it is Enabled, Enforced, or Disabled.

Microsoft Security | Microsoft Entra | Microsoft Entra ID
0 comments No comments

2 answers

Sort by: Most helpful
  1. Gudivada Adi Navya Sri 21,095 Reputation points Moderator
    2025-07-14T17:14:56.38+00:00

    Hi Argus Technology

    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.

    Was this answer helpful?

    0 comments No comments

  2. Vasil Michev 127.6K Reputation points MVP Volunteer Moderator
    2025-07-14T16:37:21.34+00:00

    You mean the good old per-user MFA status? You can use the following query:

    GET https://graph.microsoft.com/v1.0/users?$select=id,userPrincipalName,displayName,perUserMfaState
    

    See the official documentation for more info: https://learn.microsoft.com/en-us/graph/api/authentication-update?view=graph-rest-beta&tabs=http#example-2-update-a-users-mfa-state

    Was this answer helpful?


Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.