🔐 Keycloak-Integration – Statusbericht (historisch)¶
Datum: 20.11.2025
Status: ✅ 95 % implementiert – bereit für Tests
Hinweis: Keycloak wurde später durch Authentik ersetzt; dieses Dokument dient nur der Nachvollziehbarkeit.
Implementierte Phasen¶
1) Docker & Infrastruktur (100 %)¶
- Keycloak-Container (Port 8090) + PostgreSQL-DB (
llars_keycloakdb) docker-compose.ymlkonfiguriert, Realm-Import (llars, Clients:llars-frontend,llars-backend)- Admin-User
admin/admin123, Rollenadmin,rater,evaluator - CORS- und Env-Variablen gesetzt
2) Backend (100 %)¶
- Abhängigkeiten:
python-keycloak,PyJWT,cryptography - Token-Validierung:
app/auth/keycloak_validator.py - Decorators:
@keycloak_required,@admin_required,@roles_required,@optional_auth - Routen:
/auth/keycloak/health_check,/auth/keycloak/me,/auth/keycloak/validate,/auth/keycloak/admin/check
3) Frontend (100 %)¶
@dsb-norge/vue-keycloak-jsintegriert (Axios-Interceptor, Token-Refresh)- Login-Flow auf Keycloak umgestellt, Router-Guards mit Rollen-Check
- Yjs-WebSocket: JWT-Validierung mit
jwks-rsa
Bekannte Punkte & Fixes¶
- Dependency:
python-keycloakVersion auf 5.0.0 angehoben (4.8.0 existiert nicht). - .env: Platzhalter für OPENAI-API korrigiert.
- docker-compose: Optionale ssh-Proxy-Abhängigkeit entfernt.
Test-Checkliste (Keycloak-Setup)¶
- Keycloak läuft auf Port 8090, Admin-Console erreichbar.
- Realm
llarsimportiert, Clients vorhanden. - Backend-Health:
/auth/keycloak/health_checkantwortet. - Login-Flow: Redirect zu Keycloak, Token im Browser, Rücksprung zu
/Home. - WebSocket: JWT-Validierung aktiv.
Deployment-Hinweise (historisch)¶
- Development:
docker compose up -d --build(alle Ports exponiert). - Production: nur nginx Port 80/443 freigeben; Backend/Frontend/Yjs intern.
- Admin-Konsole:
http://localhost:8090/admin(admin/admin_secure_password_123).
Fazit: Die Keycloak-Integration war funktional abgeschlossen; spätere Versionen migrierten auf Authentik. Dieses Dokument bleibt als Referenz im Archiv.