TL;DR: JIT provisioning creates enterprise app accounts at first login through SSO, reducing onboarding friction but leaving deprovisioning, attribute drift, and role cleanup unresolved unless SCIM or another lifecycle process is in place, according to WorkOS. The control is useful, but it only solves the start of identity lifecycle management, not the full governance problem.
At a glance
What this is: This is an analysis of just-in-time provisioning for enterprise SSO, with the key finding that it automates first-login onboarding but does not solve offboarding or lifecycle synchronisation.
Why it matters: It matters because IAM teams still need separate controls for account creation, deprovisioning, and role accuracy across human, NHI, and autonomous identity programmes.
👉 Read WorkOS's explanation of JIT provisioning for enterprise apps
Context
Just-in-time provisioning is a first-login account creation pattern inside SSO flows, not a full identity lifecycle control. It reduces manual onboarding work, but the governance gap appears immediately after creation because access removal and attribute reconciliation depend on something else.
For IAM and IGA teams, that distinction matters. JIT can reduce ticket volume and speed access, but it does not by itself answer how to retire accounts, keep entitlements current, or prove clean offboarding across an application estate.
Key questions
Q: How should security teams use JIT provisioning without creating offboarding gaps?
A: Use JIT only for first-login account creation and pair it with SCIM, directory sync, or a separate disable process for removal. The key governance rule is that a user should not need to log in again for access to be revoked. JIT handles arrival; another control must handle departure.
Q: Why do JIT-provisioned accounts create governance risk in larger SaaS estates?
A: Because JIT depends on login events, it can leave dormant accounts, stale attributes, and inconsistent roles behind in applications that no longer receive active users. In a large estate, those leftovers become audit problems and can produce access mismatches long after the user has changed jobs or left.
Q: What breaks when a service provider relies on email address as the user key?
A: Email addresses change, especially during name changes, mergers, and domain migrations. If the application uses email as the primary key, JIT can create duplicate accounts or fail to reconnect a returning user to the correct record. A durable subject identifier prevents that ambiguity.
Q: Who is accountable when a JIT-created account is never removed?
A: The service owner and identity team share accountability, but the control failure usually sits in lifecycle design. If deprovisioning depends on a future login, no one has a reliable revocation trigger. Organisations should assign offboarding ownership to a control that acts independently of user activity.
Technical breakdown
How JIT provisioning uses SAML and OIDC claims
JIT provisioning sits inside the authentication exchange. After the identity provider verifies the user, it returns a SAML assertion or OIDC token carrying claims such as email, name, department, or group membership. The service provider checks whether a record already exists, then creates or updates the account from those claims. This makes JIT a reactive provisioning pattern: identity data is consumed at login time, not pushed continuously. The technical dependency is on attribute quality, stable identifiers, and consistent mapping between IdP and application fields.
Practical implication: teams need a stable user identifier and explicit attribute mapping before enabling first-login provisioning.
JIT provisioning vs SCIM lifecycle management
JIT and SCIM solve different parts of the lifecycle. JIT creates accounts when a user arrives, while SCIM pushes create, update, and disable events from the identity system to connected applications. That means JIT is suited to onboarding convenience, but SCIM is the mechanism that closes the deprovisioning gap. In governance terms, JIT is event-driven at login, while SCIM is state-driven across the lifecycle. Treating them as interchangeable is where programme design breaks down, especially for organisations that need auditability and timely offboarding.
Practical implication: pair JIT with SCIM or another offboarding workflow when access removal and audit evidence matter.
Why JIT account updates depend on the next login
Most JIT implementations can refresh attributes on subsequent logins, but only when the user returns. That means changes in title, department, or group membership are not synchronised in real time. If a user never signs in again, the application may continue holding stale identity data indefinitely. This is why JIT is not a complete governance engine. It depends on future authentication events to reconcile state, which creates a blind spot for dormant accounts and any application that relies on current entitlements for authorisation decisions.
Practical implication: treat JIT-fed attributes as provisional and use continuous sync for high-risk entitlements.
Breaches seen in the wild
- Cisco DevHub NHI breach — IntelBroker exploited exposed Cisco credentials, API tokens and keys in DevHub.
- Schneider Electric credentials breach — exposed credentials gave attackers access to Schneider Electric Jira, exfiltrating 40GB.
Read our 52 NHI Breaches Analysis report for a comprehensive view of breaches impacting Non-Human Identities including AI Agents.
NHI Mgmt Group analysis
JIT provisioning is a lifecycle convenience, not a lifecycle control. It reduces manual onboarding work by creating an account at first login, but it leaves offboarding, entitlement drift, and stale records outside its operating model. The field should stop treating first-login automation as evidence of governance maturity. Practitioners should judge it as an access-entry feature, not as identity lifecycle management.
Reactive provisioning creates a blind spot for accountability. The access decision is made when the user authenticates, but the application is not continuously informed when the identity state changes elsewhere. That means the trust relationship is anchored to a login event, not to the ongoing identity record. The practitioner implication is clear: auditability depends on whether the control can prove both arrival and departure, not just initial entry.
Stable identifiers matter more than email-based convenience. JIT only works cleanly when the service provider can match a returning user to the same identity record every time. Email changes, mergers, and domain shifts all create ambiguity if the application keys identity too loosely. The broader governance lesson is that identity persistence needs a durable anchor, or account lifecycle control becomes guesswork.
SCIM and JIT are complementary, not competing patterns. JIT covers the moment a user first appears, while SCIM covers the state of the user after that moment. Organisations that collapse the two into one implementation usually expose themselves to offboarding failures and stale entitlements. Practitioners should design the control stack around lifecycle completeness, not login convenience.
JIT-first architectures expose the assumption that access exists only when a user is active. That assumption was designed for human-paced onboarding queues and short-lived provisioning delays. It fails when the application must demonstrate current access state across a large estate, because dormant accounts can persist after employment changes. The implication is that lifecycle governance must be treated as a continuous state problem, not a login-time event.
From our research:
- The average estimated time to remediate a leaked secret is 27 days, despite 75% of organisations expressing strong confidence in their secrets management capabilities, according to The State of Secrets in AppSec.
- That same research found that organisations maintain an average of 6 distinct secrets manager instances, which fragments control and weakens central governance.
- For the lifecycle problem behind JIT onboarding, review the NHI Lifecycle Management Guide for a broader view of provisioning, rotation, and offboarding.
What this signals
JIT onboarding will keep spreading because it removes friction, but the governance burden simply moves downstream. The programme risk is not account creation speed, it is whether the estate can prove offboarding, entitlement accuracy, and ownership after the initial login event. Teams that treat first-login automation as lifecycle maturity will carry hidden cleanup debt into audits and incidents.
Identity data quality becomes the real control boundary. If the application cannot reconcile a durable user record, every later lifecycle decision becomes brittle. For teams standardising enterprise access, the safer path is to anchor JIT in a wider lifecycle model that includes the NHI Lifecycle Management Guide concepts of provisioning, rotation, and offboarding, even when the subject is human identity.
Access review programmes need to account for stale JIT-created accounts. A login-triggered model can leave records that look legitimate long after the identity has moved on. That is a signal for IAM and IGA teams to align JIT with the control assumptions behind OWASP Non-Human Identity Top 10, especially where automated identities and human accounts share the same governance plane.
For practitioners
- Separate onboarding from offboarding control Use JIT for first-login account creation, but assign deprovisioning to SCIM, directory sync, or a formal disable workflow that does not depend on another login event. Document which applications still rely on JIT only.
- Require durable identity keys Map users with a persistent identifier such as a NameID or sub claim rather than relying on email alone. Store that identifier in the application so changed names or domains do not create duplicate accounts.
- Validate attribute mappings before go-live Review which IdP claims populate roles, departments, and entitlements, and test missing or malformed attributes before enabling production access. Keep the mapping logic explicit for each connected application.
- Define dormant-account handling explicitly Decide how long a JIT-created account may remain inactive before review, disablement, or reconciliation. Tie that rule to access review and offboarding processes rather than assuming the next login will clean it up.
Key takeaways
- JIT provisioning solves first-login onboarding, but it does not close the lifecycle gap that starts after account creation.
- The operational risk is stale access and inconsistent identity state, especially when deprovisioning depends on a future login that may never happen.
- Practitioners should pair JIT with durable identifiers, explicit attribute mapping, and an independent offboarding mechanism.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
OWASP Non-Human Identity Top 10 address the attack and risk surface, while NIST CSF 2.0 and NIST Zero Trust (SP 800-207) set the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| OWASP Non-Human Identity Top 10 | NHI-03 | JIT-only onboarding leaves deprovisioning and lifecycle gaps exposed. |
| NIST CSF 2.0 | PR.AC-4 | Access permissions must reflect current identity state, not just login events. |
| NIST Zero Trust (SP 800-207) | IA-2 | SSO-backed identity assurance underpins JIT account creation. |
Pair first-login provisioning with a separate offboarding mechanism and review stale accounts regularly.
Key terms
- Just-in-time provisioning: A provisioning pattern that creates a user account when the user first authenticates through SSO. It reduces manual onboarding work, but it is still a login-triggered event, so it does not continuously manage offboarding or entitlement drift.
- Service provider: The application that relies on an external identity provider for authentication and account creation. In JIT flows, the service provider receives identity assertions or token claims and uses them to create or update the local user record.
- Identity provider: The system that authenticates the user and supplies verified identity attributes to connected applications. In JIT provisioning, it is the source of truth for claims such as email, department, and group membership, but only at the moment of login.
- SCIM provisioning: A standard for synchronising user lifecycle changes between identity systems and applications. Unlike JIT, SCIM can push create, update, and deprovisioning events without waiting for another login, which makes it more suitable for complete lifecycle governance.
Deepen your knowledge
JIT provisioning and identity lifecycle governance are core topics in our NHI Foundation Level course, the industry's only accredited NHI security programme. If you are standardising SSO onboarding while closing offboarding gaps, it is worth exploring.
This post draws on content published by WorkOS: JIT provisioning explained, automated user onboarding for enterprise apps. Read the original.
Published by the NHIMG editorial team on 2026-05-19.
NHI Mgmt Group — the independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org