# OIDC Server - TODO & Roadmap ## ✅ Bereits implementiert ### Core OIDC Funktionalität - ✅ Authorization Code Flow (vollständig implementiert) - ✅ Discovery Endpoint (`/.well-known/openid-configuration`) - ✅ `/authorize` - Authorization Endpoint - ✅ `/token` - Token Exchange - ✅ `/userinfo` - User Info Endpoint - ✅ JWT ID Tokens (signiert mit RS256) - ✅ Access Tokens mit Validation - ✅ Authorization Codes mit TTL ### User Management - ✅ User Registration (Self-Service) - ✅ Password Change (Self-Service) - ✅ Bcrypt Password Hashing - ✅ User Login mit Session - ✅ User Dashboard ### Admin Features - ✅ Admin Login (separate Session) - ✅ CRUD für User-Verwaltung - ✅ Rollen-System (user, admin, moderator, readonly) - ✅ Permissions-System (JSON Array, comma-separated UI) - ✅ User Activate/Deactivate - ✅ **(NEU)** Multi-Client Support - OIDC-Clients können über das Admin-Panel verwaltet werden. ### Security & Data - ✅ SQLite Database (PostgreSQL-ready) - ✅ Session-based Authentication - ✅ CSRF Protection (state parameter) - ✅ Sichere Landing Page (keine Secrets exposed) - ✅ **(NEU)** Rate Limiting - Schutz vor Brute-Force auf Login/Token Endpoints - ✅ **(NEU)** Audit Logging - Loggt Logins und Admin-Aktionen in die Datenbank - ✅ **(NEU)** Asymmetric Token Signing (RS256) - ID Tokens werden mit RS256 signiert und der Public Key per `/jwks` Endpoint bereitgestellt. ### DevOps/Production - ✅ **(NEU)** Environment Configuration - `.env` File Support für Secrets (Development/Production) - ✅ **(NEU)** Health Check Endpoint - `/health` für Monitoring und Load Balancer - ✅ **(NEU)** Docker Support - `Dockerfile` und `docker-compose.yml` für einfaches Deployment - ✅ **(NEU)** Production WSGI Server - Gunicorn wird im Docker Container verwendet - ✅ **(NEU)** Database Migrations - Schema-Änderungen werden mit Flask-Migrate (Alembic) verwaltet. ### UI/UX - ✅ Modernes Dark Mode Design - ✅ Responsive Layout - ✅ Alle Templates mit Theme Toggle --- ## 🚀 TODO - Nächste Features ### Security Improvements (Priorität: HOCH) #### 2. Token Refresh Flow **Status:** ⏳ Offen **Priorität:** Hoch **Beschreibung:** - Refresh Tokens für längere Sessions - User muss nicht alle X Minuten neu einloggen **Tasks:** - [ ] RefreshToken Model in DB erstellen - [ ] `/token` Endpoint erweitern: `grant_type=refresh_token` - [ ] Refresh Token Rotation implementieren - [ ] Token Expiry konfigurierbar machen #### 4. HTTPS Enforcement **Status:** ⏳ Offen **Priorität:** Hoch (für Production) **Beschreibung:** - Aktuell nur HTTP (Development) - Production: SSL/TLS zwingend **Tasks:** - [ ] SSL Certificates (Let's Encrypt) - [ ] Nginx/Traefik Reverse Proxy Setup - [ ] HTTPS Redirect erzwingen - [ ] Secure Cookie Flags setzen #### 5. PKCE Support **Status:** ⏳ Offen **Priorität:** Mittel **Beschreibung:** - Proof Key for Code Exchange - Wichtig für SPAs und Mobile Apps ohne Client Secret **Tasks:** - [ ] PKCE Parameter in `/authorize` akzeptieren (`code_challenge`, `code_challenge_method`) - [ ] Code Verifier Validation in `/token` - [ ] S256 und plain methods unterstützen --- ### Features (Priorität: MITTEL) #### 7. Scope Management **Status:** ⏳ Offen **Priorität:** Mittel **Beschreibung:** - Aktuell: Scopes werden akzeptiert aber nicht enforced - Bessere Scope → Permission Mapping **Tasks:** - [ ] Scope Definition System - [ ] Scope Validation gegen User Permissions - [ ] Consent Screen für Scopes - [ ] Scope-basierte Token Claims #### 8. Email Verification **Status:** ⏳ Offen **Priorität:** Mittel **Beschreibung:** - Email Verification bei Registration - Password Reset per Email **Tasks:** - [ ] SMTP Konfiguration - [ ] Email Verification Token System - [ ] Email Templates (Verification, Password Reset) - [ ] `/verify-email` und `/reset-password` Endpoints #### 9. 2FA/MFA **Status:** ⏳ Offen **Priorität:** Niedrig **Beschreibung:** - Two-Factor Authentication **Tasks:** - [ ] TOTP Support (Google Authenticator, Authy) - [ ] QR Code Generation für TOTP Setup - [ ] Backup Codes generieren - [ ] 2FA Enforcement für Admin Accounts --- ### Admin Features (Priorität: MITTEL) #### 12. Token Management **Status:** ⏳ Offen **Priorität:** Niedrig **Beschreibung:** - Aktive Tokens anzeigen und verwalten **Tasks:** - [ ] Token List View (Access + Refresh Tokens) - [ ] Token Revocation UI - [ ] Token Lifetime Configuration - [ ] "Revoke all tokens for user" Funktion #### 13. Bulk Operations **Status:** ⏳ Offen **Priorität:** Niedrig **Beschreibung:** - Bulk User Import/Management **Tasks:**. - [ ] CSV Import für Users - [ ] Bulk Permission Assignment - [ ] User Groups erstellen - [ ] Group-based Permissions --- --- ### User Experience (Priorität: NIEDRIG) #### 19. Consent Screen **Status:** ⏳ Offen **Priorität:** Niedrig **Beschreibung:** - User muss Scopes bestätigen - "Diese App möchte Zugriff auf..." **Tasks:** - [ ] Consent Screen Template - [ ] Scope Descriptions - [ ] Remember Consent per Client - [ ] Revoke Consent UI #### 20. Session Management für User **Status:** ⏳ Offen **Priorität:** Niedrig **Beschreibung:** - Aktive Sessions anzeigen **Tasks:** - [ ] Session List View - [ ] "Logout from all devices" - [ ] Session Details (IP, Location, Device) - [ ] Suspicious Login Warnings #### 21. Internationalization (i18n) **Status:** ⏳ Offen **Priorität:** Niedrig **Beschreibung:** - Mehrsprachige UI - Aktuell: Mix aus Deutsch/Englisch **Tasks:** - [ ] Flask-Babel Integration - [ ] Deutsche Übersetzungen - [ ] Englische Übersetzungen - [ ] Language Switcher in UI #### 22. Profile Picture Support **Status:** ⏳ Offen **Priorität:** Niedrig **Beschreibung:** - Avatar Upload **Tasks:** - [ ] Avatar Upload im User Dashboard - [ ] Image Resizing/Cropping - [ ] Gravatar Fallback - [ ] Avatar in ID Token (picture claim) --- **Letzte Aktualisierung:** 2025-11-27