STS 3 - Beispielkonfiguration
In dieser Anleitung wird eine Beispiel Client-Konfiguration für den STS-3 beschrieben. Die CMI API selbst braucht den Client nur für das Config-UI.
Beispiel Client-Konfiguration
{
"ClientId": "<Client-ID (Bsp.: cmi-api-configui)>",
"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>:<Port>"
]
}
- GrantType "authorization_code" ist nötig
- Protokoll, Server und Port beziehen sich auf die CMI-API.
- Das ClientSecret muss als SHA-512-Encrypted Secret hinterlegt werden
Beispiel Token-Request
Um die CMI API verwenden zu können (API Requests) muss ein gültiges Token vorhanden sein. Hier ist ein STS-Client für den Grant-Type client_credentials
.
Der OpenID-Client wird nicht für die API selbst benötigt, sondern vom aufrufenden System, das die API verwenden möchte.
{
"ClientId": "<Client-ID (Bsp.: cmi-api-tokenrequest)>",
"AccessTokenLifetime": 3600,
"AllowedGrantTypes": [
"client_credentials"
],
"ClientSecrets": [
{
"value": "<Client-Secret SHA512 Encrypted>"
}
],
"AllowedScopes": [
"metatool",
"openid",
"profile"
],
"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>'