Benutzerverwaltung
Die Benutzerverwaltung umfasst drei Bereiche: lokale und LDAP-Benutzer, Gruppenverwaltung mit Datenquellen-Zuordnung sowie die LDAP/Active-Directory-Anbindung. Alle Einstellungen sind über die Admin-UI (Tab »Benutzerverwaltung«) oder die Admin-Chat-API erreichbar.
Tab: Benutzer
Zeigt alle registrierten Benutzer (lokal und LDAP). LDAP-Benutzer werden automatisch beim Sync angelegt, lokale Benutzer manuell. Jeder Benutzer hat einen Anmeldestatus, eine Rolle und optional eine LDAP-Herkunft.
Benutzerliste — Spalten
| Spalte | Beschreibung | Hinweis |
|---|---|---|
| Benutzer | Eindeutiger Login-Name. Case-insensitiv gespeichert. | Mindestens 2 Zeichen. Bei LDAP-Benutzern: sAMAccountName aus dem AD. |
| Name | Anzeigename (Vorname + Nachname). | Wird bei LDAP-Sync automatisch aus givenName + sn befüllt. |
| E-Mail-Adresse des Benutzers. | Bei LDAP aus dem mail-Attribut. Optional für lokale Benutzer. |
|
| Admin | Toggle: Administrator-Rolle (Ja/Nein). | Admins haben Zugriff auf die Admin-UI und den Admin-Chat. Per Klick umschaltbar. |
| Quelle | Herkunft: local oder ldap. |
LDAP-Benutzer können kein lokales Passwort setzen — Anmeldung nur via AD. |
| Aktiv | Toggle: Aktiv-Status (Ja/Nein). | Wichtig: Bei Deaktivierung werden sofort alle Sessions des Benutzers invalidiert. Der Benutzer wird umgehend ausgeloggt. |
Benutzer anlegen (lokal)
| Feld | Typ | Pflicht | Beschreibung | Empfehlung |
|---|---|---|---|---|
Benutzername |
Text | Ja | Login-Name, mindestens 2 Zeichen. Muss eindeutig sein (case-insensitiv). | Kurze, einheitliche Namen verwenden (z.B. aalber, mmueller). Erleichtert die Zuordnung zu LDAP-Konten, falls später migriert wird. |
Passwort |
Passwort | Nein | Mindestens 8 Zeichen. Wird gehashed gespeichert (bcrypt). | Wird kein Passwort gesetzt, kann sich der Benutzer nicht anmelden, bis ein Admin eines vergibt. Nützlich für »vorbereitete« Konten. |
Vorname |
Text | Nein | Wird im Anzeigenamen und in der Benutzerliste gezeigt. | Ausfüllen — erleichtert die Zuordnung in Gruppen und Logs erheblich. |
Nachname |
Text | Nein | Siehe Vorname. | Siehe Vorname. |
E-Mail |
Nein | E-Mail-Adresse. | Aktuell nicht für Benachrichtigungen genutzt, aber für spätere Passwort-Reset-Funktion vorgesehen. | |
Administrator |
Checkbox | Nein | Wenn aktiviert, hat der Benutzer vollen Admin-Zugang. | Sparsam vergeben. Für die meisten Benutzer reicht der normale Chat-Zugang. |
Benutzer bearbeiten
Über den Bearbeiten-Button einer Zeile öffnet sich ein Modal mit denselben Feldern wie beim Anlegen, plus:
| Feld | Beschreibung | Hinweis |
|---|---|---|
Neues Passwort |
Optionales Feld. Leer lassen = Passwort bleibt unverändert. | Bei Eingabe werden alle aktiven Sessions des Benutzers invalidiert (Sicherheitsfeature). |
Aktiv |
Checkbox. Deaktivierung sperrt den Benutzer sofort. | Nützlich für temporäre Sperrungen — der Benutzer muss nicht gelöscht werden. |
Tab: Gruppen
Gruppen werden aus dem Active Directory importiert und steuern den Zugriff auf Datenquellen und ERP-Tools. Die Zuordnung »Gruppe → Datenquelle« erfolgt im Datenquellen-Tab.
Gruppenliste — Spalten
| Spalte | Beschreibung | Hinweis |
|---|---|---|
| Gruppe | Common Name (cn) der AD-Gruppe. |
Wird beim Import aus dem AD übernommen. |
| DN | Distinguished Name — vollständiger LDAP-Pfad der Gruppe. | Beispiel: CN=KI-Benutzer,OU=Gruppen,DC=firma,DC=local |
| Mitglieder | Anzahl der zugewiesenen Benutzer. | Wird beim Mitglieder-Sync aktualisiert. |
| Datenquellen | Anzahl der zugeordneten Datenquellen. | Zuordnung erfolgt im Datenquellen-Tab (nicht hier). |
Details-Panel
Bei Klick auf eine Zeile öffnet sich ein Detail-Panel mit dem vollständigen DN, Import-/Aktualisierungszeitpunkten und einer Mitgliederliste. Diese zeigt für jedes Mitglied: Name, E-Mail und Quelle (LDAP/Lokal). Inaktive Benutzer sind ausgegraut und mit (inaktiv) markiert.
Gruppen importieren
| Feld | Typ | Beschreibung | Empfehlung |
|---|---|---|---|
Base DN (optional) |
Text | Einschränkung des Suchpfads für den Gruppen-Import. Standard: der in der LDAP-Konfiguration hinterlegte Search Base. |
Nur setzen, wenn nur Gruppen aus einem bestimmten OU importiert werden sollen. Beispiel: OU=KI-Gruppen,DC=firma,DC=local
|
Nach Klick auf »Gruppen laden« werden alle im AD gefundenen Gruppen als Checkbox-Liste angezeigt. Bereits importierte Gruppen sind deaktiviert (ausgegraut). Über »Alle auswählen« können alle neuen Gruppen auf einmal markiert werden.
Mitglieder synchronisieren
Der Button »Mitglieder synchronisieren« gleicht die Mitgliedschaften aller importierten Gruppen mit dem Active Directory ab. Das bedeutet:
- Neue Mitglieder werden der Gruppe zugeordnet
- Entfernte Mitglieder werden aus der Zuordnung gelöscht
- Der Mitglieder-Zähler wird aktualisiert
- LDAP-Verbindung konfigurieren (Tab: LDAP)
- AD-Gruppe auswählen und Benutzer-Sync durchführen (Tab: LDAP)
- Gruppen importieren (Tab: Gruppen)
- Mitglieder synchronisieren (Tab: Gruppen)
- Datenquellen den Gruppen zuordnen (Tab: Datenquellen)
Tab: LDAP-Konfiguration
Hier wird die Verbindung zum Active Directory / LDAP-Server konfiguriert. Eine funktionierende LDAP-Anbindung ist Voraussetzung für den automatischen Benutzer-Import und die Gruppen-Synchronisation.
Server-Verbindung
| Feld | Typ | Standard | Beschreibung | Empfehlung |
|---|---|---|---|---|
Server |
Text | — |
IP-Adresse oder Hostname des LDAP-/AD-Servers. Beispiele: 192.168.1.10, dc.firma.local, ad01.example.com
|
Hostname bevorzugen — IP-Adressen können sich ändern, Hostnamen bleiben stabil. Bei Kerberos/SSL ist ein korrekter Hostname zwingend (muss zum Zertifikats-CN passen). |
Port |
Zahl | 389 |
LDAP-Port. Standard-Ports:389 — LDAP (unverschlüsselt oder STARTTLS)636 — LDAPS (SSL/TLS)
|
636 mit SSL empfohlen — Passwörter werden sonst im Klartext über das Netzwerk gesendet. In reinen Intranet-Umgebungen kann 389 akzeptabel sein. |
SSL |
Checkbox | Aus |
Aktiviert SSL/TLS-Verschlüsselung (LDAPS). Automatik: Port wird bei Aktivierung auf 636, bei Deaktivierung auf 389 gesetzt. |
Immer aktivieren, außer der AD-Server unterstützt kein SSL (z.B. in Testumgebungen). Für Produktionsumgebungen ist SSL Pflicht. |
Bind DN |
Text | — | Distinguished Name des Service-Accounts für die LDAP-Suche. Dieser Account braucht nur Lese-Rechte. |
Einen dedizierten Service-Account verwenden — niemals einen persönlichen Admin-Account. Siehe LDAP-Pfade für Formatbeispiele. |
Bind Passwort |
Passwort | — |
Passwort des Service-Accounts. Wird AES-verschlüsselt in der Datenbank gespeichert. Anzeige: ******** wenn bereits konfiguriert.
|
Leer lassen = bestehendes Passwort beibehalten. Nur ausfüllen, wenn das Passwort geändert werden soll. |
Suchpfad (Search Base) |
Text | — | Basis-DN für die Benutzer- und Gruppensuche. Die Suche findet rekursiv in allen Unter-OUs statt. |
So spezifisch wie möglich — der gesamte Baum ab diesem Punkt
wird durchsucht. Ein zu breiter Suchpfad (z.B. DC=firma,DC=local)
kann bei großen ADs langsam sein und Service-Accounts oder System-Objekte
zurückliefern.Siehe LDAP-Pfade für Beispiele. |
Testen und Speichern
Der Button »Testen und Speichern« führt vor dem Speichern einen Verbindungstest durch. Nur bei erfolgreichem Test wird die Konfiguration gespeichert. Der Test prüft:
- TCP-Erreichbarkeit des Servers (Host + Port)
- Bind-Authentifizierung mit den angegebenen Credentials
- Gültigkeit des Search Base (Suchpfad existiert im AD)
Konfiguration löschen
Der Button »Löschen« entfernt die LDAP-Konfiguration vollständig
und deaktiviert alle LDAP-Benutzer. Das bedeutet: Alle Benutzer mit
auth_source=ldap werden auf is_active=0 gesetzt und sofort ausgeloggt.
Lokale Benutzer sind nicht betroffen.
AD-Gruppe und Synchronisation
Die AD-Gruppe bestimmt, welche Active-Directory-Benutzer als KIara-Benutzer importiert werden. Nur Mitglieder der ausgewählten Gruppe werden beim Sync angelegt/aktualisiert.
Gruppe auswählen
- Klick auf »Gruppen laden« — zeigt alle im AD gefundenen Gruppen
- Klick auf + neben der gewünschten Gruppe
- Der erste Benutzer-Sync wird automatisch gestartet
Synchronisation
Der Button »Jetzt synchronisieren« startet einen manuellen LDAP-Sync. Dabei passiert folgendes:
- Neue AD-Benutzer: Werden als KIara-Benutzer angelegt (
auth_source=ldap,is_active=1,is_admin=0) - Bestehende Benutzer: Vorname, Nachname und E-Mail werden aus dem AD aktualisiert
- Entfernte Benutzer: Benutzer, die nicht mehr Mitglied der Gruppe sind, werden deaktiviert (nicht gelöscht)
Der Zeitpunkt des letzten Syncs wird als »Letzter Sync« angezeigt.
Gruppenauswahl aufheben
Der Button »Aufheben« löst die Bindung zur AD-Gruppe. Bestehende LDAP-Benutzer bleiben erhalten, es findet aber kein Sync mehr statt. Nützlich, wenn auf eine andere Gruppe gewechselt werden soll.
LDAP-Pfade — Beispiele
LDAP Distinguished Names (DNs) folgen einer hierarchischen Struktur von links (spezifisch) nach rechts (allgemein). Die wichtigsten Bausteine:
| Kürzel | Bedeutung | Beispiel |
|---|---|---|
DC | Domain Component | DC=firma,DC=local (entspricht firma.local) |
OU | Organizational Unit | OU=Benutzer, OU=IT-Abteilung |
CN | Common Name | CN=Max Mustermann, CN=ldapreader |
Bind DN — Beispiele
# Service-Account in der Standard-OU "Users"
CN=ldapreader,CN=Users,DC=firma,DC=local
# Service-Account in einer eigenen Service-OU
CN=svc-kiara-reader,OU=ServiceAccounts,DC=firma,DC=local
# Service-Account in einer verschachtelten OU
CN=kiara-ldap,OU=Applikationen,OU=ServiceAccounts,DC=example,DC=com
# UPN-Format (Alternative, unterstützt von vielen AD-Servern)
svc-kiara-reader@firma.local
dsquery user -name "ldapreader" (auf einem Domain Controller)oder in der AD-Verwaltungskonsole: Rechtsklick → Eigenschaften → Attribut-Editor →
distinguishedName.
Search Base — Beispiele
# Gesamte Domain durchsuchen (funktioniert, aber unspezifisch)
DC=firma,DC=local
# Nur die OU "Mitarbeiter" (empfohlen — spezifisch)
OU=Mitarbeiter,DC=firma,DC=local
# Verschachtelte OU — z.B. nur IT-Abteilung
OU=IT,OU=Abteilungen,DC=firma,DC=local
# Mehrere Standorte — gemeinsamer Eltern-Knoten
OU=Standorte,DC=firma,DC=local
OU=Berlin und OU=München unter OU=Standorte),
den gemeinsamen Eltern-Knoten (OU=Standorte,DC=firma,DC=local) als
Search Base verwenden. Die Suche ist rekursiv und findet Benutzer in allen Unter-OUs.
Gruppen-DN — Beispiele
# Sicherheitsgruppe in Standard-Gruppen-OU
CN=KIara-Benutzer,OU=Gruppen,DC=firma,DC=local
# Verschachtelte Gruppe in IT-spezifischer OU
CN=KI-Zugang,OU=Applikationsgruppen,OU=IT,DC=firma,DC=local
# Gruppe im Standard-Container "Users"
CN=KIara-Users,CN=Users,DC=firma,DC=local
DC=firma,DC=local
├── OU=ServiceAccounts
│ └── CN=svc-kiara-reader ← Bind DN
├── OU=Mitarbeiter ← Search Base
│ ├── OU=Berlin
│ │ ├── CN=Max Mustermann
│ │ └── CN=Erika Musterfrau
│ └── OU=München
│ └── CN=Hans Beispiel
└── OU=Gruppen
├── CN=KIara-Benutzer ← AD-Gruppe (Benutzer-Sync)
├── CN=KIara-Vertrieb ← Import-Gruppe (Datenquellen-Zuordnung)
└── CN=KIara-Technik ← Import-Gruppe (Datenquellen-Zuordnung)
Troubleshooting
| Problem | Mögliche Ursache | Lösung |
|---|---|---|
| Verbindungstest schlägt fehl | Firewall blockiert Port 389/636, Server nicht erreichbar |
telnet <server> 389 vom KIara-Server testen.
Bei SSL: openssl s_client -connect <server>:636
|
| Bind fehlgeschlagen | Falscher DN oder Passwort, Account gesperrt | DN genau prüfen (Leerzeichen, Groß-/Kleinschreibung der OUs). Account im AD auf Sperrung prüfen. |
| Keine Benutzer nach Sync | Search Base zu spezifisch oder falsche Gruppe ausgewählt | Search Base erweitern (z.B. auf Domain-Ebene) und prüfen, ob die gewählte Gruppe tatsächlich Mitglieder hat. |
| SSL-Zertifikatsfehler | Selbstsigniertes Zertifikat, CN stimmt nicht mit Hostname überein |
CA-Zertifikat auf dem KIara-Server installieren:cp firma-ca.crt /usr/local/share/ca-certificates/ && update-ca-certificates
|
| LDAP-Benutzer können sich nicht anmelden | Benutzer ist is_active=0 oder LDAP-Config wurde gelöscht |
Im Benutzer-Tab prüfen, ob der Benutzer als aktiv markiert ist. |
API-Endpunkte
Die vollständige API-Referenz für Benutzer, Gruppen und LDAP wird dynamisch aus der Admin-Registry generiert und ist im API-Katalog verfügbar:
- Benutzer-API — Benutzer auflisten, erstellen, aktualisieren, löschen, Passwort-Reset
- Gruppen-API — Gruppen auflisten, importieren, synchronisieren, löschen
- LDAP-API — Konfiguration, Gruppen-Auswahl, Sync
Sicherheit & Sessions
| Mechanismus | Details |
|---|---|
| Passwort-Speicherung | Lokale Passwörter: bcrypt-Hash. LDAP-Bind-Passwort: AES-256 verschlüsselt in der DB. |
| Session-Invalidierung | Sofort bei: Benutzer deaktivieren, Benutzer löschen, Passwort-Reset, LDAP-Config löschen. |
| Selbstschutz | Der aktuelle Admin kann sich weder selbst löschen noch deaktivieren. |
| Admin-Rechte | Werden niemals automatisch durch LDAP-Sync vergeben oder entzogen. |
| LDAP-Credentials | Bind-Passwort wird maskiert angezeigt (********). Leere Eingabe = bestehendes Passwort beibehalten. |