Choose a role before a tool
An OAuth access token can be opaque or use JWT. Decoding a JWT does not verify authenticity; a signed JWT does not automatically encrypt its contents. A gateway does not replace business authorization inside services.
| Element | Role | Visible limitation |
|---|---|---|
| OAuth 2.0 | Delegated authorization. | Not a user-login protocol on its own. |
| OpenID Connect | Authentication built on OAuth 2.0. | Requires profile and token validation. |
| JWT | A claims format. | Decoding, signing and encryption are distinct. |
| API gateway | Common entry-point controls. | Does not replace object-level permissions. |
Validate the protocol and every access
- Choose a flow appropriate for the client. For user journeys, follow current authorization-code and PKCE recommendations, using a maintained library and strictly controlled redirects.
- For an accepted JWT, verify signature, allowed algorithms, issuer, audience and the profile’s time constraints. Reject tokens intended for a different use.
- Check access to every object, action and organization. Test cross-account access with fictional data; a broad role or scope is not always sufficient.
Plan expiration, revocation and incidents too
Document renewal, key rotation, secret loss and the revocation strategy. Local token verification does not automatically learn of remote revocation. Minimize token data and logs; neither JWT nor quotas alone guarantee security or compliance.
Primary references
- IETF RFC 9700 — OAuth 2.0 Security Best Current Practice [EN]
- IETF RFC 8725 — JWT Best Current Practices [EN]
- OpenID Foundation — OpenID Connect Core 1.0 [EN]
- OWASP — Authorization Cheat Sheet [EN]
A gateway does not replace object authorisation
An API should verify both that a token is intended for it and that the caller may perform the operation on the object. A valid JWT signature or successful OAuth sign-in does not establish those permissions. Test neighbouring identities and privileged functions.
- Reject a valid token intended for another audience.
- Test cross-account access, private fields and administrative operations.
- Exercise expiry and role change without writing tokens into logs.
Primary reference: IETF — RFC 9700, OAuth 2.0 Security Best Current Practice. Related method: read the practical guide.
Passkeys: prepare a domain and RP ID change
Separate business account, web origin and RP ID to plan a transition without silently rebinding credentials.
- Record old and new origins, RP IDs and associated accounts. An identical account name does not make a passkey valid for a different RP ID. Check WebAuthn’s allowed combinations and the access paths remaining available during transition.
- In an authorised test environment, check challenge, origin, RP ID and account binding with a suitable library. Try an unexpected origin and a replayed challenge. If the RP ID changes, prepare authenticated new registration; copying a database record is not key migration.
- Test a user with only the old credential, recovery and already open sessions. Define the order for opening and retiring journeys with verified rollback. Successful registration on the new domain does not prove all old sessions have been revoked.
Acceptance case to reproduce
Fictional example: these inputs describe no customer or observed result.
View case inputs
{
"old_origin": "https://login.old.example",
"old_rp_id": "old.example",
"new_origin": "https://login.new.example",
"new_rp_id": "new.example",
"same_service_account": true,
"expected": "authenticated_new_registration"
}Expected decision
Fictional example: the account stays the same, but old.example becomes new.example with a different RP ID. The old credential cannot be silently rebound; new registration must follow the planned authenticated journey.
Can a database edit change a passkey’s RP ID?
No. The RP ID is part of the credential’s verified scope. Prepare valid registration for the new scope and an authenticated account mapping.
Primary reference: W3C — Web Authentication Level 2. Related method: read the practical guide.
TLS renewal: verify the certificate actually being served
Follow renewal through every termination point and supported client before declaring the change complete.
- List expected names, CDNs, load balancers, proxies and internal connections presenting certificates. Record actual served certificate, chain, expiry and owner at each relevant point. Successful issuance does not establish installation on every node. Protect private keys and exclude them from the register.
- Test automation against provider staging where available. Check validation challenges, SAN name coverage, protected storage and component reload. Avoid issuance on every instance startup when a usable certificate exists under your key policy.
- Check names, validity dates and trust chain with supported clients over relevant paths. Keep TLS verification enabled. Monitor the served certificate’s expiry, not just scheduler status. Rollback requires a still-valid certificate and uncompromised key; otherwise fix or isolate the failing point.
Acceptance case to reproduce
Fictional example: these inputs describe no customer or observed result.
View case inputs
{
"issuance_succeeded": true,
"proxy_count": 2,
"proxies_serving_expected_certificate": 1,
"other_proxy_certificate_expired": true,
"tls_verification_enabled": true,
"expected": "change_incomplete_fix_and_verify_client_paths"
}Expected decision
Fictional example: renewal succeeds, but one of two proxies still serves an expired certificate. The change remains incomplete: fix that proxy and check client paths instead of disabling TLS validation.
Primary reference: Let’s Encrypt — Integration Guide. Related method: read the practical guide.
Explore the CISA KEV catalogue
One identifier can span several technical layers
An entry may concern a library, server or component embedded in an appliance. Search the exact name, known dependencies and the distributed product’s advisory. Catalogue aliases are not a complete list of affected versions.
- Connect the CVE, component supplier and final-product supplier.
- Check version, configuration and execution path in the authorised environment.
- Do not infer remediation from an empty search result.
Explore the catalogue and method →
CISA KEV · 2026.10.21 · Documentary review : 2026-10-22
Extensions: permissions and access
Robust authentication does not describe extension access
Phishing resistance does not remove the need to examine what runs in the browser after a session opens. A manifest provides clues about cookies, scripting, debugging and identity without establishing collection.
- Test approved extensions in a profile dedicated to sensitive operations.
- For identity, inspect OAuth scopes and recipients; this permission does not enumerate identity-provider rights.
- Distinguish session revocation, token revocation, extension disablement and native-component removal.
Read the permission directory and manifest examples →
Google Chrome · Stay secure · Documentation consulted 2026-10-23; browser behaviour remains version-dependent
