Core concepts
The two jobs every other term on this page serves, and the names for the field that does them.
AuthNAuthentication
Authentication (AuthN) is the process of checking that someone signing in is who they claim to be, using a password, passkey, one-time code or other proof.
Authentication (AuthN) verifies the identity of a user, service or device. A login form might check a password; other methods use a magic link, one-time code, token or hardware security key. The application checks that proof before accepting the claimed identity. AuthN appears alongside AuthZ in architecture diagrams and library names because authentication and authorization answer different questions: knowing who someone is does not establish what they may do.
Often confused with:AuthZ
In PropelAuth: PropelAuth handles authentication with hosted login pages that support passwords, magic links, social login and enterprise SSO. Login methods docs.
AuthZAuthorization
Authorization (AuthZ) is the process of deciding what a signed-in person or service is allowed to see or do in your application.
Authorization (AuthZ) controls access to resources and actions. For example, a Member might read a document while only an Admin can change billing for that organization. Roles, permissions, policies and access control lists are all authorization tools. These checks can apply to users, services and anonymous callers: a policy might allow anyone to read a public page. Authentication establishes identity; your application still needs to check permission for each protected action.
In PropelAuth: PropelAuth models authorization as roles and permissions scoped to each organization, checked in the backend libraries. Roles and permissions docs.
CIAMCustomer Identity and Access Management
CIAM (Customer Identity and Access Management) is identity and access management for your customers rather than your employees: how they sign up, log in and reach what they are allowed to use.
Customer Identity and Access Management (CIAM) serves external users, while Workforce IAM focuses on employees. It covers self-service signup, login UX, password reset flows and account management as a product scales. Customers may sign themselves up, accept an invitation or have an administrator provision their account. B2B CIAM adds organizations, member roles and per-customer enterprise login settings, so each business can manage its own people and access requirements.
In PropelAuth: PropelAuth is CIAM for B2B products, with organizations, invitations and enterprise SSO configured per customer. Organizations docs.
Single sign-on and federation
How one login at a central identity provider turns into access across many applications.
SSOSingle Sign-On
SSO (Single Sign-On) is a login arrangement in which a person signs in once with a central identity provider and can then use several applications without signing in again.
Single Sign-On (SSO) uses a central identity provider, with protocols such as SAML or OpenID Connect (OIDC) carrying the login result to each application. An employee who signs in through Okta can then open connected apps without entering credentials again, subject to sign-in policies. Social login with Google can provide SSO too. Enterprise customers use it to manage sign-in centrally; ending existing application sessions also depends on each app's session and deprovisioning controls.
Often confused with:SAMLOIDCIdP
In PropelAuth: Customers configure SAML or OIDC single sign-on for their own organization from the hosted admin UI. Enterprise SSO docs.
SAMLSecurity Assertion Markup Language
SAML (Security Assertion Markup Language) is an XML-based standard, SAML 2.0 from OASIS, that lets your application trust a customer's company login instead of asking for another password.
Security Assertion Markup Language is an XML-based open standard for exchanging authentication and authorization data. SAML 2.0 (OASIS, 2005) is widely used for enterprise SSO. The identity provider (IdP) sends the service provider (SP) a signed XML assertion identifying the user and supplying attributes. The app checks the signature against the IdP's certificate, validates details such as the intended recipient and expiry, then creates a session. Many enterprise identity providers support SAML, so it is a common requirement from customer IT teams.
Often confused with:SSOOIDCIdP
In PropelAuth: PropelAuth acts as the SAML service provider and lets each customer connect their own identity provider. SAML docs.
IdPIdentity Provider
An IdP (Identity Provider) is the system that checks who a user is, such as Okta or Microsoft Entra ID, and tells connected applications that they have signed in.
An Identity Provider (IdP), such as Okta, Microsoft Entra ID or Google Workspace, manages user identities and authentication. It can enforce MFA and application access policies across many apps. During federated login, your application receives a SAML assertion or OIDC token instead of the user's password. For passkeys, the IdP checks a signature using a registered public key; the private key stays with the authenticator or credential provider. The IdP handles sign-in, while each application enforces its own resource permissions.
In PropelAuth: PropelAuth connects to any SAML or OIDC identity provider, including Okta, Entra ID, Google Workspace, JumpCloud and Ping Identity. Enterprise SSO docs.
SPService Provider
An SP (Service Provider) is the application someone wants to use after signing in with their identity provider; in SAML terms, your app is the SP.
In SAML, the Service Provider (SP) trusts an identity provider to authenticate users. The SP publishes metadata such as its entity ID and Assertion Consumer Service (ACS) URL; metadata can also include a certificate for signed requests. It validates the received assertion, including its signature, intended recipient and expiry, before creating an application session. OpenID Connect calls the equivalent application a Relying Party (RP), which validates ID tokens instead of SAML assertions. The app remains responsible for its own authorization checks.
Often confused with:IdP
In PropelAuth: PropelAuth is the service provider in every customer SAML connection, so you never parse XML assertions yourself. SAML docs.
OAuth 2.0Open Authorization 2.0
OAuth 2.0 (Open Authorization 2.0, RFC 6749) is an authorization framework that lets an application access approved data or actions on another service without receiving the user's password.
OAuth 2.0 (Open Authorization 2.0, RFC 6749) is an authorization framework behind flows such as “Connect your Google Calendar”. An authorization server issues an access token, and the app uses it to call an API within its scopes. Access can be on a user's behalf or, through client credentials, as the application itself. Tokens may contain identity information, but OAuth 2.0 alone does not standardize a login result. OpenID Connect adds authentication; OAuth 2.1 consolidates security best practices.
Often confused with:OIDCOAuth 2.1PKCE
In PropelAuth: PropelAuth can act as an OAuth 2.0 and OAuth 2.1 authorization server for your own APIs and MCP servers. MCP authentication docs.
OIDCOpenID Connect
OIDC (OpenID Connect) is an identity protocol built on OAuth 2.0 that lets your app verify who signed in through another service, such as Google, using a signed ID token.
OIDC adds an identity layer to OAuth 2.0, defined in OpenID Connect Core 1.0. It supplies a signed ID token (a JWT) and a standard UserInfo endpoint. Your app validates the token with the provider's keys and checks claims such as issuer, audience and expiry. Email, authentication time and authentication method depend on the request and provider. Used for enterprise SSO and “Sign in with Google”, OIDC uses JSON over HTTPS rather than SAML's XML. The ID token identifies the signed-in user; an access token authorizes API access.
Often confused with:OAuth 2.0SAMLJWT
In PropelAuth: Customers can connect an OIDC identity provider for enterprise SSO alongside or instead of SAML. Enterprise SSO docs.
PKCEProof Key for Code Exchange
PKCE (Proof Key for Code Exchange, RFC 7636) is an extension to the OAuth 2.0 login flow that stops a stolen sign-in code from being exchanged for tokens by anyone but the app that started the flow.
Proof Key for Code Exchange (PKCE, pronounced “pixie”) extends the OAuth 2.0 authorization code flow under RFC 7636. The client creates a random code verifier and sends its hash as the code_challenge. To redeem the authorization code, it must send the original verifier too. Someone who steals only the code cannot exchange it for tokens. PKCE protects public clients such as mobile and single-page apps, and OAuth 2.1 requires it for authorization code flows with confidential clients too. It does not apply to the client credentials grant.
Often confused with:OAuth 2.0OAuth 2.1
In PropelAuth: PropelAuth requires PKCE on every authorization code flow, as OAuth 2.1 and the MCP specification demand. MCP authentication docs.
DCRDynamic Client Registration
DCR (Dynamic Client Registration, RFC 7591) is an OAuth 2.0 mechanism that lets an app register itself with an authorization server instead of a developer setting it up by hand.
Dynamic Client Registration (DCR) is the OAuth 2.0 registration mechanism defined in RFC 7591. A client posts metadata, such as its name and redirect URIs, to an authorization server's registration endpoint and receives a client ID. Registration sets up the client; obtaining an access token still requires the appropriate OAuth flow. DCR can help MCP clients connect without manual setup when the server supports it. Other deployments use pre-registration or other supported client identification mechanisms, and the authorization server can apply policy to who may register.
Often confused with:OAuth 2.0MCP
In PropelAuth: PropelAuth supports dynamic client registration so MCP clients can connect to your server without manual setup. MCP authentication docs.
JITJust-in-Time provisioning
JIT provisioning (Just-in-Time provisioning) is a mechanism that creates a user's account in your app automatically the first time they sign in through their company's login.
Just-in-Time provisioning (JIT) creates an application account on the first successful Single Sign-On (SSO) login. The app uses identity attributes from the SAML assertion or OpenID Connect ID token, such as a name or email when supplied, instead of requiring an administrator to create the account in advance. JIT reduces manual onboarding because the identity provider already authenticates the user. It does not provide an offboarding channel: someone who leaves may never log in again. SCIM provisioning and deprovisioning can keep the account lifecycle in sync independently of login.
In PropelAuth: Users who sign in through a customer's SSO connection are created in that organization automatically. Enterprise SSO docs.
| Term | What it is | Primary job | Typical use | Format / transport |
|---|---|---|---|---|
| SAML 2.0 | XML-based federation standard (OASIS, 2005) | Authentication for enterprise SSO | Employees logging in to SaaS apps through Okta or Entra ID | Signed XML assertions, browser redirects and POSTs |
| OIDC | Identity layer on top of OAuth 2.0 | Authentication, with an ID token identifying the authenticated subject | “Sign in with Google”, modern enterprise SSO, mobile login | JWT ID tokens over HTTPS; JSON discovery and UserInfo responses |
| OAuth 2.0 | Authorization framework (RFC 6749) | Delegated access to a user's resources or access by a service | “Connect your calendar”, API access on a user's behalf, client credentials | JSON token responses over HTTPS; access tokens may be opaque strings or JWTs |
Tokens and sessions
The credentials that carry a verified identity from one request to the next, and the standards that sign and publish them.
JWTJSON Web Token
A JWT (JSON Web Token, RFC 7519) is a compact, signed token that carries claims about a user or service so another system can check them and act on them.
A JSON Web Token (JWT, pronounced “jot”) is a compact, URL-safe representation of claims defined in RFC 7519. A common signed JWT has three dot-separated parts: a base64url-encoded header, a payload of claims, and a signature or message authentication code. These JSON Web Signature (JWS) tokens let a recipient verify integrity with a trusted public key or shared secret, then check claims such as issuer, audience and expiry. Local verification makes JWTs popular as access tokens carrying identity and authorization information. Signed claims remain readable; JSON Web Encryption (JWE) can encrypt a JWT to keep its claims private.
Often confused with:JWKS
In PropelAuth: PropelAuth issues access tokens as JWTs that the backend libraries verify locally against your project's public key. Access tokens docs.
JWKSJSON Web Key Set
A JWKS (JSON Web Key Set) is a published JSON document of public keys that lets an app find the key it needs to check a token's signature.
A JSON Web Key Set (JWKS) is a JSON document containing JSON Web Keys (JWKs), defined in RFC 7517. For token verification, an issuer publishes its public keys at a JWKS endpoint; an OpenID Provider advertises this URL in its discovery document. Verifiers can fetch and cache the set, then match the kid, or key ID, in a JWT header to the appropriate key. During key rotation, publishing new and old keys together lets existing tokens remain verifiable while new tokens use the new key. The endpoint URL comes from trusted configuration or discovery, not from a universally fixed path.
In PropelAuth: PropelAuth exposes a JWKS endpoint for each project, which the libraries use to verify tokens and pick up rotated keys. Access tokens docs.
M2MMachine-to-Machine
M2M (Machine-to-Machine) authentication is how one service proves its identity to another, with an API key or OAuth client credentials, when no person is signing in.
Machine-to-Machine (M2M) authentication gives a nightly job or microservice its own identity when calling an API. With the OAuth 2.0 client credentials grant, the service authenticates to an authorization server to obtain an access token, often using a client ID and secret. An API key usually goes directly in API requests instead of being exchanged for a token. These approaches support service-to-service access with no interactive user login. Rotate credentials and scope permissions tightly so each service can access only what it needs.
Often confused with:API keyOAuth 2.0
In PropelAuth: Organization API keys give a customer's systems a credential to call your API without a logged-in user. API key docs.
API keyApplication Programming Interface key
An API key is a secret string that an application sends with each request to identify itself to an API and get access.
An Application Programming Interface key (API key) is a credential issued to a client or customer, often scoped to an account or organization. The caller usually sends this random string in an HTTP header. Anyone holding a secret API key can use the access it grants, so keys need limited permissions, rotation and revocation. Mature APIs can hash keys at rest, display them only once, allow multiple keys per account, and support expiry and rate limits. B2B products often issue organization API keys for shared integrations, while a personal access token (PAT) represents an individual user.
In PropelAuth: PropelAuth issues, validates and rate limits API keys for your users and organizations, and reports usage per key. API key docs.
Provisioning and directories
Where enterprises keep their list of people, and how that list reaches your application.
SCIMSystem for Cross-domain Identity Management
SCIM (System for Cross-domain Identity Management, RFC 7643 and 7644) is a standard that keeps user accounts in your app in sync with a customer's employee directory.
System for Cross-domain Identity Management (SCIM, pronounced “skim”) is an open REST and JSON standard defined in RFC 7643 and RFC 7644. It lets an identity provider create, update and deactivate user accounts, and manage groups, in connected applications. Adding someone to an Engineering group in Okta can provision their account before their first login. When someone leaves, SCIM can automate deprovisioning through the same endpoint. SSO handles login; SCIM handles the account lifecycle. Synchronization timing and termination of existing sessions depend on the identity provider and application, so deactivation does not imply instant session revocation.
In PropelAuth: PropelAuth hosts the SCIM endpoint for each customer so their identity provider can provision and deprovision users in your product. SCIM docs.
Multi-factor and passwordless
Everything that proves a login beyond a password, and the standards that are replacing passwords altogether.
MFAMulti-Factor Authentication
MFA (Multi-Factor Authentication) is authentication that requires two or more different kinds of proof that it is you, so a stolen password alone is not enough.
Multi-Factor Authentication (MFA) requires two or more independent factors: something you know, have or are. Two-Factor Authentication (2FA) means exactly two. A password plus a TOTP authenticator-app code is a common example; two passwords are still one factor category. SMS codes also provide a second factor, but are vulnerable to SIM swapping. MFA can be passwordless: a passkey with required local user verification by a PIN or biometric can combine possession with another factor. Enterprise customers may require MFA in your product or at their identity provider.
Often confused with:TOTPWebAuthn
In PropelAuth: PropelAuth supports authenticator-app MFA for users and lets organizations require it for all members, plus step-up MFA for sensitive actions. MFA docs.
2FATwo-Factor Authentication
2FA (Two-Factor Authentication) is multi-factor authentication with exactly two factors, most often a password plus a one-time code from an app or a security key.
All 2FA is MFA, but not all MFA is 2FA. The second factor is usually a six-digit code from an authenticator app, an SMS message or a hardware key. Codes from an app are safer than SMS, which can be intercepted by SIM swapping. Most consumer products say 2FA; most security questionnaires say MFA; they are asking about the same control.
Often confused with:MFA
In PropelAuth: Organizations can require 2FA for every member, and users enrol with any TOTP authenticator app. Organization 2FA docs.
TOTPTime-based One-Time Password
TOTP (Time-based One-Time Password, RFC 6238) is a standard for short-lived login codes generated from a secret shared by your authenticator app and the server.
Time-based One-Time Password (TOTP), defined in RFC 6238, uses a shared secret and the current time to generate an OTP. Scanning a QR code into Google Authenticator or 1Password stores that secret. The app and server calculate matching codes, typically six digits that change every thirty seconds; code length and time step are configurable. The app can generate codes without a network connection, even in airplane mode. Clock drift can cause rejected codes. A TOTP code alongside a password is a common MFA or 2FA setup.
In PropelAuth: Users enrol a TOTP authenticator app for MFA from the hosted account page. MFA docs.
WebAuthnWeb Authentication API
WebAuthn (Web Authentication API) is the W3C browser standard that lets websites use your device or security key to prove it is you, and it is what passkeys are built on.
The Web Authentication API (WebAuthn) is the W3C JavaScript API for creating and using FIDO2 public-key credentials. W3C Web Authentication Level 2 defines the browser interface. Passkeys use these credentials and may be synced or bound to one device, often unlocked with a fingerprint, face scan or device PIN. At registration, the website stores a public key. At login, the authenticator signs a challenge; the server checks that signature against the public key. The private key is not sent to the website, and credentials are bound to the relying party.
| Term | What it is | Primary job | Typical use | Format / transport |
|---|---|---|---|---|
| MFA | Two or more independent factors; includes 2FA | Require more than one factor category, with or without a password | Enterprise requirement for every member of an organization | Password plus TOTP or a security key; can also be a passkey with required PIN or biometric verification |
| 2FA | MFA with exactly two factors | Combine two factor categories; a password is optional | Consumer accounts, developer tools, admin consoles | Often password plus a TOTP or SMS code; also possible with passwordless authenticators |
| Passwordless | Login without a password; may be single-factor or MFA | Remove the password; phishing resistance depends on the method | Passkeys, magic links, device biometrics used to unlock credentials | FIDO2/WebAuthn public-key credentials or emailed one-time links; these provide different security properties |
Security and transport
The attacks a login system defends against and the cryptography and headers it uses to do so.
CSRFCross-Site Request Forgery
CSRF (Cross-Site Request Forgery) is an attack that tricks your browser into sending an unwanted request to a site where you are already signed in.
Cross-Site Request Forgery (CSRF) exploits the browser's ability to attach session cookies to requests triggered by another site, subject to cookie and browser rules. A malicious page might submit a form as the logged-in user. Protect state-changing requests with anti-forgery tokens and origin checks; SameSite cookies add another defense. Tokens may be scoped to a session or request. APIs that authenticate only through bearer tokens explicitly supplied in an Authorization header generally avoid classic cookie-based CSRF. CORS alone is not a CSRF defense.
Often confused with:CORS
CORSCross-Origin Resource Sharing
CORS (Cross-Origin Resource Sharing) is the browser mechanism, controlled by server headers, that decides whether a website may read a response from another site.
Cross-Origin Resource Sharing (CORS) uses server response headers to relax the browser's same-origin policy. Script on app.example.com cannot normally read responses from api.example.com unless the API allows it with headers such as Access-Control-Allow-Origin. Some requests first trigger a preflight check. CORS controls browser access to cross-origin responses; it does not authenticate callers or stop direct API calls with curl. When diagnosing a CORS error, check response headers, preflight requests, client credentials settings, redirects and network failures.
Often confused with:CSRF
Credential Stuffing
Credential stuffing is an attack that tries stolen username and password pairs on other sites to find reused passwords.
Attackers use bots to test credentials exposed in a data breach against other login pages. Password reuse means a pair stolen from one service may also work in your application. Credential stuffing replays known pairs rather than inventing new passwords, although it is sometimes grouped under the broader category of brute-force attacks. Rate limiting, bot detection and breached-password checks can reduce the risk. Multi-Factor Authentication (MFA) adds another barrier, while replacing password sign-in with passkeys removes the reused password from that login flow.
Often confused with:Brute ForceMFA
Brute Force
Brute force is an attack that tries many possible passwords until one works or the attempts are stopped.
A brute-force attack automates repeated password guesses, often starting with common passwords or dictionary words. Unlike credential stuffing, the attacker does not need a known username and password pair from another breach. Online login attacks face controls such as rate limiting; offline cracking of stolen password hashes does not. Long, unique passwords and secure password hashing make guessing harder. Breached-password checks, bot detection and Multi-Factor Authentication (MFA) add protection for password logins. Passkeys replace the shared password with a cryptographic sign-in, removing password guessing from that flow.
Often confused with:Credential StuffingMFA
Compliance and standards bodies
The audits and laws that shape auth requirements, and the organizations that publish the specifications.
SOC 2System and Organization Controls 2
SOC 2 (System and Organization Controls 2) is an AICPA auditing standard whose report shares an independent auditor's findings about how a company protects customer data.
System and Organization Controls 2 (SOC 2) is an AICPA attestation reporting framework based on the Trust Services Criteria. Security is included; availability, processing integrity, confidentiality and privacy depend on the examination's scope. Type 1 (Type I) evaluates control design at a specified date; Type 2 (Type II) also evaluates operating effectiveness over a period. Enterprise buyers use the report in vendor assessments. MFA, access reviews, offboarding and audit logs can support relevant controls. A provider's SOC 2 report does not replace your own examination, and SOC 2 is not a certification.
In PropelAuth: PropelAuth has a SOC 2 Type 2 report and is pentested annually by an independent firm. Security and compliance.
Frequently asked questions
What is the difference between authentication and authorization?
Authentication verifies who a user or service is, for example by checking a password or validating a SAML assertion. Authorization decides what a caller is allowed to do, such as whether they hold the Admin role in an organization. Many applications authenticate before evaluating user permissions, but authorization policies can also permit anonymous access to public resources. Verifying identity alone does not establish permission.
Is OAuth an authentication protocol?
No. OAuth 2.0 is an authorization framework defined in RFC 6749. It lets an application obtain an access token to access resources. That token may contain identity information, but OAuth 2.0 alone does not standardize a login result for the client. OpenID Connect adds authentication with an ID token and a UserInfo endpoint. Use OIDC when you need a standardized protocol for logging users in.
Do I need SAML or OIDC for enterprise SSO?
Support both when your target customers need them. SAML 2.0 is an XML-based standard widely used for enterprise SSO. OIDC is a JSON-based identity protocol built on OAuth 2.0, also used for enterprise SSO and social login. Ask which protocols and configuration requirements each customer's identity provider supports. Offering both broadens compatibility, but protocol support alone does not guarantee a successful integration.
What does SCIM do that SAML doesn't?
SAML handles federated login: it tells your app who authenticated. SCIM handles the user lifecycle by creating accounts, updating user and group information, and deactivating accounts when someone leaves. SAML login alone does not provide a provisioning channel for offboarding. SCIM can automate deprovisioning, but synchronization timing and termination of existing sessions depend on the identity provider and application.
Is a JWT encrypted?
Not necessarily. A common JWT is a JWS under RFC 7515, protected by a signature or message authentication code but not encrypted, so anyone holding it can base64url-decode and read the claims. Verification uses a trusted public key or shared secret depending on the algorithm, and applications must also validate relevant claims. A JWT encrypted as a JWE under RFC 7516 hides its claims from readers without the decryption key; JWTs can also be signed and then encrypted.
What is the difference between RBAC and ABAC?
RBAC assigns permissions to named roles such as Admin or Viewer, and users receive permissions through those roles. ABAC evaluates policies over attributes of the user, resource, action and environment, so rules can depend on department, amount or time of day. RBAC is often simpler for a small set of job roles; ABAC supports more contextual rules. The models can be combined, and neither requires a particular database, policy language or engine.
Is 2FA the same as MFA?
2FA is a specific case of MFA. Multi-Factor Authentication (MFA) requires two or more independent factors from categories such as something you know, have or are. Two-Factor Authentication (2FA) means exactly two, commonly a password plus a TOTP code or security key. MFA can also be passwordless, such as a passkey with required PIN or biometric verification. Every 2FA setup is MFA; two checks from the same factor category do not automatically make it 2FA.
What is MCP authentication?
MCP authentication commonly refers to securing access to a Model Context Protocol server's tools and data. For protected remote servers using HTTP, the MCP authorization specification uses OAuth 2.1 and Protected Resource Metadata to discover authorization servers. Clients identify or register themselves using a supported mechanism, then complete the OAuth flow to obtain access tokens; dynamic client registration is one option for registration, not a universal requirement. The MCP server validates tokens and enforces access permissions on protected requests. Local stdio servers use a different credential model.
What is the difference between an IdP and an SP?
The identity provider (IdP) holds the user accounts and performs the login; Okta, Microsoft Entra ID and Google Workspace are identity providers. The service provider (SP) is the application the user is trying to reach, which trusts the IdP's signed assertion instead of checking a password itself. If you are building the product, you are the service provider. OIDC calls the same two roles the OpenID Provider and the relying party.