Skip to content

Inactive Entra ID Users

The question it answers: Which enabled accounts have not signed in for longer than the inactivity threshold, or never?

Enabled accounts whose most recent sign-in - interactive, non-interactive or successful - is older than the inactivity threshold (Settings > Report thresholds), or who never signed in. Accounts created within the threshold are left out.

Where in the appEntra ID › Users › Inactive Users
WorkloadEntra ID
KindTable
DataBuilt from the tenant data IntensiveReports keeps in memory and refreshes in the background, so it opens at once.
LicenceMicrosoft Entra ID P1 (sign-in activity).
Report id (API and MCP)entra.users.inactive
An empty result meansEvery enabled member signed in within the inactivity threshold.
ColumnKeyType
Display NameDisplayNameText
User Principal NameUserPrincipalNameText
TypeUserTypeText
Last sign-inLastSignInDateTime
Days sinceDaysSinceNumber
FilterKey (API)On when the page opens
Hide guestshide-guestsYes

Licence: Microsoft Entra ID P1 (sign-in activity).

Application permissions on the IntensiveReports app registration (all permissions):

PermissionAPIWhat it allowsNote
User.Read.AllMicrosoft GraphRead all users’ full profiles
User-LifeCycleInfo.Read.AllMicrosoft GraphRead all users’ lifecycle information
AuditLog.Read.AllMicrosoft GraphRead all audit log data
Data sources it reads
  • GET /v1.0/users
  • GET /v1.0/users?$select=signInActivity
GET /ir-api/v1/reports/entra.users.inactive?size=100
GET /ir-api/v1/reports/entra.users.inactive?filter=hide-guests

An AI assistant reads it with the MCP tool get_report and the id entra.users.inactive. The client needs the Read grant for Entra ID. See Using the API.