Subscribe to the Non-Human & AI Identity Journal

What do teams get wrong about Azure just-in-time access?

The most common mistake is treating JIT as a human-admin feature and assuming role activation alone solves privilege risk. That leaves service principals, managed identities, automation accounts, and AI agents with persistent permissions that still create a large attack surface. JIT only works when it is applied across the full identity estate.

Why This Matters for Security Teams

Azure just-in-time access is often adopted to reduce standing privilege, but teams frequently scope it too narrowly. The mistake is assuming that role activation for a human administrator meaningfully addresses privilege risk across the entire Azure estate. That leaves service principals, managed identities, automation accounts, and API-driven workloads with persistent permissions, which is where attackers increasingly look for durable access paths. The OWASP Non-Human Identity Top 10 and NHI Management Group’s Ultimate Guide to NHIs both point to the same operational reality: non-human identities outnumber humans and are routinely over-privileged. NHI Mgmt Group research also shows that 97% of NHIs carry excessive privileges, which makes partial JIT implementations a false sense of control.

For security teams, the real issue is not whether JIT exists in the tenant, but whether it is enforced consistently across human and machine identities, with clear expiry, approval, and revocation workflows. In practice, many security teams encounter privilege abuse only after a service principal or automation account has already been used to pivot, rather than through intentional review of the full identity estate.

How It Works in Practice

Azure JIT is most effective when it is treated as a time-bound privilege workflow, not a checkbox on a privileged role assignment. For human admins, that usually means requesting access, receiving approval, activating a role for a short window, and automatically losing access when the window closes. For non-human identities, the same principle should be translated into workload-specific controls: short-lived credentials, scoped tokens, and conditional policy that only grants the minimum access needed for the task.

The implementation pattern is increasingly aligned with Microsoft Entra Privileged Identity Management, but best practice is evolving beyond human-admin workflows. Teams should look at:

  • JIT activation for privileged roles only, with MFA, approval, and expiration.
  • Separate governance for service principals, managed identities, and automation accounts.
  • Short-lived secrets or federated workload identity instead of long-lived static credentials.
  • Policy-as-code and runtime authorization checks, rather than relying only on predefined role mappings.
  • Continuous monitoring of privilege activation, token use, and unusual downstream tool chaining.

That broader model matches the guidance in the Ultimate Guide to NHIs — Key Challenges and Risks, where over-privilege and weak lifecycle controls are recurring failure modes. It also aligns with the CISA Zero Trust Maturity Model, which emphasises continuous verification instead of permanent trust. These controls tend to break down when Azure estates mix interactive admins, legacy automation, and ungoverned app identities because privilege boundaries become inconsistent and hard to revoke cleanly.

Common Variations and Edge Cases

Tighter JIT controls often increase operational overhead, requiring organisations to balance reduced standing privilege against deployment friction and recovery speed. That tradeoff is especially visible in Azure environments with DevOps pipelines, break-glass accounts, and workloads that must run unattended. Current guidance suggests that these cases should not be exempt from governance, but they may need different patterns such as scoped workload identity, temporary federation, or approval-based elevation for exceptional actions.

One common edge case is managed identity. Teams sometimes assume managed identity is automatically safe because there is no shared password, but the identity can still have persistent, excessive permissions if the role assignment is too broad. Another is automation accounts used for patching, backup, or remediation. Those identities often need reliable access, but that does not justify permanent contributor-level scope. NHI Mgmt Group’s Azure Key Vault privilege escalation exposure research is a useful reminder that secret handling and role design are tightly linked.

There is no universal standard for exactly how Azure should apply JIT to every machine identity yet, but the direction is clear: reduce standing permissions, prefer short-lived access, and continuously verify who or what is acting. The hard part is not enabling JIT for admins; it is proving that every credential path in the tenant obeys the same lifecycle discipline.

Standards & Framework Alignment

This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.

OWASP Agentic AI Top 10 and OWASP Non-Human Identity Top 10 address the attack and risk surface, while NIST CSF 2.0 set the governance and control requirements practitioners need to meet.

Framework Control / Reference Relevance
OWASP Agentic AI Top 10 JIT must fit autonomous and machine identities, not just human admins.
OWASP Non-Human Identity Top 10 NHI-03 Addresses weak rotation and overlong credential lifetimes behind JIT gaps.
NIST CSF 2.0 PR.AC-4 JIT is a least-privilege access control practice across identity types.

Apply runtime, context-aware privilege limits to every agent and workload identity.