Every control you built protects people. Attackers moved to the identities that are not people.
Microsoft states it plainly: recent cyber attacks show adversaries are increasingly targeting non-human identities over human ones. Applications, service principals and managed identities hold real access, hold multiple credentials, and almost nobody reviews them.

- 3 typesApplications, service principals, managed identities
- No MFABecause there is nobody to prompt
- Multiple credsPer workload, unlike a human user
- Rarely revokedBecause nobody knows when they should be
Eight things that govern the non-human half of your directory.
Knowing what you actually have
In Entra, workload identities are applications, service principals and managed identities. An application object is the global representation across all tenants, and a service principal is the local instance in a specific tenant that defines what the app can actually do there. The inventory almost always surprises people.
Credential sprawl, which is structural rather than careless
Microsoft puts it well: a human user typically has a single identity used across a broad range of resources, while a software workload may deal with multiple credentials for different resources, all of which need to be stored securely. That asymmetry is why credential hygiene is harder here.
Conditional Access for service principals you own
Conditional Access policies can be applied to service principals owned by your organisation, which brings location and risk conditions to non-human sign-ins. The scoping detail matters: this covers service principals your organisation owns, not every third-party application present in the tenant.
Real-time enforcement through continuous access evaluation
Continuous access evaluation for workload identities enables real-time enforcement of Conditional Access location and risk policies. That closes the same gap it closes for people: the window between a condition changing and the session actually stopping, which for a workload can otherwise be a long time.
Risk detection, including leaked credentials
Entra ID Protection detects risks such as leaked credentials for workload identities, contains threats and reduces risk. Leaked credentials are the detection that matters most here, because a service principal secret committed to a repository is one of the most common ways this population gets compromised.
Removing secrets entirely where you can
Managed identities are a special type of service principal that eliminates the need for developers to manage credentials, for workloads running on Azure. Workload identity federation covers the rest, for supported scenarios such as GitHub Actions, workloads on Kubernetes, and compute platforms outside Azure.
Reviewing the privileged ones
Access reviews for service principals cover service principals and applications assigned to privileged directory roles. This is the review nobody runs, and it is the one that finds the application granted a directory role during a project three years ago that nothing has used since.
Agent identities, the newest population
Entra Agent ID provides identity constructs for AI agents, offering enforced human sponsorship, lifecycle governance from provisioning through deactivation, and at-scale management applying centralised policy across all agent instances of a type. Worth designing for now rather than retrofitting later.
It is hard to track when a workload identity is created, or when it should be revoked.
Microsoft names that specific difficulty, and it explains why non-human identities accumulate in a way human accounts do not.
- A human account has a creation event somebody requested and a revocation event somebody eventually triggers, because a person joined and a person left. A service principal is created by a developer, a deployment, or a consent prompt, and nothing about the organisation changes when the thing it served stops being used.
- The credential position compounds it. A human user typically has one identity across many resources. A software workload may hold multiple credentials for different resources, each needing secure storage, each with its own expiry that somebody has to notice.
- That is why the assessment starts with inventory rather than policy. You cannot apply Conditional Access to service principals owned by your organisation, or review the ones holding privileged directory roles, until you know which exist and what each was for.
- The direction of travel is to remove credentials rather than manage them. Managed identities eliminate credential management for workloads running on Azure, and workload identity federation covers supported scenarios outside it including GitHub Actions, Kubernetes and other compute platforms. Every workload moved onto those is one fewer secret to rotate.
Four things that make this a programme rather than a clean-up.
We attribute ownership before we change anything
Microsoft notes it is hard to track when a workload identity is created or when it should be revoked. Attribution is the work that fixes that, and it is conversations rather than queries. An identity with a named owner can be reviewed, reduced and eventually retired. One without cannot be touched safely.
We remove secrets rather than rotating them better
Managed identities eliminate the need to manage credentials for workloads running on Azure, and workload identity federation covers supported scenarios such as GitHub Actions, Kubernetes and compute outside Azure. Every workload moved is one fewer secret that can leak or expire at an inconvenient moment.
We apply policy where it genuinely applies
Conditional Access for workload identities covers service principals owned by your organisation, and continuous access evaluation adds real-time enforcement of location and risk. Being precise about that scope avoids the common assumption that a policy covers every application present in the tenant.
We start the review with the privileged subset
Access reviews for service principals cover applications assigned to privileged directory roles, and that subset is where the risk concentrates. Reviewing a hundred privileged workload identities properly is better use of effort than skimming several thousand, and it is where the uncomfortable findings are.
Four phases across roughly six to eight weeks.
- 01Weeks 1 to 2
Inventory and attribute ownership
Every application, service principal and managed identity, with what it can access, what credentials it holds and when they expire. Then the harder half: who owns each one and what it is for. Identities nobody can attribute are the finding, not an inconvenience.
- Full workload identity inventory
- Permissions and directory roles mapped per identity
- Credential inventory with expiry dates
- Unattributable identities listed separately
- 02Weeks 3 to 4
Reduce permissions and remove secrets
Over-permissioned identities brought down to what they use, and credentials eliminated where the workload can move to a managed identity or to workload identity federation. Every secret removed is one that cannot leak, expire unexpectedly, or need rotating.
- Excess permissions identified and reduced
- Managed identity migration candidates confirmed
- Federation candidates identified for GitHub Actions and Kubernetes
- Remaining secrets moved to proper storage with rotation
- 03Weeks 5 to 6
Apply policy and detection
Conditional Access applied to service principals your organisation owns, continuous access evaluation enabled for real-time location and risk enforcement, and ID Protection risk detection reviewed so leaked credential findings reach somebody who will act on them.
- Conditional Access policies for owned service principals
- Continuous access evaluation enabled where supported
- Risk detection reviewed and routed to an owner
- Custom security attributes applied for classification
- 04Weeks 7 to 8
Establish review and lifecycle
Access reviews configured for service principals and applications in privileged directory roles, a creation process that captures ownership at the point of creation, and a decommission path so identities are removed when what they served is retired.
- Access reviews configured for privileged service principals
- Creation process capturing owner and purpose
- Decommission path defined and tested
- Agent identity approach agreed if AI workloads are in scope
Six situations where non-human identity is the exposure.
A business that found a secret in source control
The most common trigger, and Entra ID Protection detects leaked credentials for workload identities specifically. The immediate response is rotation, and the useful response is asking how many other secrets exist, where they are, and which of those workloads could stop using secrets entirely.
A regulated firm asked to evidence privileged access review
The review usually covers people and stops there. Applications and service principals assigned to privileged directory roles hold comparable access and are almost never included. Access reviews for service principals close that gap and produce the evidence in the same form as the human review.
An organisation with years of accumulated integrations
Every project leaves a service principal, and nothing removes them because nothing about the organisation changes when a project ends. Inventory and attribution typically find a meaningful proportion that nobody can account for, which is both a risk finding and a licensing conversation.
A company running CI/CD pipelines into Azure
Pipelines authenticating with long-lived secrets are a well understood risk and an avoidable one. Workload identity federation is supported for scenarios including GitHub Actions and workloads running on Kubernetes, which removes the stored credential from the pipeline entirely.
An operator whose outage was a credential expiry
A client secret expires, an integration stops, and nobody knew the date because nobody owned the identity. That is a availability incident caused by an identity governance gap, and the fix is inventory with expiry tracking, or better, moving the workload off secrets entirely.
A business starting to deploy AI agents
Agent identities are a distinct category with their own governance requirements, and Entra Agent ID provides enforced human sponsorship, lifecycle governance from provisioning through deactivation, and centralised policy across agent instances. Designing that in now is considerably easier than retrofitting it.
How UAE organisations govern non-human identity.
| Feature | Governed as a population | Reactive after an incident | Ungoverned |
|---|---|---|---|
Complete inventory | Maintained | Point in time | None |
Ownership attributable | Per identity | For some | No |
Permissions right sized | Yes | For the ones examined | No |
Secrets eliminated where possible | Managed identity and federation | Partly | No |
Conditional Access applied | To owned service principals | No | No |
Real-time enforcement | Continuous access evaluation | No | No |
Leaked credential detection acted on | Routed to an owner | Sometimes | Unseen |
Privileged ones reviewed | Access reviews | No | No |
Decommission path exists | Yes | No | No |
AI agent identities planned for | Yes | No | No |
Why the controls you already built do not transfer.
| Control | Human identities | Workload identities | |
|---|---|---|---|
| Multifactor authentication | Standard | Not applicable, nobody to prompt | |
| Number of credentials | Typically one identity | Potentially many, per resource | |
| Creation trigger | A person joins | A developer, deployment or consent | |
| Revocation trigger | A person leaves | Frequently nothing at all | |
| Conditional Access | Full policy set | Service principals your organisation owns | |
| Continuous access evaluation | Supported | Supported for workload identities | |
| Risk detection | ID Protection | ID Protection, including leaked credentials | |
| Periodic review | Access reviews | Access reviews for service principals in privileged roles | |
| Credential elimination | Passwordless methods | Managed identities and workload identity federation | |
| Security awareness training | Applicable | Not applicable |
Five steps, and the first one takes longer than it should.
- 1
Inventory applications, service principals and managed identities
What exists, what each can access, which hold privileged directory roles, which are yours and which belong to third parties. The distinction between your own service principals and third-party ones matters because Conditional Access for workload identities applies to the ones your organisation owns.
- 2
Attribute ownership and purpose
A named owner and a stated purpose per identity. This is the step that converts a list into something actionable, and identities nobody can attribute get flagged rather than quietly deleted, because deleting an unattributed identity is how an outage happens.
- 3
Reduce permissions and eliminate credentials
Permissions brought down to what is actually used, and workloads moved onto managed identities where they run on Azure or workload identity federation where they run elsewhere. Remaining secrets moved into proper storage with tracked expiry and a rotation owner.
- 4
Apply policy and route the detections
Conditional Access on service principals your organisation owns, continuous access evaluation for real-time location and risk enforcement, and ID Protection workload identity risk detections routed to somebody who will act, particularly leaked credential findings.
- 5
Establish review and lifecycle
Access reviews for service principals and applications in privileged directory roles, a creation process that captures ownership at the point of creation rather than years later, and a decommission path so retirement of a system retires its identity too.
What organisations ask about workload identities.
Fifteen questions about the non-human half of your tenant.
Inventory
- How many service principals exist?A number, not an impression.
- How many hold a privileged directory role?This is the critical subset.
- Can we name an owner for each?Usually not.
- How many managed identities do we run?And what do they access.
- Which are third party rather than ours?Policy scoping depends on it.
Credentials
- How many client secrets are in use?And where are they stored.
- When does the next one expire?Expiry causes outages.
- Has any secret ever been in source control?Check, do not assume.
- Could this workload use a managed identity?It eliminates credential management.
- Could this pipeline use federation?GitHub Actions is supported.
Control
- Any Conditional Access on service principals?For ones we own.
- Is continuous access evaluation enabled?For real-time enforcement.
- Who sees workload identity risk detections?Leaked credentials especially.
- Do we review privileged service principals?Access reviews support this.
- Do we have AI agents in the tenant?Agent ID governs them.
Count your service principals, then count the ones with a privileged directory role.
Then try to name an owner for each of the second group. Most organisations get part way through that list and stop, which is exactly the finding worth acting on.
Related Services
Explore more solutions that work great with this service
Privileged Identity Management
Just-in-time admin access, approval, and audit history you can download
Azure Key Vault
Secrets, keys and certificates out of config files
Entra ID Protection
On P1 you see a flag. On P2 you see why, and can act on it
Entra Access Reviews
Recurring recertification of groups, apps and roles
Entra Conditional Access
The control that decides who reaches your data
Continuous Access Evaluation
Sessions that stop when the condition changes
Azure Security Audit
Subscription audit, starting with the free tier you already own
Microsoft Entra
Identity and access management solutions