STS 3 - Beispielkonfiguration und Token-Request
In dieser Anleitung wird eine Beispiel Client-Konfiguration für den STS-3 sowie ein Token-Request beschrieben. Mit diesem Client lässt sich die API sowie die Config-UI verwenden. Damit alle Funktionen vom ContactSync Service verwendet werden können, braucht der Client die folgenden GrantTypes:
- delegation (Wird vom CMI Server verwendet, um im Namen von angemeldeten Benutzer am Desktop Client mit dem ContactSync-Service zu kommunizieren)
- client_credentials (Wird vom ContactSync-Service für Hintergrundaufgaben verwendet, z.B. um Stammdaten zu holen und zu speichern sowie für den geplanten Task)
- authorization_code (Wird vom Config-UI verwendet)
Beispiel Client-Konfiguration
{
"ClientId": "<Client-ID (Bsp.: cmi-contactsync)>",
"AllowedGrantTypes": [
"authorization_code",
"client_credentials",
"delegation"
],
"ClientSecrets": [
{
"value": "<Client-Secret als SHA512-Hash>"
}
],
"RequireClientSecret": false,
"AllowAccessTokensViaBrowser": true,
"RedirectUris": [
"regex:^(<Protokoll>:\/\/<Server>:<Port>).*"
],
"PostLogoutRedirectUris": [
"regex:^(<Protokoll>:\/\/<Server>:<Port>).*"
],
"AllowedScopes": [
"metatool",
"openid",
"profile"
],
"ClientCredentialsBackendUser": {
"username": "<CMI-User>",
"password": "<CMI-User Passwort>"
},
"AllowedCorsOrigins": [
"<Protokoll>://<Cmi-Api-Server>:<Port>"
]
}
- GrantTypes
authorization_code
,delegation
undclient_credentials
sind notwendig - Das ClientSecret muss als SHA512-Hash hinterlegt werden
- Die Anmeldedaten vom technischen Benutzer sind unter
ClientCredentialsBackendUser
zu hinterlegen RedirectUris
,PostLogoutRedirectUris
undAllowAccessTokensViaBrowser
werden für die Config-UI verwendet
Beispiel Token-Request
Wenn der Client im STS konfiguriert ist, so kann mit dem folgenden Curl-Request ein Token bezogen werden:
curl --location --request POST '<Protokoll>://<Sts-Server>/<Mandant>/identity/connect/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'scope=metatool' \
--data-urlencode 'client_secret=<Client-Secret als Plain-Text>' \
--data-urlencode 'client_id=<Client-ID>'