IAM is a framework of policies and technologies ensuring the right users get the right access to the right resources at the right time. Identity & Access Management is the discipline behind every login box and permission check — and one disambiguation up front: major cloud providers also ship products named “IAM” for controlling access to their own infrastructure; those are implementations of this discipline, not its definition. This article covers the discipline — including the version every app developer builds or inherits, usually without calling it IAM.
Key takeaways
| Question | Answer |
|---|---|
| The four pillars | Authentication · authorization · lifecycle · audit |
| The slogan | Right people, right access, right resources, right time |
| The two worlds | Workforce IAM (employees, compliance) · CIAM (your app’s users, UX) |
| The standards | OIDC & OAuth for tokens · SAML for enterprise SSO · SCIM for lifecycle · WebAuthn for credentials |
| The developer’s version | User store + sessions + roles + ACLs + recovery — build it or inherit it |
The identity lifecycle: join, move, leave
IAM’s day job is a loop every account travels, and it maps to concrete operations:
JOIN create identity → verify email → issue credentials/session
(provisioning — automated via SCIM in workforce systems)
MOVE role changes · team changes · permission grants and revocations
(authorization follows roles, so a move is a data update)
LEAVE revoke sessions NOW → disable account → delete or anonymize
(deprovisioning — skipped steps become "orphaned accounts",
the audit finding that keeps showing up in breach reports)
The same loop as API calls:
// JavaScript / Node.js — Back4app JS SDK
// The identity lifecycle as API calls: join → move → leave
// Join: create the identity (email verification configurable server-side)
const user = new Parse.User();
await user.signUp({ username: 'ada', password: secret, email: '[email protected]' });
// Move: authorization follows roles, not people
editors.getUsers().add(user);
await editors.save();
// Leave: deprovision — revoke sessions server-side, then delete or anonymize
// (admin / Cloud Code territory: no orphaned accounts, audit trail kept) // Flutter / Dart — Back4app Flutter SDK
// The identity lifecycle as API calls: join → move → leave
// Join: create the identity (email verification configurable server-side)
final user = ParseUser('ada', secret, '[email protected]');
await user.signUp();
// Move: authorization follows roles, not people
editors.addRelation('users', [user]);
await editors.save();
// Leave: deprovision — revoke sessions server-side, then delete or anonymize
// (admin / Cloud Code territory: no orphaned accounts, audit trail kept) // iOS / Swift — Back4app Swift SDK
// The identity lifecycle as API calls: join → move → leave
// Join: create the identity (email verification configurable server-side)
var user = User()
user.username = "ada"
user.password = secret
user.email = "[email protected]"
let signedUp = try await user.signup()
// Move: authorization follows roles, not people
try await editors.users.add([signedUp]).save()
// Leave: deprovision — revoke sessions server-side, then delete or anonymize
// (admin / Cloud Code territory: no orphaned accounts, audit trail kept) // Android / Kotlin — Back4app Android SDK
// The identity lifecycle as API calls: join → move → leave
// Join: create the identity (email verification configurable server-side)
val user = ParseUser()
user.username = "ada"
user.setPassword(secret)
user.email = "[email protected]"
user.signUp()
// Move: authorization follows roles, not people
editors.users.add(user)
editors.save()
// Leave: deprovision — revoke sessions server-side, then delete or anonymize
// (admin / Cloud Code territory: no orphaned accounts, audit trail kept) Authentication vs. authorization
The distinction the whole discipline rests on:
| Authentication (AuthN) | Authorization (AuthZ) | |
|---|---|---|
| Question | Who are you? | What may you do? |
| Evidence | Credentials, MFA codes, biometrics, passkeys | Roles, permissions, ACLs, policies |
| Happens | Once per session | On every action |
| Produces | A session or token | An allow/deny per request |
| Fails as | Account takeover | Privilege escalation, data exposure |
Airport version, once: passport control versus the boarding pass. Then the engineering version, which matters more: authentication produces the identity a session carries; authorization consumes it on every request thereafter — which is why the two fail differently and are hardened separately.
The four pillars — and the market’s three letters
The functional anatomy: authentication (proving identity — passwords, MFA, SSO, passwordless), authorization (deciding actions — roles, permissions, object rules), lifecycle (the join/move/leave loop), and audit (the chronically underrated fourth: logs, access reviews, and the ability to answer “who could read this, and who did?”). The vendor market slices the same territory into segments you’ll meet in procurement: AM (access management — login, SSO, MFA), IGA (governance — certifications, separation of duties, the “should they have this?” layer above the operational “can they?”), and PAM (privileged access — vaulting and just-in-time elevation for the accounts whose compromise is game over). Same discipline, two maps.
The standards stack
The alphabet soup, resolved into jobs — the table the ranking pages never provide:
| Standard | What it does | Where you meet it |
|---|---|---|
| OAuth 2.0 | Delegated authorization — scoped tokens instead of shared passwords | API access, the plumbing under social login |
| OpenID Connect | Authentication on OAuth — signed ID tokens assert who logged in | Every “Sign in with…” button, modern SSO |
| SAML 2.0 | XML-based federation assertions — OIDC’s enterprise elder | Corporate SSO integrations |
| SCIM | Standard API for provisioning/deprovisioning accounts | Workforce lifecycle automation |
| WebAuthn / FIDO2 | Phishing-resistant public-key credentials | Passkeys, hardware security keys |
| JWT | The token format assertions travel in | ID tokens, access tokens |
| LDAP | Directory query protocol | Legacy identity stores |
Workforce IAM vs. CIAM
| Workforce IAM | Customer IAM (CIAM) | |
|---|---|---|
| Users | Employees, contractors — thousands | Your app’s users — up to millions |
| Onboarding | IT provisions you | Self-service signup — friction kills conversion |
| Authentication | Corporate SSO, mandated MFA | Social login, passwordless, optional MFA |
| Priorities | Least privilege, compliance | UX, conversion, privacy consent |
| Lifecycle | HR-driven join/move/leave | User-driven register/engage/churn/delete |
| Buyer | IT and security | The product team — often it’s built, not bought |
The distinction earns its table because the ranking content is almost all written about the left column, while most developers reading a glossary are building the right one: registration flows, session handling, and account recovery for an app’s users is CIAM — the discipline applies even when nobody in the room uses the acronym.
Common use cases
- App user management — signup, verification, sessions, roles, deletion: CIAM as everyday backend work.
- Enterprise SSO — one IdP, many apps; MFA and offboarding enforced at a single point.
- API and service identity — machine credentials, scoped tokens, and rotation for non-human callers.
- Compliance programs — access reviews, audit trails, and least-privilege evidence for GDPR, HIPAA, SOC 2.
- Zero-trust architectures — per-request identity checks replacing network location as the trust signal.
Should you build or buy your IAM? A decision matrix
| Situation | Lean |
|---|---|
| App-level auth for a product | Inherit from a BaaS — user store to MFA, prebuilt |
| Workforce SSO across SaaS tools | Buy an IdP service |
| Full control, self-hosted, standard protocols | Open-source IdP (Keycloak, Ory) |
| One app, simple needs, framework sessions | Build minimally — but plan recovery and audit |
| Regulated identity proofing | Buy — assurance levels are certification work |
| Rolling your own password storage “for now” | Don’t — this is the one wheel not to reinvent |
Limitations and trade-offs
- IAM is a process wearing software. Tools automate policy; they can’t invent it — role design, review cadence, and offboarding discipline remain human work.
- Centralization concentrates risk. One IdP means one place to secure and one outage that logs everyone out; availability and recovery planning come with the convenience.
- Federation inherits trust. Every app trusting an IdP inherits its compromises; token validation and short lifetimes are the containment.
- Lifecycle automation needs truth. Provisioning is only as good as the source-of-record feeding it; stale HR data becomes stale access.
- Audit without review is theater. Logs nobody reads and certifications nobody acts on satisfy checklists, not attackers.
IAM on Back4app
Back4app is an open-source Backend-as-a-Service (BaaS) platform that combines a managed database, auto-generated REST and GraphQL APIs, authentication, file storage, and Cloud Code serverless functions. The developer’s-eye view of IAM is exactly what it ships: the User class is the identity store; signup, email verification, password reset, and social login cover authentication (with an MFA adapter for step-up); revocable session tokens carry identity; roles and per-object ACLs are the authorization pillar, enforced on every REST, GraphQL, and Live Query request; and the lifecycle in the code tabs — join, move, leave — is ordinary data work, with Cloud Code triggers as the place to enforce policy (block disposable emails, log audit events, cascade deprovisioning). It is CIAM as a platform layer: the pillars arrive assembled, and your work shifts from building identity machinery to deciding policy.
Frequently asked questions
What is IAM in simple terms?
The discipline of managing who can access what: proving users are who they claim (authentication), deciding what they may do (authorization), managing accounts from creation to removal (lifecycle), and keeping records of it all (audit). It answers "who are you?" and "what are you allowed to do?" for every request.
What is the difference between authentication and authorization?
Authentication verifies who you are — credentials, codes, biometrics. Authorization decides what you may do — roles, permissions, policies. Airport version: the passport check versus the boarding pass. Authentication always runs first; authorization runs on every action after it.
What are the components of an IAM system?
An identity store (the user directory), authentication services (passwords, MFA, single sign-on), authorization machinery (roles, permissions, ACLs), lifecycle tooling (provisioning and deprovisioning), and audit logging. Every real system has all five, whether assembled or inherited from a platform.
What is an identity provider (IdP)?
The system that owns identities and vouches for them: it authenticates the user and issues signed tokens or assertions — via OpenID Connect or SAML — that other applications trust. Every "Sign in with…" button is an IdP at work; enterprises run their own for workforce single sign-on.
What is single sign-on (SSO)?
Authenticate once with the identity provider, then access many applications without new logins — each app trusts the IdP's assertion instead of holding its own credentials. Fewer passwords, one place to enforce MFA, one switch to cut access everywhere.
What is provisioning and deprovisioning?
The lifecycle verbs: provisioning creates the account and grants entitlements when someone joins or changes roles; deprovisioning revokes them at exit. Automated via standards like SCIM. Failed deprovisioning leaves orphaned accounts — perennially a top audit finding and a favorite attacker foothold.
What is the difference between workforce IAM and CIAM?
Audience and priorities. Workforce IAM manages employees — thousands of users, IT-mandated controls, least privilege and compliance first. Customer IAM (CIAM) manages your app's users — potentially millions, self-service signup, social login, where UX, conversion, and privacy consent lead. Most app developers are building CIAM whether they use the word or not.
What is privileged access management (PAM)?
IAM's specialization for the most dangerous accounts — admins, root, service credentials: vaulted secrets, session recording, just-in-time elevation instead of standing power. IAM governs all identities; PAM adds extra controls where a single compromise means total compromise.
How does IAM relate to zero trust?
Zero trust — never trust, always verify — replaces the network perimeter with identity: every request is authenticated and authorized regardless of where it comes from. IAM is the machinery that makes that possible, which is why "identity is the new perimeter" became the discipline's slogan.