Skip to content

STS3 Beispielkonfiguration

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.

Beispiel Client-Konfiguration

{
    "ClientId": "<Client-ID (Bsp.: cmiApi)>",
    "RequireClientSecret": false,
    "AccessTokenLifetime": 3600,
    "AllowedGrantTypes": [
        "authorization_code"
    ],
    "ClientSecrets": [
        {
            "value": "<Client-Secret SHA512 Encrypted>",
        }
    ],
    "AllowAccessTokensViaBrowser": true,
    "RedirectUris": [
        "regex:^(<Protokoll>:\/\/<Server>:<Port>).*"
    ],
    "PostLogoutRedirectUris": [
        "regex:^(<Protokoll>:\/\/<Server>:<Port>).*"
    ],
    "AllowedScopes": [
        "metatool",
        "openid",
        "profile"
    ],
    "AllowedCorsOrigins": [
        "<Protokoll>://<Cmi-Api-Server>:<Port>"
    ]
}
  • GrantType "client_credentials" und "authorization_code" sind nötig
  • Protokoll, Server und Port beziehen sich auf die CMI-API.
  • Das ClientSecret muss als SHA-512-Encrypted Secret hinterlegt werden
  • Grant-Type, RedirectUris, PostLogoutRedirectUris und AllowAccessTokensViaBrowser werden für die Config-UI gebraucht

Beispiel Token-Request

Um ein Token beim STS zu beziehen, muss der obige Client erweitert werden oder ein neuer erstellt werden. Folgendes gilt es noch zu erweitern:

{
    "AllowedGrantTypes": [
        "authorization_code",
        "client_credentials" //client_credentials ist neu dazugekommen
    ],
    "ClientCredentialsBackendUser": {
        "username": "<CMI-User>",
        "password": "<CMI-User Passwort>"
    }
}

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>'