3.5. Provisioning Service#

Der Provisioning Service ist ein Ereignis- und Messaging-Dienst, der interessierte Dienste über Ereignisse im LDAP-Verzeichnisdienst benachrichtigen kann. Wenn sich Daten im LDAP-Verzeichnis auf dem Primary Directory Node ändern, erhält der Provisioning Service eine Benachrichtigung über die Änderung und informiert alle abonnierten Dienste über die Änderung. Im Gegensatz zum Univention Directory Listener liefert er die UDM-Darstellung der geänderten Objekte anstelle der LDAP-Darstellung.

Diese Seite beschreibt die Installation und Konfiguration des Provisioning Service in UCS. Weitere Informationen zur Funktionsweise des Provisioning Service finden Sie unter Provisioning Service in Nubus for Kubernetes - Architecture Manual 1.x [4].

Bemerkung

Es gibt keine in UCS integrierten Dienste, die den Provisioning Service nutzen. Sie können Dienste erstellen, die den Provisioning Service verwenden, wie dokumentiert unter Provisioning API in Nubus for Kubernetes - Customization and Modification Manual 1.x [5].

Bemerkung

Der Provisioning Service ist Teil von Univention Nubus in der Identity Store and Directory Service Komponente. Weitere Informationen über Nubus finden Sie unter Was ist Univention Nubus?

3.5.1. Installation#

Das Univention App Center stellt den Provisioning Service als App bereit. UCS installiert ihn nicht standardmäßig. Sie können ihn auf dem Primary Directory Node und auf jedem Backup Directory Node installieren. Es ist nicht möglich, den Provisioning Service auf anderen Server-Systemrollen zu installieren. Der Provisioning Service besteht aus den folgenden Apps:

provisioning-service

Die App provisioning-service ist eine Container-App, die die Hauptfunktionen des Provisioning Service“ bereitstellt.

provisioning-service-backend

Die App provisioning-service-backend ist eine paketbasierte App, die Integrationspakete unter UCS installiert. Das App Center installiert sie automatisch als Abhängigkeit von provisioning-service. Die Pakete enthalten ein Listener-Modul und eine Hostkonfiguration für die TLS-Verschlüsselung zwischen mehreren Installationen.

Um den Provisioning Service zu installieren, wählen Sie eine der folgenden Installationsmethoden. Das App Center wendet mehrere Einstellungen auf den Provisioning Service an. Weitere Informationen finden Sie unter Provisioning Service Einstellungen.

Sie können die App provisioning-service wie jede andere App über das Univention App Center installieren. Allgemeine Informationen zum Univention App Center und dessen Verwendung für die Softwareinstallation finden Sie unter Univention App Center.

Um die App über die Kommandozeile zu installieren, verwenden Sie den Befehl in Quellcode 3.1.

Quellcode 3.1 Installation des Provisioning Service über die Kommandozeile#
$ univention-app install provisioning-service

3.5.2. Ablauf der Provisionierung#

Der Provisioning Service liefert einen Stream von Ereignissen über Datenänderungen im LDAP-Verzeichnisdienst. Er verwendet die folgenden Komponenten:

Provisioning Listener

Ein Univention Directory Listener-Listener-Modul, das auf alle LDAP-Operationen reagiert und diese Änderungen an den Provisioning Service weiterleitet. Das Univention Directory Listener-Modul nubus-provisioning.py benachrichtigt den Provisioning Service. Es läuft nur auf Primary Directory Node.

Provisioning UDM Transformer

Der Provisioning UDM Transformer wandelt auf LDAP-Ebene eingehende Änderungsereignisse durch Aufruf der UDM-HTTP-REST-API um in Provisioning-Ereignisse auf UDM-Ebene. Er läuft nur auf Primary Directory Node.

Provisioning Prefill Service

Der Provisioning Prefill Service überträgt alle UDM-Objekte des abonnierten Typs an die abonnierte Verbraucher-App. Er läuft nur auf dem Primary Directory Node.

