3.9. Provisioning Service#

Der Provisioning Service ist ein Ereignis- und Nachrichtendienst, der interessierte Dienste über Ereignisse im LDAP-Verzeichnisdienst informieren kann. Wenn sich Daten im LDAP-Verzeichnis auf dem Primary Directory Node ändern, erhält der Provisioning Service eine Benachrichtigung und informiert alle Dienste, die die Änderungen abonniert haben. Im Gegensatz zum Univention Directory Listener stellt er die Univention Directory Manager (UDM)-Repräsentation der geänderten Objekte statt der LDAP-Repräsentation bereit.

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

Bemerkung

Optionale Komponenten in Nubus verwenden den Provisioning Service in Nubus für UCS.

Informationen dazu, wie Sie den Provisioning Service in Ihren Diensten verwenden und die Ereignisse abonnieren, finden Sie unter Provisioning API in Nubus - Customization and Modification Manual 1.x [8].

3.9.1. Installation#

Das Univention App Center stellt den Provisioning Service als App bereit. Nubus für UCS installiert ihn nicht standardmäßig. Sie können ihn auf dem Primary Directory Node und auf jedem Backup Directory Node installieren. Auf Servern mit anderen Systemrollen lässt sich der Provisioning Service nicht installieren. Der Provisioning Service besteht aus den folgenden Apps:

Provisioning Service

Die Provisioning Service App ist eine Container App, die die Hauptfunktionen des Provisioning Service bereitstellt.

Provisioning Service Backend

Die Provisioning Service Backend App ist eine paketbasierte App, die Integrationspakete in Nubus für UCS installiert. Das App Center installiert sie automatisch als Abhängigkeit von Provisioning Service. Zu den Paketen gehören ein Listener-Modul und eine Rechnerkonfiguration 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 übernimmt mehrere Einstellungen für den Provisioning Service. Eine Referenz finden Sie unter Einstellungen des Provisioning Service.

Sie können die App Provisioning Service wie jede andere App über das Univention App Center installieren. Allgemeine Informationen zum Univention App Center und zur Softwareinstallation damit finden Sie unter Univention App Center.

Um die App über die Befehlszeile zu installieren, verwenden Sie den Befehl in Listing 3.16 mit root-Rechten.

Listing 3.16 Den Provisioning Service über die Befehlszeile installieren#
$ univention-app install provisioning-service

3.9.2. Provisioning Ablauf#

Der Provisioning Service liefert einen Strom von Events zu Datenänderungen im LDAP-Verzeichnisdienst. Er verwendet die folgenden Komponenten:

Provisioning Listener

Das Modul nubus-provisioning.py des Univention Directory Listener reagiert auf alle LDAP-Operationen und übermittelt diese Änderungen an den Provisioning Service. Es läuft nur auf dem Primary Directory Node.

Provisioning UDM Transformer

Der Provisioning UDM Transformer wandelt eingehende Änderungsereignisse auf LDAP-Ebene in Provisioning Events auf UDM Ebene um. Dazu ruft er die UDM HTTP REST API auf. Er läuft nur auf dem Primary Directory Node.

Provisioning Prefill Service

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

Provisioning Dispatcher

Der Provisioning Dispatcher leitet Events zu allen UDM Objekten an die Warteschlangen der abonnierten Apps weiter. Er läuft auf dem Primary Directory Node und auf Backup Directory Nodes.

Provisioning APIs

Die Provisioning APIs laufen auf dem Primary Directory Node und dem Backup Directory Node. Sie umfassen verschiedene APIs zur Registrierung von Diensten, um Events und Nachrichten zu abonnieren.

Ereignis-Streaming-Dienst

NATS übernimmt den eigentlichen Ereignis-Streaming-Dienst.

Der Provisioning Dispatcher auf dem Backup Directory Node verbindet sich mit dem Ereignis-Streaming-Dienst auf dem Primary Directory Node. Er überträgt Daten über eine TLS-verschlüsselte Verbindung.

Siehe auch

Provisioning Service

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

Provisioning API

in Nubus - Customization and Modification Manual 1.x [8] für Informationen zur Verwendung des Provisioning Service und zum Erstellen eines Abonnements für einen Provisioning Consumer.

3.9.3. Endpunkte und Ports#

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

Sie können lokal über http://localhost:7777 oder aus der Ferne über https://<Primary FQDN>/univention/provisioning/ auf die Provisioning API zugreifen. Ersetzen Sie <Primary FQDN> durch den vollständig qualifizierten Domänennamen des Primary Directory Node.

Der Provisioning Service verwendet stunnel, um die TLS-Verschlüsselung zwischen Primary Directory Node und Backup Directory Node sicherzustellen.

Tab. 3.1 Endpunkte und Ports#

Port

Zweck

4230

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

4222

NATS-Client-Verbindungen.

7777

