2.7 KiB
2.7 KiB
Authentication Requirements
Purpose
Define authentication behavior for admin UI, API, CalDAV, and ICS access.
Scope
This document covers:
- Credential types and login flows
- Session/token behavior
- Password rules and recovery
- Abuse controls and lockout behavior
Credential Domains
Authentication domains:
- WordPress admin authentication (for plugin admin pages)
- Plugin CalDAV user authentication (for CalDAV access)
- API authentication (WordPress auth for admin API and plugin user auth where relevant)
Credentials must not be shared in plaintext between domains.
Admin UI Authentication
- Admin pages (
Users,Setup) require valid WordPress authenticated session. - Capability checks are enforced after authentication.
- Non-authenticated access redirects/fails using WordPress-standard behavior.
CalDAV Authentication
- CalDAV endpoints require authenticated plugin CalDAV user credentials over HTTPS.
- Supported first-pass mechanism: HTTP Basic over TLS against plugin user store.
- Password verification must use secure hash comparison.
- Unverified or non-approved (
pending_approval) users cannot authenticate.
API Authentication
- Admin API endpoints require WordPress-authenticated context plus nonce/CSRF protections where cookie auth is used.
- User lifecycle endpoints may allow public access only where explicitly required (
register,verify,forgot/reset) with abuse controls. - Authenticated user endpoints require either WordPress user context or plugin user context as documented per endpoint.
Password Policy
- Minimum length: 8 characters.
- Passwords must be stored only as secure hashes (never reversible encryption).
- Password reset rotates credentials immediately.
Token Policy
- Verification and reset tokens must be single-use, random, and time-limited.
- Token reuse must fail deterministically.
- Expired tokens must produce actionable but non-sensitive error messaging.
Session and Revocation
- After password reset, prior login sessions/tokens for that identity should be invalidated.
- Users not in
activestatus lose access immediately for new requests.
Abuse Controls
- Rate limiting required for:
- registration
- verification attempts
- forgot/reset flows
- login attempts
- Lockout/backoff behavior must be documented in operational docs.
Logging and Privacy
- Authentication failures should be logged with timestamp and source context.
- Logs must not contain plaintext passwords or tokens.
- Responses must avoid user enumeration details.
Verification Requirements
Acceptance should verify:
- Valid credentials authenticate to intended surfaces only.
- Invalid credentials fail safely.
- Pending/unverified users are denied.
- Password reset and token expiry behavior works as specified.