first commit

This commit is contained in:
2025-11-30 00:07:24 +01:00
commit b5e642aecb
78 changed files with 15162 additions and 0 deletions

210
docs/TODO.md Normal file
View File

@ -0,0 +1,210 @@
# 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