Provisioning APIs.

8222

NATS-Monitoring-Endpunkt.

Wichtig

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

3.9.4. Logdateien des Provisioning Service#

Wenn Probleme mit dem Provisioning Service auftreten, können Sie die folgenden Logdateien zurate ziehen:

  • Die Container des Provisioning Service schreiben ihre Protokolle in /var/log/syslog.

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

  • Der Dienst stunnel schreibt Protokolle in /var/log/stunnel4/stunnel.log.

3.9.5. Einstellungen des Provisioning Service#

Die folgenden Abschnitte listen die Einstellungen der Provisioning Service App auf. Univention empfiehlt, die Standardwerte beizubehalten.

Um Einstellungen nach der Installation der App zu ändern, gehen Sie wie folgt vor:

  1. Melden Sie sich mit einem Benutzerkonto der Gruppe Domain Admins an der Management UI an und navigieren Sie zu App Center ‣ Provisioning Service ‣ Installationen verwalten.

  2. Aktivieren Sie das Kontrollkästchen für die Instanz und navigieren Sie zu ⋯ Mehr ‣ App-Einstellungen.

  3. Ändern Sie die Einstellungen auf der Seite Provisioning Service konfigurieren.

  4. Um die Einstellungen anzuwenden, klicken Sie Änderungen übernehmen.

Das App Center initialisiert anschließend die Container für die Provisioning Service App neu. Das bedeutet, dass das App Center die laufenden Container der App verwirft und neue Container mit den soeben geänderten Einstellungen startet.

Nach einigen Änderungen an den Einstellungen müssen Sie den univention-directory-listener neu starten. Führen Sie den Befehl in Listing 3.17 aus.

Listing 3.17 Den Directory Listener neu starten#
$ systemctl restart univention-directory-listener

3.9.5.1. App-Einstellungen#

Die Provisioning Service App verfügt über die folgenden App-Einstellungen.

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

Vollständig qualifizierter Domänenname (FQDN) des Rechners der UDM HTTP REST API.

Erforderlich

Standardwert

Angewendet während

Ja

Wert aus ldap/master

Installation und App-Konfiguration

provisioning-service/primary#

Vollständig qualifizierter Domänenname (FQDN) des Primary Directory Node.

Erforderlich

Standardwert

Angewendet während

Ja

Wert aus ldap/master

Installation und App-Konfiguration

nats/max_retry_count#

Anzahl der erneuten Versuche des Provisioning Listener, jede Transaktion mit dem Ereignis-Streaming-Dienst zu synchronisieren. Nach einer Änderung dieser Einstellung müssen Sie den univention-directory-listener neu starten, siehe Listing 3.17.

Erforderlich

Standardwert

Angewendet während

Ja

3

Installation und App-Konfiguration

nats/retry_delay#

Anzahl der Sekunden, die zwischen den Versuchen zur Synchronisierung einer Transaktion mit dem Ereignis-Streaming-Dienst gewartet wird. Nach einer Änderung dieser Einstellung müssen Sie den univention-directory-listener neu starten, siehe Listing 3.17.

Erforderlich

Standardwert

Angewendet während

Ja

1

Installation und App-Konfiguration

nats/max_reconnect_attempts#

Maximale Anzahl der Versuche, die Verbindung zum Ereignis-Streaming-Dienst wiederherzustellen. Nach einer Änderung dieser Einstellung müssen Sie den univention-directory-listener neu starten, siehe Listing 3.17.

Erforderlich

Standardwert

Angewendet während

Ja

3

Installation und App-Konfiguration

3.9.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. Informationen zur Konfiguration von UCR-Variablen finden Sie unter Das lokale System mit der Univention Configuration Registry konfigurieren.

nats/stunnel/accept/port#

Portnummer, auf der stunnel Verbindungen entgegennimmt. stunnel sichert die NATS-Verbindung zwischen Primary Directory Node und Backup Directory Node ab.

Erforderlich

Standardwert

Angewendet während

Ja

4230

Installation und App-Konfiguration.

nats/stunnel/connect/port#

Verbindungsport von stunnel, der die Verbindung zwischen dem Provisioning Dispatcher auf dem Backup Directory Node und NATS auf dem Primary Directory Node absichert. Der Port muss mit nats/stunnel/accept/port des Primary Directory Node übereinstimmen.

Erforderlich

Standardwert

Angewendet während

Ja

4230

Installation und App-Konfiguration.

nats/stunnel/cert#

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

Erforderlich

Standardwert

Angewendet während

Ja

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

Installation und App-Konfiguration.

nats/stunnel/key#

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

Erforderlich

Standardwert

Angewendet während

Ja

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

Installation und App-Konfiguration.

nats/stunnel/cacert#

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

Erforderlich

Standardwert

Angewendet während

Ja

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

Installation und App-Konfiguration.