mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-10-11 08:27:41 +00:00
1. aud validation: handle JSON array audiences per OIDC spec (check membership, validate azp for multi-audience tokens). 2. JWKS caching: cache keys after first fetch; refresh only on unknown kid — avoids live IdP round-trip on every login. 3. Algorithm pinning: restrict to RS256/ES256/etc from discovery doc, never allow HS256 or 'none'. 4. OIDC_REDIRECT_URI: support a fixed redirect URI (proxy-safe, doesn't trust Host header). 5. Stateless state: replace in-memory dict with Fernet-encrypted state tokens — works across multiple uvicorn workers/processes. 6. OIDC_FIRST_USER_IS_ADMIN: bootstrap first OIDC user as admin when no users exist and OIDC_ADMIN_GROUPS is unset — prevents zero-admin lockout. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| atomic_io.py | ||
| auth.py | ||
| constants.py | ||
| database.py | ||
| exceptions.py | ||
| log_safety.py | ||
| middleware.py | ||
| models.py | ||
| oidc.py | ||
| platform_compat.py | ||
| session_manager.py | ||