Skip to content

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 und client_credentials sind notwendig
  • Das ClientSecret muss als SHA512-Hash hinterlegt werden
  • Die Anmeldedaten vom technischen Benutzer sind unter ClientCredentialsBackendUser zu hinterlegen
  • RedirectUris, PostLogoutRedirectUris und AllowAccessTokensViaBrowser 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>'