Azure Active Directory
Die 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.
Azure CLI
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:
#!/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/callbackDie 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 kannst du Benutzer und Anwendungen hinzufügen.
Troubleshooting: Weißer Bildschirm beim Login
Schlägt die Anmeldung über Azure AD mit einem weißen Bildschirm fehl und meldet die Browser-Konsole eine Verletzung der form-action-Content-Security-Policy (der Form-Submit wird zu https://login.microsoftonline.com blockiert), fehlt die Microsoft-Domain in der CSP-Whitelist der Authority.
Für Standard-Umgebungen ergänzt die azure_ad-Extension https://login.microsoftonline.com automatisch. Bei abweichenden Umgebungen (z. B. login.microsoftonline.us, Azure-AD-B2C-Domains) oder Deployments hinter einem Reverse-Proxy muss die Domain über die produktionssichere Konfigurationsoption additionalCspDirectives freigegeben werden:
{
"additionalCspDirectives": {
"formAction": ["https://login.microsoftonline.com"]
}
}Azure Portal
- 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