Ever tried onboarding 50 new hires on a Monday morning only to realize half of them can't even open their email? It's a total nightmare for IT teams, honestly.
Manual provisioning is basically the "old way" where an admin has to go into every single app—slack, jira, salesforce— and create a login by hand. It’s slow, boring, and prone to mistakes.
I've seen teams struggle with this for weeks. But there is a better way to handle it, which we'll dive into next with how jit actually works.
Ever wonder why you can just "Sign in with Google" to a new app and—boom—your profile is already there with your name and photo? That’s not magic, it's just-in-time provisioning doing the heavy lifting behind the scenes.
Think of jit as the "lazy" (but efficient) way to manage users. Instead of an admin pre-creating 500 accounts in a database, the account doesn't even exist until the person actually tries to log in.
When a user hits that sso button, the Identity Provider (idp) sends over a bundle of data. In SAML, this is an XML-based "assertion." If you're using OIDC (OpenID Connect), it's usually a JSON Web Token (jwt) containing "claims." This bundle acts like a digital passport.
dept_id: "engineering" means the user should get group: "dev-team" permissions. Imagine a hospital floor where nurses need quick access to a new scheduling app.
role: "head_nurse".If you're ready to stop making accounts by hand, here is the basic roadmap for setting this up. It's not as scary as it sounds but you gotta be precise.
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress to just email.So, you've got sso running, but now you're stuck wondering if you should stick with jit or go full scim. It's a classic dev dilemma—do you want the "set it and forget it" vibe of jit, or the total control that comes with a scim sync?
The big issue with jit is that it's a one-way street for onboarding. A 2024 report from One Identity highlights that while jit reduces admin load, it doesn't handle the "offboarding" part of the lifecycle.
If a dev leaves your fintech firm, jit won't tell the app to disable their seat. The account just sits there. This is why jit is a "double-edged sword"—it's great for Zero Trust because it prevents "ghost accounts" from being created early, but it leaves "orphaned accounts" when people leave. If you need instant deprovisioning for compliance in healthcare or finance, you're gonna need scim eventually.
Getting jit right is mostly about not being lazy with your mapping logic. If you just dump every user into a generic bucket, you're asking for a security headache later on.
I've seen a retail firm mess this up by mapping "Store Manager" to "Global Admin" in their inventory api. Not a fun weekend for the on-call team.
Jit is a massive time saver, but it works best when you treat it as part of a bigger identity strategy. Honestly, just keep your mappings tight and your logs readable and you'll be fine.
*** This is a Security Bloggers Network syndicated blog from SSOJet - Enterprise SSO & Identity Solutions authored by SSOJet - Enterprise SSO & Identity Solutions. Read the original post at: https://ssojet.com/blog/just-in-time-jit-provisioning-automated-user-provisioning-sso