-- LDAP/Active-Directory-Anbindung (IAM-05, siehe core-kanban/tickets/IAM-05.md). -- Bind-Credentials liegen NIE in dieser Tabelle im Klartext — bind_password_env -- nennt nur den Namen einer Umgebungsvariable, aus der das Passwort zur -- Laufzeit gelesen wird (Projekt-Konvention: Secrets nur ueber Env-Vars). CREATE TABLE ldap_config ( id BOOLEAN PRIMARY KEY DEFAULT true CHECK (id), url TEXT NOT NULL, bind_dn TEXT NOT NULL, bind_password_env TEXT NOT NULL, base_dn TEXT NOT NULL, user_filter TEXT NOT NULL DEFAULT '(objectClass=person)', updated_at TIMESTAMPTZ NOT NULL DEFAULT now() ); -- Erlaubnis-Matrix LDAP-Gruppe -> NEXARCH-Rolle (Akzeptanzkriterium 3). -- Eine LDAP-Gruppe OHNE Eintrag hier vergibt KEINE Rolle — kein impliziter -- Zugriff durch Gruppennamen-Zufall (Privilege-Escalation-Schutz, siehe -- "Bekannte Fehler vermeiden" im Ticket). CREATE TABLE ldap_group_role_mapping ( ldap_group TEXT PRIMARY KEY, role TEXT NOT NULL CHECK (role IN ('user', 'tenant_admin')) );