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.
$ 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.pybenachrichtigt 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.
Port |
Zweck |
|---|---|
4230 |
Der stunnel-Port. Sie können ihn über die UCR-Variable |
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: . 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.
$ 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/masterInstallation und App-Konfiguration
- provisioning-service/primary#
Vollqualifizierter Domänenname (FQDN) des Primary Directory Node.
Notwendig
Voreinstellung
Gesetzt
Ja
Wert von
ldap/masterInstallation 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
3Installation 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
1Installation 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
4230Installation 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/portdes Primary Directory Node übereinstimmen.Notwendig
Voreinstellung
Gesetzt
Ja
4230Installation 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.pemInstallation 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.keyInstallation 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.pemInstallation und App-Konfiguration.