auth-security
Authentication and authorization security, JWT lifecycle, OAuth 2.1 and OIDC flows, PKCE, and RBAC/ABAC access control.
SKILL.mdskills/auth-security/SKILL.md
GitHubAuthentication & Access Control Security Protocol
When implementing login, session tokens, identity providers, or role permissions, enforce these standards.
1. Token Lifecycles & Storage
- Short-Lived Access Tokens:
- Access tokens should expire in 10-15 minutes.
- Refresh tokens should be long-lived (e.g. 7-30 days) and stored in HttpOnly; Secure; SameSite=Lax cookies, never in localStorage.
- Refresh Token Rotation:
- Invalidate the old refresh token immediately upon issuing a new pair.
- If an invalidated refresh token is reused, revoke the entire token family immediately (indicates token theft).
2. OAuth 2.1 & PKCE
- Always use Proof Key for Code Exchange (PKCE) for both public (SPA, mobile) and confidential clients.
- Eliminate the deprecated OAuth 2.0 Implicit Flow.
- Validate state and nonce parameters strictly to prevent CSRF authentication replay attacks.
3. RBAC & ABAC Enforcement
- Perform authorization checks at the data service/controller boundary, never rely solely on frontend UI hiding.
- Enforce tenancy boundaries: Every query must verify that the requesting user's organization matches the target resource.