Zum Inhalt

Benutzerverwaltung mit AD/LDAP

Achtung

Dieses Feature erfordert aktuell einen Benutzer mit System Administrator-Rechten. Es wird in einem späteren Release auch für andere Rechtegruppen verfügbar sein.

ad-connect ermöglicht es, Benutzer aus einem lokalen Benutzerverzeichnis nahtlos in myexchange.rocks zu integrieren.

Neue Synchronisationskonfiguration erstellen

Eine Synchronisationskonfiguration definiert, wie das System Verzeichnisinformationen wie Benutzer aus einer externen Quelle, etwa einem Active Directory oder LDAP-Server, synchronisieren soll. Wähle zunächst einen eindeutigen Namen, z. B. den Servernamen der Synchronisation.

Um eine neue Synchronisationskonfiguration hinzuzufügen, folge bitte den untenstehenden Anweisungen und den Schritten auf deinem Bildschirm:

Neue Synchronisationskonfiguration hinzufügen
Neue Synchronisationskonfiguration hinzufügen

Nachdem alle Einstellungen eingetragen sind, klicke auf Add synchronization. Daraufhin zeigt das System sowohl die Application ID als auch den Secret Token an.

Wichtig

Notiere dir den Secret Token, da dieser nur einmal angezeigt wird.

Übersicht Synchronisationskonfiguration
Synchronisationskonfiguration Übersicht

Die Übersicht zeigt auch einen Downloadlink für ad-connect und den Verbindungsstatus eines Clients. Das Client-Download-Archiv enthält ein Binary, eine Beispielkonfiguration und eine README-Datei mit weiteren Anleitungen.

Synchronisationseinstellungen
Synchronisationseinstellungen

ad-connect konfigurieren

Zur Konfiguration von ad-connect, passe die Beispiel-adc.yaml an deine Umgebung an. Ein Beispiel:

settings:
  dry-run: true
  no-update: false
  no-create: false
  no-delete: false
  delete-disables: true
  no-update-provider-mismatch: true
  create-as-disabled: false

backend:
  ldap:
    addr: ldap://your-ldap-server.local
    bind_dn: cn=readonly,dc=lg,dc=local
    bind_password: readonly
    base_dn: dc=lg,dc=local
    scope: sub

    sync:
      page_size: 20
      filter: (objectClass=inetOrgPerson)

    authentication:
      username_attribute: mail
      username_filter_template: (&(objectClass=inetOrgPerson)(mail=%s))
      timeout: 5
````

!!! abstract "Hinweis zu den `adc.yaml`-Einstellungen"
Die Einstellungen können sowohl serverseitig in der Synchronisationskonfiguration als auch clientseitig in der adc.yaml definiert werden. Falls es widersprüchliche Werte gibt, überschreibt der Server die Client-Einstellungen (z. B. erlaubt der Server nur Dry-Runs, kann der Client keine Benutzer importieren).
## ad-connect ausführen

`ad-connect` unterstützt zwei Betriebsmodi:

1. Mit dem Parameter `imp` importiert es Benutzer aus der konfigurierten LDAP-Quelle.
2. Mit dem Parameter `run` stellt es die Verbindung zu myexchange.rocks her.

Wenn **Password Delegation** aktiviert ist, muss der Client **ständig verbunden** bleiben, damit sich Benutzer anmelden können.

### Beispiel für Systemd-Dienst

Um ad-connect per systemd zu betreiben, müssen folgende Schritte durchgeführt werden:

Zunächst eine **Servicekonfigurationsdatei** `adc.cfg` in `/etc/e4a-ad-connect` anlegen. Diese Datei muss enthalten:

```bash
AD_CONNECT_ADDR=address-of-server:443
AD_CONNECT_AUTH=application-id:secret-token
AD_CONNECT_CONFIG=/etc/e4a-ad-connect/adc.yaml

Zur Erstellung des eigentlichen Dienstes:

  1. Führe sudo systemctl edit --force --full systeminfo.service aus.
  2. Füge den folgenden Inhalt in die Service-Datei ein:
[Unit]
Description=ad-connect
After=network.target

[Service]
Type=simple
User=nobody
Group=nogroup
WorkingDirectory=/etc/e4a-ad-connect
ExecStart=/usr/local/bin/adc run
EnvironmentFile=/etc/e4a-ad-connect/adc.cfg
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
Restart=always
RestartSec=10
TimeoutStopSec=30
KillMode=process

[Install]
WantedBy=multi-user.target

Hinweis

**Installer** für Windows und Linux sowie ein **OCI-Container** werden in einem späteren Release verfügbar sein.

Welche Informationen kann ich mit ad-connect importieren?

Standardmäßig nutzt ad-connect folgende Attribute beim Erstellen/Aktualisieren eines Benutzers:

  • cn oder displayname
  • title
  • description
  • mobile
  • telephonenumber
  • mail

Wenn im Bereich Synchronisationseinstellungen die Option Aliase synchronisieren deaktiviert ist, muss das Attribut mail eindeutig sein.

Anchor-Attribut

Das Anchor-Attribut wird in den Synchronisationseinstellungen festgelegt und bestimmt, welches Attribut als eindeutiges Kennzeichen des Benutzers dient. Falls das Attribut eine gültige E-Mail-Adresse ist, wird sie direkt verwendet; andernfalls kann je nach LDAP-Position eine Domain zugeordnet werden. Beispiel:

[..]
    domain_map:
      dc=lg,dc=local: ad-connect.local
[..]

Wichtig

Bis Version 6.1.2 war `mail` das Standard-Anchor-Attribut auf dem Server. Ab Version 6.2.0 ist es `uid`.

Attribut-Zuordnung

Wenn benötigte Informationen in anderen Attributen gespeichert sind, können diese umgemappt werden. Beispiel: Der Wert von kopanoAliases wird als mail behandelt:

[..]
    attributes_map:
        kopanoAliases: mail
[..]

Alternativ können Attribute beim Einlesen transformiert werden, z. B. wenn der LDAP eine andere Domain enthält:

[..]
    attributes_transformer:
        mail: 's/\(.*\)@.*/\1/'
        attributes_transformer_command: "sed --sandbox -e"
[..]