Files
tactical-docs/install-notes/021-auth-grundlage-admin-login.md
T
2026-06-14 07:53:30 +00:00

130 lines
2.3 KiB
Markdown

# 021 - Auth-Grundlage und Admin-Login
## Ziel
Der Server wurde um eine erste Auth-Grundlage erweitert.
Implementiert wurde ein Login-Endpunkt für den vorhandenen Bootstrap-Admin.
## Neuer Endpunkt
POST /api/v1/auth/login
Request:
{
"username": "admin",
"password": "<lokales Passwort>"
}
Response bei Erfolg:
{
"status": "ok",
"tokenType": "Bearer",
"accessToken": "...",
"refreshToken": "...",
"expiresInSeconds": 3600,
"user": {
"id": "...",
"username": "admin",
"displayName": "RUVNOX Admin",
"role": "admin"
}
}
## Neue Dateien
Security:
- src/main/kotlin/de/ruvnox/tactical/security/PasswordHash.kt
- src/main/kotlin/de/ruvnox/tactical/security/TokenSupport.kt
API:
- src/main/kotlin/de/ruvnox/tactical/api/AuthDtos.kt
- src/main/kotlin/de/ruvnox/tactical/api/AuthRoutes.kt
Repository:
- src/main/kotlin/de/ruvnox/tactical/repository/SessionRepository.kt
Geändert:
- UserRepository.kt
- Main.kt
## Passwortprüfung
Der Server kann jetzt PBKDF2-SHA256-Hashes im Format des Bootstrap-Scripts prüfen:
pbkdf2_sha256$iterations$salt_base64$hash_base64
Die Prüfung nutzt PBKDF2WithHmacSHA256 und konstantzeitnahen Vergleich über MessageDigest.isEqual.
## Token
Beim Login werden erzeugt:
- accessToken
- refreshToken
Der refreshToken wird nicht im Klartext gespeichert.
In auth_sessions wird gespeichert:
- refresh_token_hash = SHA-256(refreshToken)
- user_id
- expires_at
- created_at
- last_seen_at
## Datenbank
Genutzte Tabelle:
auth_sessions
Nach erfolgreichem Login existiert mindestens eine aktive Session.
## Sicherheitshinweise
Dies ist eine erste Auth-Grundlage.
Noch nicht final umgesetzt:
- geschützte Endpunkte
- Bearer-Token-Prüfung
- Refresh-Flow
- Logout
- Rollenprüfung auf Routen
- Rate-Limiting
- Brute-Force-Schutz
- Session-Cleanup
## Verifikation
Login wurde öffentlich geprüft:
POST https://tactical.ruvnox.de/api/v1/auth/login
Tokens wurden in der Ausgabe maskiert.
## Git-Commit
tactical-server:
Add admin login endpoint
## Abschlussstand
- Passwort-Hash-Verifikation implementiert
- Login-DTOs implementiert
- Login-Route implementiert
- Session-Erzeugung implementiert
- Build erfolgreich
- Deployment erfolgreich
- Login erfolgreich geprüft
- Server-Repo gepusht
- Docs-Repo aktualisiert