Berechtigungskonzept
Um die Engine verwenden zu können, benötigt der Benutzer ein bestimmtes Set an Berechtigungen - auch "Claims" genannt - die in seinem Auth Token vorhanden sein müssen.
Die Engine unterscheidet zwei Arten von Claims:
- Technische Claims
- Fachliche Claims
Root Access Tokens besitzen grundsätzlich uneingeschränktes Zugriffsrecht und sind daher von dem hier erläuterten Konzept ausgenommen.
Technische Claims
Technische Claims werden genutzt um die Verfügbarkeit bestimmter Engine-Features zu steuern.
Die folgenden technischen Claims werden derzeit verwendet:
Claim-Name | Beschreibung |
---|---|
can_read_process_model | Erlaubt es Prozessmodelle zu lesen - ⚠️ Wird seit v15.0.0 nicht mehr benötigt |
can_write_process_model | Erlaubt es Prozessmodelle zu deployen |
can_delete_process_model | Erlaubt es Prozessmodelle zu löschen |
can_access_external_tasks | Zugriff auf ExternalTasks - Wird i.d.R. nur von External Task Workern benötigt |
can_create_anonymous_session | Erlaubt es Anonyme Sessions zu erstellen |
can_terminate_process | Erlaubt das manuelle Abbrechen von eigenen Prozessinstanzen |
can_retry_process_instance | Erlaubt das manuelle Neustarten von eigenen Prozessinstanzen in einem error oder terminated state |
can_subscribe_to_events | Erlaubt es Notifications zu prozess-spezifischen Events zu erhalten (z.B. "UserTask finished") |
can_trigger_messages | Erlaubt es MessageEvents über die API auszulösen |
can_trigger_signals | Erlaubt es SignalEvents über die API auszulösen |
can_read_cronjob_history | Erlaubt es die Ausführungshistorie der deployten Cronjobs zu lesen - ⚠️ Wird seit v15.0.0 nicht mehr benötigt |
can_manage_process_instances | Erlaubt die uneingeschränkte Nutzung aller Engine Funktionen und aller Prozesse, ungeachtet der Claims die der Nutzer sonst hat |
Benutzer mit dem can_manage_process_instances
Claim können auch die Prozessmodelle, Prozessinstanzen und Flow Node Instanzen anderer Benutzer sehen und verwalten.
Das schließt auch destruktive Operationen mit ein, wie z.B. das Terminieren von Prozessinstanzen.
Daher sollte dieser Claim nur Administratoren vorbehalten sein.
Fachliche Claims
Fachliche Claims werden über die Lanes von Prozessmodellen definiert und steuern, welche Benutzer welche Teile des Prozesses ansteuern können. Der Name der Lane entspricht dabei dem Claim, den der Benutzer besitzen muss, um den entsprechenden Prozessabschnitt sehen zu können
Benutzer müssen Zugriff auf mindestens eine Lane mit einem Start Event haben, um einen Prozess deployen, ansehen und starten zu können.
Beispiel:
Hier startet ein Mitarbeiter
einen Bestellvorgang für Büro-Material. Anschließend muss jemand aus der Abteilungsleitung
die Bestellung bewilligen.
Zuletzt wird die bewilligte Bestellung an einen externen Service übertragen.
Die Lanes Mitarbeiter
und Abteilungsleitung
bilden dabei die fachlichen Claims, die während der Ausführung des Prozesses zur Anwendung kommen.
Das Start Event dieses Prozesses befindet sich in der Mitarbeiter
Lane.
Entsprechend wird der Mitarbeiter
Claim benötigt, um den Prozess starten und den ersten User Task ansteuern zu können.
Der zweite Part des Prozesses befindet sich in der Lane Abteilungsleitung
. Entsprechend können nur Benutzer mit dem Claim Abteilungsleitung
den hier befindlichen User Task ansteuern.
External Task Worker, die den im Prozess befindlichen Service Task verarbeiten sollen, benötigen aktuell nur den Claim can_access_external_tasks
.