top of page

The Security Bridge™️- Identity Threat Protection in Microsoft 365 - Part 2: Your Tenant Has More Identities Than Employees

  • Writer: Derek Morgan
    Derek Morgan
  • Jul 22
  • 5 min read

Organizations now manage a median of 109 machine identities for every human identity in their environment, up from 82 to 1 last year, according to Palo Alto Networks' 2026 Identity Security Landscape report, a survey of 2,930 cybersecurity decision-makers. AI agents account for roughly 79 of those 109, about 72.5% of the machine identity population. Machine identities are projected to grow another 77% over the next 12 months, agent identities specifically 85%.


Other 2026 reports land on different numbers. KPMG puts the ratio at 80 to 1. The Cloud Security Alliance found ratios as high as 144 to 1 in cloud-native environments. Rubrik Zero Labs cites 45 to 1. The methodology varies, but every one of these reports agrees on the direction: the identity population in a typical Microsoft 365 tenant is overwhelmingly non-human, and growing faster than the human side.


An access model built around reviewing what employees can reach doesn't scale to a population that's this lopsided. Identity security covers every entity capable of accessing data or making decisions: users, service principals, and agents alike.


The three identity classes

A Microsoft 365 tenant contains three distinct kinds of identity, and each needs a different governance model. Human identities are Entra ID users, the accounts your access reviews and MFA policies were built around. Workload identities are service principals, managed identities, and automation accounts, the identities behind app registrations, scripts, and integrations. Agent identities are the newest class, Entra Agent ID identities that give AI agents their own sign-in and their own permissions, capable of acting without a human in the loop.


Humans get access reviews and MFA. Workload identities need credential lifecycle management, someone has to own the secret, rotate it, and retire it. Agent identities need both, plus scoping for what an autonomous entity is actually allowed to decide. Most identity governance programs still only build for the first class.


Split Microsoft Entra admin center screens showing App registrations and Enterprise applications | All applications lists.
Screenshot of the Microsoft Entra admin center showcasing app registrations and enterprise applications. The left panel displays details of registered applications, including their names, client IDs, and creation dates, while the right panel features a comprehensive list of all enterprise applications, complete with object IDs and organization management tools.

Ownership is a takeover primitive


Dark infographic: service principal owner adds credential, authenticates app-only, and inherits permissions; no MFA or conditional access.
"Diagram illustrating how service principal ownership facilitates unauthorized access by adding credentials, authenticating app-only, and inheriting all permissions and roles, bypassing MFA and conditional access."

Service principals have owners, and an owner can add a credential, a client secret or certificate, to the service principal they own. Once that credential exists, anyone holding it can authenticate as the service principal in an app-only context. That app-only context inherits every permission and directory role the service principal holds.


Two independent 2026 disclosures land on this same mechanism. Silverfort's research on the Entra Agent ID Administrator role found that the role's scope let an account take ownership of almost any service principal in a tenant, not just agent-related ones, add a credential, and inherit its permissions, including a documented case of hijacking a Global Administrator account this way. Microsoft patched the specific scope overreach in April 2026. Semperis's EntraGoat research documented the same underlying primitive through a different path: a compromised low-privilege user discovers ownership of a service principal with a privileged directory role, adds a secret, and escalates to Global Administrator. Different entry points, same mechanism. Silverfort's research also found that 99% of tenants have at least one privileged service principal, one holding a directory role like Global Administrator or Privileged Role Administrator.


Directory roles aren't the only path to that outcome. A service principal doesn't need a role assignment to be dangerous, a handful of Microsoft Graph API permissions get it there on their own. RoleManagement.ReadWrite.Directory lets a service principal grant any directory role, including Global Administrator, to any principal it chooses, including itself. Application.ReadWrite.All lets it manage credentials on other applications, chaining into the same ownership-takeover primitive from a different angle. A service principal holding either permission is functionally as dangerous as one that already has Global Administrator, and an audit that only checks for directory role assignments will miss it entirely.


