Authentication vs Authorization (AuthN vs AuthZ) Explained
The difference between authentication and authorization is the question each answers: authentication (authn) verifies who you are, and authorization (authz) decides what you are allowed to do. Authentication happens at sign-in with a password, passkey or MFA. Authorization happens after it, and should run on every request, for every object. A user can be perfectly authenticated and still be denied.
The two are often shortened to the same "auth", which is how they get confused in code. Getting them straight is foundational to IAM.
Authentication vs authorization at a glance
| Authentication (authn) | Authorization (authz) | |
|---|---|---|
| Question | Who are you? | What may you do, to which resource? |
| When | Once per session, plus step-up for sensitive actions | Every request |
| Evidence | Passwords, passkeys, MFA, certificates | Roles, attributes, relationships, scopes, policy |
| Standards | OpenID Connect, SAML 2.0, WebAuthn | OAuth 2.0 scopes, AuthZEN, XACML |
| Artifact | Session, ID token, SAML assertion | Access token, policy decision |
| HTTP failure (RFC 9110) | 401 Unauthorized | 403 Forbidden |
| OWASP Top 10:2025 | A07 Authentication Failures | A01 Broken Access Control |
| Typical owner | Identity provider | Application, API gateway or policy engine |
The HTTP names are a historical trap. In RFC 9110, 401 means the request lacks valid authentication credentials, and the server must send a WWW-Authenticate challenge. 403 means the server understood the request but refuses it. Return 401 when you do not know who the caller is, and 403 when you do and the answer is no.
Authentication (authn): who are you?
Authentication verifies identity. It is the login step: passwords, passkeys, biometrics, and multi-factor authentication. A successful authentication establishes a trusted session. Strength varies a lot: phishing-resistant MFA such as passkeys resists the relay attacks that defeat SMS codes and push prompts. WebAuthn Level 3 became a W3C Recommendation on August 25, 2026.
Authorization (authz): what can you do?
Authorization happens after authentication and decides what the verified identity may access. This is where RBAC, ABAC, and ReBAC models live, and where OAuth scopes sit for APIs. The decision needs three inputs: the subject, the action and the specific resource. Checking only the first two is the bug behind most data leaks.
A worked example
An employee opens an expense app. The app redirects to the identity provider, which checks a passkey and returns an OIDC ID token: that is authentication. The app creates a session. The employee asks to view expense report 4471. The app calls its API with an OAuth access token scoped to expenses:read. The API must still ask: does report 4471 belong to this employee, or to someone they manage? That last check is authorization, and the scope alone does not answer it.
Why mixing them up is dangerous
A common flaw is treating "logged in" as "allowed." OWASP ranks it first: Broken Access Control is A01 in the OWASP Top 10:2025, and Broken Object Level Authorization is API1 in the OWASP API Security Top 10 2023, ahead of Broken Authentication at API2. The shape is the same each time: a request arrives with a valid session, the application reads an identifier from the request, and changing the identifier returns someone else's data.
Two rules prevent most of it:
- Check permission on the object, not the endpoint. "Is this user allowed to view invoice 4471" is a different question from "is this user allowed to use the invoice endpoint."
- Never trust an identifier the client supplied to select the record without an ownership or relationship check on the server.
Real failures on each side
Authorization failures:
- Optus, 2022. An internet-facing API returned customer personal information without valid authorization. About 9.5 million people were affected, per the Australian regulator (incident record).
- OAuth consent phishing. At Cyberhaven an employee with MFA authorized a malicious OAuth app and saw no MFA prompt, because a consent grant is authorization, not authentication (OAuth consent phishing).
- Grants that outlive the login. In the Salesloft Drift campaign, stolen refresh tokens for a third-party app worked as standing access to many Salesforce tenants with no user in the path (refresh token abuse).
Authentication failures:
- Forged tokens. Storm-0558 used a stolen Microsoft consumer signing key, and a validation flaw let those tokens open enterprise mailboxes.
- Unverified tokens. CVE-2026-48558 let attackers forge OIDC tokens against SimpleHelp servers that did not validate signatures, bypassing MFA (incident record). CVE-2023-29357 in SharePoint accepted
alg: noneJWTs.
Where the line blurs
Claims in a token are where authentication quietly becomes authorization. If your application reads a roles or groups claim and grants access on that basis, the integrity and freshness of that claim is now an authorization control: validate the signature, issuer, and audience, and remember that a token minted before someone left a group stays valid until it expires. Continuous access evaluation through the Shared Signals Framework closes that gap by pushing revocations to apps. When a grant needs more detail than a scope string can carry, such as one payment of a fixed amount to a named payee, Rich Authorization Requests (RFC 9396) put structured permission details in the token request itself.
Authorization models, briefly
- RBAC bundles permissions into roles. Readable and auditable, and prone to role explosion.
- ABAC evaluates attributes of the subject, resource, action, and environment. Flexible, harder to audit.
- ReBAC derives access from relationships (owner, member, parent), which is what sharing products need.
Most mature systems use roles for the coarse grant and attributes or relationships for the fine-grained condition.
Authentication and authorization tools
Authentication usually comes from an identity provider such as Okta, Microsoft Entra or, for customer apps, Auth0. Authorization is increasingly externalized to a policy engine: Open Policy Agent (whose creators and many Styra staff joined Apple in August 2025), OpenFGA, AuthZed, Cerbos, Permit.io, Amazon Verified Permissions ($5 per million single requests since a June 2025 price cut) and SGNL, which CrowdStrike acquired on February 20, 2026. The AuthZEN Authorization API 1.0, Final since January 11, 2026, gives apps one standard request format for any of them. Compare them in the best authorization tools ranking.
Where to start
Read OAuth vs OIDC for the protocol side, then browse MFA vendors and authorization engines.
Frequently asked questions
- What is the difference between authentication and authorization?
- Authentication proves who you are, for example with a password, passkey or MFA. Authorization determines what you are allowed to do once authenticated, for example whether you may read a specific record or call a specific API. Authentication happens once per session; authorization should be checked on every request.
- Which comes first, authentication or authorization?
- Authentication comes first to establish identity, then authorization decides access based on that identity. The exception is public resources, where authorization grants anonymous access without any authentication.
- What do authn and authz mean?
- Authn is shorthand for authentication and authz is shorthand for authorization, two distinct steps: identity verification versus permission enforcement.
- Is OAuth authentication or authorization?
- OAuth 2.0 (RFC 6749) is an authorization framework: it issues access tokens that let an app call an API with a limited scope. It does not tell the app who the user is. OpenID Connect adds authentication on top of OAuth through a signed ID token, so use OIDC to log users in and OAuth to grant API access.
- What is the difference between a 401 and a 403 error?
- Under RFC 9110, 401 Unauthorized means the request lacks valid authentication credentials, and the server must send a WWW-Authenticate challenge. 403 Forbidden means the server understood the request but refuses it. Despite its name, 401 is an authentication failure; 403 is an authorization failure.
- Which is the bigger security risk, broken authentication or broken authorization?
- Both are serious, but broken authorization is ranked higher. In the OWASP Top 10:2025, Broken Access Control is A01 and Authentication Failures is A07. In the OWASP API Security Top 10 2023, Broken Object Level Authorization is API1 and Broken Authentication is API2.
- What are authorization tools?
- Authorization tools are policy engines and services that make access decisions outside application code. Examples include Open Policy Agent, OpenFGA, AuthZed SpiceDB, Cerbos, Permit.io and Amazon Verified Permissions. OpenID AuthZEN Authorization API 1.0, Final since January 2026, standardizes how applications ask these engines for a decision.
Related on Start with Identity
- GuideWhat Is a Non-Human Identity (NHI)? NHI Management Explained
A non-human identity (NHI) is any identity that is not a person: service accounts, API keys, OAuth apps and tokens, certificates, workloads, bots and increasing
- GuideWhat Is Machine Identity? Machine Identity Management Explained
Machine identity is how non-human actors (workloads, services, containers and devices) prove who they are to each other, using certificates, keys and tokens ins
- GuideWhat Is Passwordless Authentication? Methods and Providers
Passwordless authentication verifies a user without a password or other shared secret they must remember: the user proves identity with something they have (a p
- GlossaryAuthorization (AuthZ)
Authorization (AuthZ) is the decision to permit or deny an authenticated subject access to a resource or action, and the rights that result; NIST's glossary, ci
- BlogA 9.8-CVSS vCenter authentication bypass has no workaround, only an emergency patch
Broadcom shipped emergency fixes for three critical VMware flaws, including CVE-2026-59309 (CVSS 9.8), which lets any attacker with network access to vCenter by
- GlossaryAdaptive Authentication
Authentication flows that change based on risk signals. Low-risk sign-ins may complete with one factor; high-risk sign-ins escalate to step-up MFA or are blocke