Provisioning Dispatcher

Der Provisioning Dispatcher leitet Ereignisse über alle UDM-Objekte an die Provisionierungs-Queues der abonnierten Apps weiter. Er läuft auf

Provisioning API

Die Provisioning-API läuft auf Primary Directory Node und Backup Directory Node und ist die API, die Anwendungen zum Abonnieren von Ereignissen verwenden.

NATS

NATS realisiert das eigentliche Event-Streaming.

Auf dem Backup Directory Node verbindet sich der Provisioning Dispatcher mit dem NATS-Dienst, der auf dem Primary Directory Node läuft. Er überträgt Daten über eine TLS-verschlüsselte Verbindung.

Siehe auch

Provisioning Service

in Nubus for Kubernetes - Architecture Manual 1.x [4] für Informationen über die Architektur des Provisioning Service

Provisioning API

in Nubus for Kubernetes - Customization and Modification Manual 1.x [5] für Informationen darüber, wie der Provisioning Service verwendet und ein Abonnement für einen Provisioning Consumer“ erstellt wird.

3.5.3. Endpunkte und Ports#

Der Provisioning Service stellt Endpunkte und Ports bereit, wie in Tab. 3.1 beschrieben.

Sie können auf die Provisioning-API lokal über http://localhost:7777“ oder remote über https://<Primary FQDN>/univention/provisioning/ zugreifen.

Tab. 3.1 Endpunkte und Ports#

Port

Zweck

4230

Der stunnel-Port. Sie können ihn über die UCR-Variable nats/stunnel/accept/port anpassen.

4222

NATS-Client-Verbindungen.“

7777

Provisioning API.

8222

NATS Monitoring Endpunkt.“

Wichtig

Der Provisioning Dispatcher benötigt Zugriff auf die UDM HTTP REST API auf Port 443 auf Primary Directory Node und Backup Directory Node.

3.5.4. Provisioning Service Logdateien#

Wenn Sie Probleme mit dem Provisioning Service haben, können Sie die folgenden Logdateien konsultieren:

  • Die Container des Provisioning Service schreiben ihre Meldungen nach /var/log/syslog.

  • Das Listener-Modul nubus-provisioning.py, das den Provisioning Service mit Informationen versorgt, schreibt Meldungen nach /var/log/univention/listener_modules/nubus-provisioning.log.

  • Der Dienst stunnel, der die TLS-Verschlüsselung zwischen Primary Directory Node und Backup Directory Node sicherstellt, schreibt Meldungen in die Datei /var/log/stunnel4/stunnel.log.

3.5.5. Provisioning Service Einstellungen#

Die folgenden Referenzen zeigen die verfügbaren Einstellungen innerhalb der Provisioning Service-App. Univention empfiehlt, die Standardwerte beizubehalten.

Um die Einstellungen nach der Installation der App zu ändern, melden Sie sich beim UCS-Verwaltungssystem mit einem Benutzerkonto aus der Gruppe Domain Admins an und gehen Sie zu: App Center ‣ Provisioning Service ‣ Installationen verwalten ‣ Instanz per Checkbox auswählen ‣ ⋯ Mehr ‣ App-Einstellungen. Auf der Seite Konfiguriere Provisioning Service können Sie die Einstellungen ändern und diese auf die App anwenden, indem Sie auf Änderungen anwenden klicken.

Das App Center reinitialisiert dann die Docker-Container für die Provisioning Service-App oder startet sie neu. Reinitialisieren bedeutet, dass das App Center die laufenden Container, aus denen die App besteht, verwirft und einen neuen Satz von Containern erstellt, basierend auf den gerade geänderten Einstellungen.

Für einige Einstellungsänderungen müssen Sie den univention-directory-listener neu starten. Führen Sie den Befehl in Quellcode 3.2 aus.

Quellcode 3.2 Directory Listener neu starten#
$ systemctl restart univention-directory-listener

