Damit dieser Kreislauf funktioniert, müssen mehrere Komponenten zusammenspielen.
Die Lifecycle Extension erkennt Ereignisse aus drei verschiedenen Quellen und startet für jedes automatisch den passenden Workflow. Erstens aus HR-Systemen: klassische Lebensereignisse wie Eintritt, Austritt oder Organisationswechsel. Zweitens aus direkten Aktionen: etwa wenn ein Austrittsdatum nachträglich geändert wird und sofort eine neue Prozesskette ausgelöst werden muss. Drittens aus der Policy Engine: Meldet eine Richtlinie einen Missstand – etwa eine Abweichung vom Soll-Zustand – kann auch das eine Lifecycle-Aktion anstoßen. Das Bindeglied über alle drei Wege ist ein Event-Stream über Kafka: Jede relevante Änderung löst unmittelbar die nächste Stufe aus.
Damit keine Änderung unbemerkt bleibt, ist eine Neo4j Extension als TransactionEventListener direkt in der Datenbank registriert. Sie triggert bei jeder Transaktion – unabhängig davon, ob die Änderung über die Benutzeroberfläche, eine Schnittstelle oder direkt in der Datenbank stattfindet.
Die Policy Engine schließt den Kreislauf auf der Kontrollseite. Policies sind konfigurierbare Abfragen gegen die Graph-Datenbank und können sowohl zeitgesteuert als auch event-getriggert ausgeführt werden. Sie sind der Catch-All-Mechanismus: Sie finden auch Probleme, die durch Events nicht erkannt wurden.
Der Provisioning Type bestimmt, wie eine Provisionierungsaufgabe für ein bestimmtes System behandelt wird: vollautomatisch direkt ins Zielsystem (via LDAP, JDBC oder API), als sofortige Benachrichtigung für eine manuelle Bearbeitung, oder als gebündelte Sammelaufgabe nach einer konfigurierbaren Verzögerung. Provisionierungsanfragen können dabei nicht nur durch Lifecycle-Ereignisse oder Richtlinien ausgelöst werden, sondern auch manuell über das Portal – etwa wenn ein Benutzer die Deaktivierung eines bestimmten Kontos beantragt (Provisioning Request). Das ermöglicht flexible Prozesse – von der vollautomatischen Provisionierung bis hin zu genehmigungspflichtigen Workflows, je nach Sicherheitsanforderung des Unternehmens.
Die Confirmation Strategy schließt den Kreis auf einer weiteren Ebene – und ist einer der zentralen Unterschiede von daccord. Nach jeder Provisionierungsaktion importiert daccord die Daten direkt aus dem Zielsystem zurück. Dieser Import spiegelt die tatsächliche Situation im Zielsystem wider – nicht den angenommenen Soll-Zustand, sondern den realen Ist-Zustand. Erst durch den Abgleich zwischen ausgelöster Aktion und zurückgemeldetem Ergebnis gilt ein Task als wirklich erledigt. Was viele IAM-Systeme als „done" markieren, ohne je nachzusehen ob die Aktion angekommen ist, prüft daccord aktiv nach. Das bedeutet: Abweichungen, manuelle Eingriffe im Zielsystem oder fehlgeschlagene Aktionen werden nicht einfach übersehen – sie werden sichtbar. Operationen, die sich nicht über einen Import verifizieren lassen – etwa Passwortänderungen – können alternativ mit der Strategie "none" konfiguriert werden: Der Task wird dann unmittelbar nach erfolgreichem Handler-Aufruf abgeschlossen.