Skip to Content
DocsAuthorityIdentity ProvidersAzure Active Directory

Azure Active Directory

Azure Active Directory heißt seit September 2023 “Entra ID”.

Die ProcessCube Authority unterstützt Azure Active Directory als Identitätsprovider, um dort verwaltete Benutzer verwenden zu können.

Erstellen einer App Registration

Zuerst muss ein Client auf Azure definiert und konfiguriert werden.

Erstelle eine Datei appRoles.json in deinem Arbeitsverzeichnis mit folgendem Inhalt:

[ { "displayName": "Administrator", "description": "Admins can do anything.", "allowedMemberTypes": ["User", "Application"], "isEnabled": true, "value": "ProcessCubeAdmin" }, { "displayName": "Operator", "description": "Operators can manage processes and their instances.", "allowedMemberTypes": ["User", "Application"], "isEnabled": true, "value": "ProcessCubeOperator" }, { "displayName": "Operator", "description": "Same as 'Operator', but with full read access only.", "allowedMemberTypes": ["User", "Application"], "isEnabled": true, "value": "ProcessCubeOperatorReadonly" }, { "displayName": "Operator (No Deploy)", "description": "Same as 'Operator' without deployment permissions.", "allowedMemberTypes": ["User", "Application"], "isEnabled": true, "value": "ProcessCubeOperatorNoDeploy" }, { "displayName": "User", "description": "Users can manage process instances.", "allowedMemberTypes": ["User", "Application"], "isEnabled": true, "value": "ProcessCubeUser" }, { "displayName": "ExternalTaskWorker", "description": "External Task Workers can handle external tasks.", "allowedMemberTypes": ["User", "Application"], "isEnabled": true, "value": "ExternalTaskWorker" } ]

Über diese Datei werden die erforderlichen Rollen in der App Registration definiert. Du kannst später Benutzern im Azure AD diese Rollen zuweisen. Die Authority wird anhand des value eine konventionsbasierte Zuweisung von Rechten durchführen.

Erstelle eine Datei prepare-azure-ad.sh mit folgendem Inhalt:

prepare-azure-ad.sh
#!/bin/bash az login az ad app create \ --display-name "ProcessCube Authority Lokal" \ --app-role @appRoles.json \ --enable-access-token-issuance true \ --enable-id-token-issuance true \ --sign-in-audience AzureADMyOrg \ --web-redirect-uris http://localhost:11560/acr/azure_ad_main_azuread/callback

Die angegebene Redirect URI gilt als schwer fälschbares Merkmal, auf das sich Identitätsprovider und Authority einigen. Wähle hier das Schema https://[Authority-Adresse]/acr/azure_ad_[Provider ID]/callback.

Azure AD erlaubt außer http://localhost keine lokalen Redirect URIs. Damit die Authority bei Anfragen automatisch wieder auf die ursprüngliche Adresse http://authority weiterleitet, muss das Entwicklungsfeature fixWrongHostnames in der Konfiguration aktiviert sein.

Entnimm der zurückgelieferten JSON die Property appId, die auch als Client ID bezeichnet wird.

Konfiguration der Authority

Es ist erforderlich, innerhalb der Authority-Konfiguration eine Sektion für die Azure AD Extension hinzuzufügen:

// [...] "extensions": { "path": "../extensions", "configs": { "provider_chooser": {}, "azure_ad": { "providers": [ { "id": "main_azuread", "client_id": "[redacted]", "tennant_id": "[redacted]", "redirect_uris_origins": [ "http://localhost:11560/acr/azure_ad_main_azuread/callback" ] } ] } } }

Zuweisen von Rollen

Einer spezifischen Rolle für die Verwendung des ProcessCube kannst du Benutzer und Anwendungen hinzufügen.

  • Navigiere zu den Enterprise Applications in Microsot Entra ID
  • Wähle die soeben erstellte Anwendung aus
  • Navigiere zum Bereich Users and groups
  • Füge die Benutzer und Anwendungen einer Rolle hinzu
Ob du auch Gruppen einer Rolle zuweisen kannst, hängt vom gebuchten Entra ID Plan ab.