LDAP/AD-Auth fuer Dashboard: User-Bind gegen insight.local, Zugriff nur fuer Domänen-Admins
- ldap_auth Service: User bindet als user@domain (kein Servicekonto noetig), Gruppenpruefung ueber Matching-Rule-In-Chain (verschachtelte Gruppen) - Login-Route: lokaler User zuerst, dann LDAP-Fallback; LDAP-User werden lokal gespiegelt (is_ldap, is_admin, Profildaten aus AD) - Neue Config: ldap_domain, ldap_admin_group, ldap_timeout_seconds - ldap3 Dependency, 7 Unit-Tests (ldap3 gemockt), ruff+mypy sauber - Gruppen-DN verified am DC: CN=Domänen-Admins,CN=Users,DC=insight,DC=local
This commit is contained in:
+11
-6
@@ -35,14 +35,19 @@ DB_PASSWORD=change-me-db-password
|
||||
JOB_STALE_TIMEOUT=3600
|
||||
|
||||
# =============================================================================
|
||||
# LDAP / ACTIVE DIRECTORY (STUB - prepared for future implementation)
|
||||
# LDAP / ACTIVE DIRECTORY
|
||||
# =============================================================================
|
||||
LDAP_ENABLED=false
|
||||
LDAP_URI=ldaps://dc.insight.local:636
|
||||
LDAP_BIND_DN=CN=svc_updater,OU=Services,DC=insight,DC=local
|
||||
LDAP_BIND_PASSWORD=
|
||||
LDAP_USER_SEARCH_BASE=OU=Users,DC=insight,DC=local
|
||||
# User-Bind: Es gibt kein Servicekonto. Der User bindet mit seinen eigenen
|
||||
# Credentials (user@domain), Gruppenmitgliedschaft wird ueber die eigene
|
||||
# Verbindung geprueft. Nur Mitglieder der Admin-Gruppe kommen rein.
|
||||
LDAP_ENABLED=true
|
||||
LDAP_URI=ldaps://ads-server-01.insight.local:636
|
||||
LDAP_DOMAIN=insight.local
|
||||
LDAP_USER_SEARCH_BASE=DC=insight,DC=local
|
||||
LDAP_USER_FILTER=(sAMAccountName={username})
|
||||
# Achtung: DN exakt wie im AD (verified 2026-09-28, Umlaut beachten):
|
||||
LDAP_ADMIN_GROUP=CN=Domänen-Admins,CN=Users,DC=insight,DC=local
|
||||
LDAP_TIMEOUT_SECONDS=10
|
||||
|
||||
# =============================================================================
|
||||
# FRONTEND (injected at build time via Vite)
|
||||
|
||||
Reference in New Issue
Block a user