3.5.5.1. App-Settings#

Die Provisioning Service app bietet die folgenden App-Settings.

provisioning-service/udm-rest-api-host#

Vollqualifizierter Domänenname (FQDN) des UDM-REST-API-Hosts.

Notwendig

Voreinstellung

Gesetzt

Ja

Wert von ldap/master

Installation und App-Konfiguration

provisioning-service/primary#

Vollqualifizierter Domänenname (FQDN) des Primary Directory Node.

Notwendig

Voreinstellung

Gesetzt

Ja

Wert von ldap/master

Installation und App-Konfiguration

nats/max_retry_count#

Anzahl der Wiederholungen, die der Provisioning Listener versucht, jede Transaktion mit dem Provisionierungs-NATS-Dienst zu synchronisieren. Nachdem Sie diese Einstellung geändert haben, müssen Sie den univention-directory-listener neu starten, siehe Quellcode 3.2.

Notwendig

Voreinstellung

Gesetzt

Ja

3

Installation und App-Konfiguration

nats/retry_delay#

Die Anzahl der Sekunden, die zwischen jedem Versuch zur Synchronisierung einer Transaktion mit dem Provisionierungs-NATS-Dienst gewartet werden soll. Nachdem Sie diese Einstellung geändert haben, müssen Sie den univention-directory-listener neu starten, siehe Quellcode 3.2.

Notwendig

Voreinstellung

Gesetzt

Ja

1

Installation und App-Konfiguration

nats/max_reconnect_attempts#

Die maximale Anzahl von Versuchen, die Verbindung zum NATS-Dienst wiederherzustellen. Nachdem Sie diese Einstellung geändert haben, müssen Sie den univention-directory-listener neu starten, siehe Quellcode 3.2.

Notwendig

Voreinstellung

Gesetzt

Ja

3

Installation und App-Konfiguration

3.5.5.2. UCR-Variablen#

Zusätzlich berücksichtigt der Provisioning Service die folgenden UCR-Variablen, die nicht in den App-Einstellungen erscheinen. Univention empfiehlt, die Standardwerte beizubehalten.

nats/stunnel/accept/port#

Empfangs-Portnummer des stunnel, der die NATS-Verbindung zwischen Primary Directory Node und Backup Directory Node sichert.

Notwendig

Voreinstellung

Gesetzt

Ja

4230

Installation und App-Konfiguration.

nats/stunnel/connect/port#

Verbindungsport des stunnel, der die Verbindung sichert zwischen einem Provisioning Dispatcher auf Backup Directory Node und NATS auf Primary Directory Node. Muss mit dem nats/stunnel/accept/port des Primary Directory Node übereinstimmen.

Notwendig

Voreinstellung

Gesetzt

Ja

4230

Installation und App-Konfiguration.

nats/stunnel/cert#

Zertifikat für die stunnel NATS-Verbindung zwischen einem Provisioning Dispatcher auf einem Backup Directory Node und NATS auf Primary Directory Node.

Notwendig

Voreinstellung

Gesetzt

Ja

/etc/univention/ssl/@%@ldap/master@%@/cert.pem

Installation und App-Konfiguration.

nats/stunnel/key#

Zertifikatsschlüssel, der für die Verbindung zwischen Provisioning Dispatcher auf einem Backup Directory Node und NATS auf Primary Directory Node verwendet wird.

Notwendig

Voreinstellung

Gesetzt

Ja

/etc/univention/ssl/@%@ldap/master@%@/private.key

Installation und App-Konfiguration.

nats/stunnel/cacert#

Das CA-Zertifikat, das für die Verbindung zwischen Provisioning Dispatcher auf einem Backup Directory Node und NATS auf Primary Directory Node verwendet wird.

Notwendig

Voreinstellung

Gesetzt

Ja

/etc/univention/ssl/ucsCA/CAcert.pem

Installation und App-Konfiguration.