Inhaltsverzeichnis

Admidio Provisioning-Plugin — Konten und Gruppen anderer Systeme mit Admidio abgleichen

Provisioning

Legt Konten und Gruppen auf externen Systemen (SCIM 2.0, Nextcloud, Mailman 3) entsprechend den Mitgliedern und Rollen von Admidio an, aktualisiert und deaktiviert sie.

Plugin-ID
provisioning
Autor
Reinhold Kainhofer
Lizenz
GPL 2
Kategorie
Integrations
Unterstützte Datenbanken
MySQL, MariaDB, PostgreSQL
Unterstützte Sprachen
English, Deutsch (du), Deutsch (Sie)
Schlagwörter
SCIM Nextcloud Mailman SSO provisioning

Beschreibung

Dieses Plugin legt Benutzerkonten und Gruppen auf externen Systemen an, aktualisiert, deaktiviert und löscht sie entsprechend den Mitgliedern und Rollen von Admidio. Änderungen in Admidio erreichen die angebundenen Systeme innerhalb von Sekunden. Das Plugin bringt drei Konnektoren mit:

Weitere Konnektoren können von anderen Plugins ergänzt werden.

Downloads

Es wurden noch keine Versionen veröffentlicht.

Installation

Gehe als Administrator zum Plugin-Manager von Admidio (Admidio 6.0 oder neuer und PHP 8.2 oder neuer erforderlich, PHP-Erweiterung curl nötig), wähle „Plugin hinzufügen“, lade die Plugin-ZIP-Datei hoch und aktiviere das Plugin. Die Datenbanktabellen des Plugins werden bei der Installation angelegt. Beim Entfernen des Plugins werden sie gelöscht, einschließlich der Zuordnung, welches Konto auf dem Zielsystem zu welchem Admidio-Benutzer gehört – trenne daher vorher die Ziele oder räume sie auf.

Cron

Änderungen in Admidio erreichen die Ziele am Ende der Anfrage, die sie ausgelöst hat. Beginn und Ende von Mitgliedschaften, die Admidio nur als ganze Tage kennt, werden mit dem täglichen Abgleich kurz nach Mitternacht wirksam. Lasse die Wartungsaufträge von Admidio stündlich laufen, eine Zeile je Organisation; das Plugin registriert dort seinen Auftrag provisioning:sync:

15 * * * *  php /pfad/zu/admidio/admidio maintenance:run --organization=KURZNAME --no-interaction --quiet

Der Befehl benötigt einen ausführenden Administrator der Organisation, zum Beispiel über $gCliDefaults in adm_my_files/cli-config.php. Ohne Cron startet der erste Seitenaufruf nach Mitternacht den Abgleich; beendete Mitgliedschaften bleiben dann auf dem Ziel aktiv, bis jemand Admidio öffnet.

Konfiguration

Der Menüpunkt Provisionierung (unter Erweiterungen, für Administratoren sichtbar) listet die Ziele auf. Ein Ziel besteht aus

Die Statusseite eines Ziels zeigt die Warteschlange, die letzten Läufe sowie jedes Konto und jede Gruppe, die Aufmerksamkeit braucht, und bietet Jetzt synchronisieren, Jetzt prüfen, Verbindung testen und Wiederholen.

Hinweise zu den Konnektoren

'allowed_no_password_confirmation_ranges' => ['192.0.2.10/32'],

Was angefasst wird und was nicht

Ein Ziel entfernen

Einstellungen

Administration → Einstellungen → Anmeldung & Sicherheit → Provisionierung

Einstellung Standard Bedeutung
Sekunden pro Seitenaufruf für die Synchronisierung 5 Nach einer Änderung werden die Ziele nach dem Ausliefern der Seite höchstens so viele Sekunden lang aktualisiert. 0 überlässt die Synchronisierung Cron.
Ziele in privaten Netzwerken erlauben aus Erlaubt Zielsysteme mit privaten oder reservierten IP-Adressen und unverschlüsseltes HTTP. Nur einschalten, wenn das Zielsystem im eigenen Netzwerk liegt.
Administratoren über Probleme benachrichtigen an Sendet den Administratoren der Organisation höchstens eine E-Mail je Ziel und Tag, wenn Konten oder Gruppen Aufmerksamkeit brauchen.

Kommandozeile

Befehl Zweck
provisioning:sync [–target=UUID] [–full] [–verify] [–budget=S] [–dry-run] Fälliges ausführen (für Cron)
provisioning:status Ziele, Warteschlangen und letzte Läufe; Exit-Code 3, wenn ein Ziel pausiert ist oder Einträge Aufmerksamkeit brauchen
provisioning:test –target=UUID Verbindung testen
provisioning:queue –target=UUID [–retry] [–clear –yes] Einträge, die Aufmerksamkeit brauchen; wiederholen oder löschen
provisioning:deprovision –target=UUID –yes Löscht, was Admidio auf dem Zielsystem angelegt hat, und danach das Ziel

Für Entwickler

Ein Konnektor erweitert AdmidioPlugin\Provisioning\Connector\Connector und wird über den Filter provisioning_connectors registriert. Ein vollständiges Beispiel und einen kleinen SCIM-Mock-Server zum Ausprobieren findest du im Quellcode.