Die Authentifizierung über OpenID Connect wird zentral über zwei Konfigurationsdateien gesteuert:
-
authentication_config.xml: Enthält die OIDC-spezifischen Einstellungen für die Kommunikation mit dem Identity Provider. -
tokenhandler_config.xml: Bestimmt, für welche Ressourcen (z. B. Pfade, Services, Web Apps) welche Authentifizierungskonfiguration gilt.
Diese Konfigurationsdateien müssen im Ordner configurations des X4 Servers abgelegt werden und müssen von Administratoren bei der Erstkonfiguration oder bei Änderungen am Authentifizierungssystem gepflegt werden.
Konfigurationsdateien
authentication_config.xml – Konfiguration des Identity Providers
In dieser Datei wird festgelegt, welche OIDC-Konfigurationen X4 BPMS zur Verfügung stehen und welche davon standardmäßig verwendet werden sollen.
Inhalt der Datei
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AuthenticationConfiguration>
<OIDCConfigs>
<X4OidcConfig>
<Name>X4Default</Name>
<UseAsDefaultConfig>true</UseAsDefaultConfig>
<ReturnChallengeOnFailedAuth>true</ReturnChallengeOnFailedAuth>
<OIDCProviderConfig>
<EnableBasicAuth>true</EnableBasicAuth>
<Credentials>
<entry>
<key>secret</key>
<value xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">60304a13-8fa6-4899-94a2-0c10562768ec</value>
</entry>
</Credentials>
<Realm>X4Realm</Realm>
<AuthServerUrl>http://localhost:8085/auth</AuthServerUrl>
<ClientId>X4</ClientId>
</OIDCProviderConfig>
</X4OidcConfig>
</OIDCConfigs>
</AuthenticationConfiguration>
|
Element |
Mögliche Werte |
Beschreibung |
|---|---|---|
|
|
Liste mit |
Enthält eine Liste verschiedener X4-OIDC-Konfigurationen. Jede Konfiguration wird über den Namen im Element |
|
|
String |
Eindeutiger Name der Konfiguration, z. B. |
|
|
true/false |
Gibt an, ob dies die Standardkonfiguration für Authentifizierungsanfragen ist. |
|
|
true/false |
Gibt an, ob bei fehlgeschlagener Authentifizierung eine Aufforderung zum Login durch den Benutzer zurückgegeben werden soll. |
|
|
|
Enthält den IdP-spezifischen Teil. |
|
|
true/false |
Aktiviert Basic Auth (nur sinnvoll bei Keycloak und entsprechendem Setup). |
|
|
|
Enthält die Secrets für den Identity Provider. |
|
|
String |
Gibt an, welcher Realm für den Identity Provider verwendet werden soll. |
|
|
URL |
Basis-URL des Identity Providers. Dies funktioniert in der Regel nur mit Keycloak. Wenn ein anderer IdP verwendet wird, muss stattdessen |
|
|
String |
ID des Clients, der zum Abrufen eines Tokens verwendet werden soll. |
|
|
true/false |
Muss auf |
Erweiterte Optionen für das Element <X4OidcConfig>:
Zur feineren Steuerung der Zugriffskontrolle kann X4 BPMS Rollen und Gruppen direkt aus dem Access Token des Identity Providers auslesen. Dies erfolgt über das optionale XML-Element <TokenContent> innerhalb eines <X4OidcConfig>-Blocks in der Datei authentication_config.xml.
Beispielkonfiguration:
<TokenContent>
<RolesClaim>roles</RolesClaim>
<GroupsClaim>groups</GroupsClaim>
</TokenContent>
Mit dieser Konfiguration sucht X4 in allen Claims des Access Tokens, die dem Namen roles entsprechen, nach den Benutzerrollen. Wenn mehrere Claims mit dem gleichen Namen vorhanden sind, werden alle Claims ausgelesen und deren Inhalte in die Gruppen des Nutzers eingetragen.
Beispiel-Token mit eingebetteten Rollen:
{
"exp": 1747664459,
"iat": 1747664159,
"iss": "http://localhost:8085/auth/realms/X4Realm",
"aud": ["X4Bearer", "account"],
"sub": "1b367493-2a5a-4edc-b858-f2ce71e1b625",
"realm_access": {
"roles": [
"x4_dev_access",
"x4_admin_access",
"default-roles-x4realm"
]
}
}
In diesem Beispiel befinden sich die Rollen unter dem Pfad realm_access.roles. Entsprechend muss der Wert im <RolesClaim> auf roles gesetzt werden, damit X4 diese Rollen extrahieren und für Autorisierungsprüfungen verwenden kann.
tokenhandler_config.xml – Steuerung der Authentifizierungsfilter
Diese Datei verknüpft OIDC-Konfigurationen mit bestimmten Pfaden innerhalb von X4, z. B. für Web Apps oder REST-Services.
Inhalt der Datei
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TokenHandlerConfiguration>
<TokenHandlerConfigs>
<oidcTokenHandlerConfigList>
<ConfigName>oidc-token-handler</ConfigName>
<OidcBaseConfigName>X4Default</OidcBaseConfigName>
</oidcTokenHandlerConfigList>
</TokenHandlerConfigs>
<TokenHandlerFilters>
<Filter>
<Claims/>
<RequestPaths>
<requestPath>/X4/WebApp/*</requestPath>
<requestPath>/X4/rest/webapp/*</requestPath>
<requestPath>/X4/services/rest/openapi.json</requestPath>
<requestPath>/X4/X4Api/*</requestPath>
</RequestPaths>
<ConfigName>oidc-token-handler</ConfigName>
</Filter>
</TokenHandlerFilters>
</TokenHandlerConfiguration>
|
Element |
Mögliche Werte |
Beschreibung |
|---|---|---|
|
|
Liste mit |
Enthält eine Liste verschiedener Token-Handler-Konfigurationen. |
|
|
String |
Eindeutiger Name des Token-Handlers. Wird im Element |
|
|
String |
Referenz auf einen |
|
|
Liste mit Filtern |
Wrapper für verschiedene Arten von Filtern, um zu bestimmen, für welche Anfragen eine bestimmte Token-Handler-Konfiguration aktiv sein soll. |
|
|
Filterstruktur |
Ein Filter ist eine Sammlung von verschiedenen |
|
|
Liste mit |
Enthält spezifische Anfragepfade. Am Ende und am Anfang des Pfades können Platzhalter verwendet werden. Wenn kein Platzhalter verwendet wird, muss der Pfad vollständig übereinstimmen. |
|
|
String |
Referenziert eine bestimmte Token-Handler-Configuration nach Namen. Wenn einer der Anfragepfadfilter übereinstimmt, wird die spezifische Token-Handler-Konfiguration verwendet. |
Nutzung in Web Apps und .wsinc
In .wac-Dateien (für Web Apps) und .wsinc-Dateien (HTTP-Starter) kann jetzt ein Auth Config Name angegeben werden, um gezielt eine der definierten OIDC-Konfigurationen zu verwenden. So lassen sich Web Apps oder Endpunkte gezielt mit verschiedenen Identity Providern sichern, ohne die globale Konfiguration zu beeinflussen.
Hinweis:
Die Felder Realm, Client ID und Client Secret sind veraltet und sollten nicht mehr verwendet werden.