Microsoft Entra admin center shows Test-Service-Principal Owners page with no application owners found, highlighted by red arrow and crying emoji
Microsoft Entra admin center interface displaying the "Owners" section for a test service principal, highlighting that there are no application owners currently assigned.

The detection gap

Entra ID records ownership changes and credential additions to the audit log. It doesn't alert on either by default. An attacker adding themselves as an owner, or adding a new secret to a privileged service principal, generates no notification unless an organization has built that detection rule itself.


Microsoft Entra admin center showing Test-Service-Principal Certificates & secrets, Client secrets tab with secret table highlighted in red and a thumbs-down icon
Client secrets management in Microsoft Entra Admin Center, showing four stored secrets with their descriptions, expiration dates, and partially hidden values. A thumbs-down emoji highlights a section, indicating a lack of client secret rotation.

What this looks like in production

I worked with a client that had several service principals holding privileged API permissions with no owner, or an owner who'd left the organization months earlier. We interviewed the current team, and nobody could account for what the service principals did or why they existed. Rather than delete them outright, we ran what's sometimes called a scream test: removed the API permissions and client secrets, disabled the service principals, and documented the change, then waited to see if anything broke. Nothing did.


Another client had a service principal assigned the Application Administrator role, scoped for a project that needed it to create other service principals. The project ended. The role assignment didn't. Audit logs showed someone had used that service principal after the project closed, meaning a role capable of creating and managing other application identities had been sitting active with no current business justification. We removed the role and disabled the service principal immediately.


In a recent client engagement, I saw a third version of this problem: a small group of service principals still carrying client secrets set to the legacy "never expires" option. Unlike the first two examples, these had an accountable owner, so the fix was procedural. We generated new secrets, worked with each owner to rotate them into the consuming applications, set up a workflow to notify owners ahead of future expirations, and removed the old secrets immediately once the new ones were confirmed working.


Business case

Silverfort's finding that 99% of tenants carry at least one privileged service principal means this exposure is close to universal. Pair that with Palo Alto Networks' growth numbers, machine identities up 77%, agent identities up 85% over the next 12 months, and the ungoverned population is compounding faster than most identity governance programs are built to track.


Dark infographic shows 1 human identity vs 109 machine+agent identities, with a note that 72.5% are AI agents.
In 2026, the number of machine identities per human identity is projected to rise to 109, with approximately 72.5% being AI agents, according to the Palo Alto Networks Identity Security Landscape report.

What to validate this week

  • Inventory every service principal holding a directory role, using Microsoft Graph or PowerShell, not a manual spreadsheet

  • Inventory service principals holding RoleManagement.ReadWrite.Directory or Application.ReadWrite.All, these grant Global Administrator-equivalent capability without any directory role assignment, so the check above won't catch them

  • Audit ownership on every privileged service principal; treat no-owner and disabled-owner cases as Tier 1 findings

  • Build detection rules for service principal ownership changes and credential additions, since Entra ID doesn't alert on either by default

  • Establish a quarterly ownership and credential-health review cadence for privileged service principals

  • Prefer managed identities over app secrets wherever the workload supports it, removing credential lifecycle risk instead of managing it


Microsoft Entra admin center showing Application Administrator assignments table with Test-Service-Principal highlighted by red arrow.
The Microsoft Entra admin center displays active application administrator assignments, highlighting "Test-Service-Principal" as part of the Cloud Harbor Demo with direct membership and a specified assignment duration.

The takeaway

Identity security covers every entity capable of accessing data or making decisions: users, service principals, and agents alike. Ownership is the control point that decides whether that population is governed or invisible, and right now, in most tenants, it's invisible. Part 3 turns to Conditional Access: what it actually prevents, and where prevention has to hand off to detection.

Comments

Rated 0 out of 5 stars.
No ratings yet

Add a rating
bottom of page