Skip to content

Credentials Added to Microsoft First-party Apps

The question it answers: Which Microsoft first-party service principals have had a secret or certificate added in this tenant?

Microsoft’s own apps (Exchange, SharePoint, Teams and hundreds more) exist in every tenant as service principals. They do not need credentials from you. A secret or authentication certificate added to one lets its holder act as a trusted Microsoft app - the technique Midnight Blizzard used. App Credential Expiry lists credentials by expiry; this report flags the ones on Microsoft-owned apps.

Where in the appEntra ID › Identity Configuration › Credentials on Microsoft Apps
WorkloadEntra ID
KindFindings list · dashboard tile
DataRead from Microsoft 365 when someone first opens it, then kept for the report cache lifetime (Settings > Data & cache, 1 hour unless changed).
LicenceNo extra licence needed.
Report id (API and MCP)entra.configuration.first-party-credentials
ColumnKeyType
SeveritySeverityStatus
Credential typeCategoryText
Microsoft appSubjectLink
CheckSettingText
CredentialValueText
FindingFindingText
ValidityDetailText
AddedWhenDate
CountNumberNumber

A findings list hides columns that no row fills. Severity is Critical, Serious, Warning, OK or Info; rows rated Critical, Serious or Warning need attention (Working with findings).

Licence: No extra licence needed.

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

PermissionAPIWhat it allowsNote
Application.Read.AllMicrosoft GraphRead all applications
Data sources it reads
  • GET /v1.0/servicePrincipals?$select=appOwnerOrganizationId,passwordCredentials,keyCredentials
GET /ir-api/v1/reports/entra.configuration.first-party-credentials?size=100

An AI assistant reads it with the MCP tool get_report and the id entra.configuration.first-party-credentials. The client needs the Read grant for Entra ID. See Using the API.