Get the latest insights and exclusive content delivered to your inbox
Recently, I worked on an assignment that required extracting statistics related to user registration details in Microsoft Entra ID (Azure Active Directory). Specifically, the goal was to monitor the registration status of Multi-Factor Authentication (MFA), Self-Service Password Reset (SSPR), and Passwordless sign-in methods.
While Microsoft Entra provides a built-in dashboard for authentication method activity (For more details, please refer to Microsoft learn), it serves more as a snapshot than a custom reporting solution unless you export the data and visualize it. If you’re an administrator responsible for monitoring security and compliance, relying solely on a manual process like exporting CSVs and building pivot tables quickly becomes time-consuming and error-prone.
So how can we automate this?
The answer lies in Microsoft Graph API. When paired with Power BI, you can create a live, automated dashboard that pulls user registration details directly, without manual effort.
Use Case: Why Automate User Registration Reporting?
The native Entra dashboard is great for quick reviews, but it falls short when:
You need regular, scheduled insights (daily/weekly/monthly).
You want to build advanced reports or filter by custom attributes.
Your compliance team needs auditable records or exportable insights.
This is manageable for one-off reviews. But for ongoing monitoring, you’ll want something better and granting the access to the Entra Portal with read-access to view this data is not something i would prefer.
⚙️ Automated Solution: Microsoft Graph API + Power BI
Automating Entra ID User Registration Insights – Prerequisites
To integrate Microsoft Graph API with Power BI using app-only (unattended) access, you need the following:
Application (Client) ID and Secret Key.
Microsoft Graph API permissions.
Microsoft Graph endpoint URI.
Power BI Pro license (if report to be published to workspace and to be accessible by others).
Install Power BI Desktop and open the application with blank report.
Click Home / Get Data / Blank Query
Name it as a token (f you change the name to something else, you will need to use the same data function in the graph query) in the right-hand side properties
Open Advanced Editor and paste the following code (update with your Tenant ID, Client ID, and Secret):
If successful, you’ll see an access token string returned.
Step 5: Query User Registration Data
Click Home / Get Data / Blank Query again.
Name it UserRegistrationDetails
Paste the following code in Advanced Editor: (In the following, the token is referring to the above function created earlier). In the following query, I have selected all the columns that you could see in the Entra ID portal ,Reference
let Source = Json.Document(Web.Contents("https://graph.microsoft.com/v1.0/reports/authenticationMethods/userRegistrationDetails",[Headers=[Authorization="Bearer "&Token()]])),Expanded = Table.ExpandRecordColumn( Table.ExpandListColumn( Table.FromRecords({Source}),"value"),"value",{"id","userPrincipalName","userDisplayName","userType","isAdmin","isSsprRegistered","isSsprEnabled","isSsprCapable","isMfaRegistered","isMfaCapable","isPasswordlessCapable","methodsRegistered","isSystemPreferredAuthenticationMethodEnabled","systemPreferredAuthenticationMethods","userPreferredMethodForSecondaryAuthentication","lastUpdatedDateTime"},{"id","userPrincipalName","userDisplayName","userType","isAdmin","isSsprRegistered","isSsprEnabled","isSsprCapable","isMfaRegistered","isMfaCapable","isPasswordlessCapable","methodsRegistered","isSystemPreferredAuthenticationMethodEnabled","systemPreferredAuthenticationMethods","userPreferredMethodForSecondaryAuthentication","lastUpdatedDateTime"}),Final = Table.TransformColumns( Expanded,{"methodsRegistered", each Text.Combine(List.Transform(_, Text.From),","), type text})in Final
Step 6: Configure Credentials
When prompted, set authentication type to Anonymous.
You will see ‘information required about data privacy’ Ignore the privacy level warning and save.
Click on close and apply at the top left corner
You’ll now see your data loading into Power BI.
Once the changes are loaded, you will see the following on the right side of the Data
Visualize the Data
With the data model loaded, you can build dashboards for:
% of users MFA Registered vs Capable.
% of users with Passwordless enabled.
Users who are SSPR Capable but not registered.
Time trends using lastUpdatedDateTime.
Breakdown of preferred/default authentication methods.
You can now publish the report to the workspace and let the report run at different schedule times (max 8 ) and let the team access the stats easily.
Automating Entra ID User Registration Insights – Final Thoughts
Integrating Microsoft Graph API with Power BI unlocks a powerful reporting solution that’s scalable, secure, and maintainable. This approach helps ensure visibility into user authentication readiness, without manual overhead.
You can replicate the same approach for other Graph APIs—device reports, sign-in logs, or conditional access insights—and build a rich security and identity monitoring solution.
Please fill out the form, and one of our representatives will contact you in Less Than 24 Hours. We are open from Monday to Friday.
Never share sensitive information (credit card numbers, social security numbers, passwords) through this form.
Request Sent
Thank you for subscribing to our newsletter or requesting a quote.
You will receive our next month's newsletter. If you have requested a quote, we will get in touch with you as soon as possible.
Comment Sent
Thank for your reply!
Error
Something went wrong!
We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are accepting it.
Only authorized users can leave comments
Log In