Aufgabe 37: Admin Basic-Auth & Zugriffsschutz #12

Open
opened 2026-06-24 11:10:20 +02:00 by danielkrause · 0 comments
Owner

Ziel

Admin-Dashboard (/admin) mit Basic-Auth schützen. Keine öffentlich erreichbare Admin-Oberfläche.

Ist-Stand

  • /admin ist ohne Authentifizierung erreichbar
  • Kein Login, keine Session

Akzeptanzkriterien

  • Basic-Auth für /admin und /admin/*
  • Credentials aus .env (ADMIN_USER, ADMIN_PASS)
  • Kein Auth für /api/* (öffentliche API-Endpunkte)
  • Failed-Login → 401 mit WWW-Authenticate Header
  • Brute-Force-Schutz: Max 5 Fehlversuche pro IP/Minute
  • Login-Seite mit BSN-Blau-Design (kein Browser-Standard-Popup)

Dateien

  • app.py — Flask Basic-Auth Middleware oder Decorator
  • templates/login.html — NEU
  • tests/test_admin_auth.py — NEU

Qualität

ruff check . --fix && ruff format . && pytest tests/test_admin_auth.py -v
## Ziel Admin-Dashboard (`/admin`) mit Basic-Auth schützen. Keine öffentlich erreichbare Admin-Oberfläche. ## Ist-Stand - `/admin` ist ohne Authentifizierung erreichbar - Kein Login, keine Session ## Akzeptanzkriterien - [ ] Basic-Auth für `/admin` und `/admin/*` - [ ] Credentials aus `.env` (`ADMIN_USER`, `ADMIN_PASS`) - [ ] Kein Auth für `/api/*` (öffentliche API-Endpunkte) - [ ] Failed-Login → 401 mit `WWW-Authenticate` Header - [ ] Brute-Force-Schutz: Max 5 Fehlversuche pro IP/Minute - [ ] Login-Seite mit BSN-Blau-Design (kein Browser-Standard-Popup) ### Dateien - `app.py` — Flask Basic-Auth Middleware oder Decorator - `templates/login.html` — NEU - `tests/test_admin_auth.py` — NEU ### Qualität ```bash ruff check . --fix && ruff format . && pytest tests/test_admin_auth.py -v ```
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: danielkrause/BSN-Chatsystem#12