Seit vCloud Director 9.1 steht die Service Library zur Verfügung, mit deren Hilfe vRealize Orchestrator Workflows an Tenants und/oder Service Providers veröffentlicht werden können.
Es gibt wohl tausende Anwendungsfälle, die sich hieraus ergeben können und viele davon benötigen eine Limitierung des erlaubten Aktionsradius (scope). Als einfaches Beispiel, gehen wir davon aus, wir möchten einen Workflow zur Verfügung stellen, welcher VM-Informationen sammelt, einen schicken Bericht erstellt und diesen dann per Email an den Anforderer sendet. Der Anforderer sollte dabei auswählen können, für welche vApp der Bericht erstellt wird.
Diese beiden Sätze liefern bereits einige interessante Anforderungen:
Punkt 3 ist interessant, denn er erfordert den Zugriff auf den Request Context noch bevor der Workflow selbst startet.
Startet man über die Service Library einen Workflow, welcher alle in ihm enthaltenen Parameter ausgibt, sieht man Folgendes:
_vdc_isAdmin: true
_vdc_userName: administrator
_vcd_orgId: d5ad40bd-1a94-4a7c-8732-85f4cb4058a7
_vcd_sessionToken: ein langer langweiliger String
_vcd_apiEndpoint: https://vcd-01a.corp.local/api
_vcd_isAdmin: true
_vcd_orgName: tsiegl
_vcd_userName: administrator
Nicht schlecht, doch diese Informationen werden noch vor der Workflow-Ausführung benötigt.
Was passiert nun, wenn man dem Workflow Inputs hinzufügt, deren Namen mit den eben aufgelisteten übereinstimmen?
Das hier:
Wie man sieht, ist diese Information nun im Workflow verfügbar.
Um nun den Workflow aus meinem Beispiel zu erstellen, würde man wie folgt fortfahren:
Und das war es auch schon. Nun kann der Aktionsradius eines Benutzers eingeschränkt werden indem ihm nur Objekte präsentiert werden, welche sich in seiner jeweiligen Organization befinden.