OAuth 2.0 + OpenID Connect: Authorization Code + PKCE flow, M2M Client Credentials, refresh token rotation with theft detection, ADR comparing OAuth/OIDC vs SAML vs custom session-based auth.
OAuth delegates access to protected resources; OpenID Connect adds an authentication assertion for the client. The client, authorization server, resource server, browser, and their tokens remain distinct security principals.
| Component | Responsibility |
|---|---|
browser | User Agent |
client | OAuth/OIDC Client |
authorization-endpoint | Authorization Endpoint |
token-endpoint | Token Endpoint |
resource-server | Resource Server |
issuer-keys | Pinned Issuer Metadata and JWKS |
session-store | Client Session and Transaction Store |
attacker | Malicious Site or Token Thief |
Topology edges represent authenticated or otherwise explicit communication paths. Responses reuse those physical paths in reverse; no response-only or bypass edges are added.
authorization-code-pkce — Authorization code with PKCEA transaction-bound S256 challenge protects the code; the confidential exchange happens at the token endpoint.
oidc-id-token-validation — Validate the ID Token at the clientSignature, pinned issuer, client audience, expiry, and transaction nonce are all required; one successful check cannot replace the others.
access-token-boundary — Access token stays at the resource serverAn access token authorizes a resource request; an ID Token is an authentication assertion for the client and is not an API bearer token.
redirect-and-mixup-rejection — Reject redirect and issuer mix-upExact redirect matching and issuer binding prevent an attacker from substituting an endpoint or exfiltrating the code.
code-interception-rejection — Intercepted code cannot be redeemedPKCE binds the authorization code to a verifier that never travels in the front-channel authorization request.
refresh-token-reuse — Detect refresh token reusePublic clients use rotation or sender-constraining; reuse of an invalidated family member is an incident signal, not another successful refresh.
wrong-audience-token — Reject a token for another APIA valid signature does not make a token valid for every resource; the resource server enforces its own audience and authority.
Введите числа или выберите пресет