Bevor Sie einen Client erstellen, müssen Sie sich bei der Vantage-API authentifizieren. Weitere Details finden Sie unter „Authentication“.
Um einen Client zu erstellen, senden Sie eine POST-Anfrage mit dem Header Authorization: Bearer <access token> an {baseUrl}/api/adminapi2/v1/tenants/{tenantId}/clients/ mit folgenden Parametern im Request-Body:
| Parameter | Beschreibung |
|---|
clientId | Die Kennung des Clients. |
clientName | Der Name des Clients (z. B. der Name Ihrer App). |
allowOfflineAccess | Gibt an, ob zusammen mit dem Access Token ein Refresh Token generiert wird, das die Anwendung verwenden kann, um das Access Token ohne Benutzereingriff automatisch zu aktualisieren. Standardmäßig auf False gesetzt. |
allowRememberConsent | Gibt an, ob der Benutzer Zustimmungsentscheidungen speichern kann. Standardmäßig auf True gesetzt. |
backChannelLogoutSessionRequired | Gibt an, ob der Backchannel-Logout-Mechanismus erforderlich ist. Standardmäßig auf True gesetzt. |
requireClientSecret | Gibt an, ob ein Client-Secret erforderlich ist. Standardmäßig auf True gesetzt. |
requireConsent | Gibt an, ob ein Zustimmungsbildschirm erforderlich ist. Standardmäßig auf False gesetzt. |
allowNoPkce | Gibt an, ob das Authentifizierungsschema Authorization Code Flow with Proof Key for Code Exchange (PKCE) zulässig ist. Standardmäßig auf False gesetzt, sodass ausschließlich das Authentifizierungsschema Authorization Code Flow with Proof Key for Code Exchange (PKCE) erlaubt ist. |
allowedGrantTypes | Gibt die zulässigen Grant-Typen an. |
allowedCorsOrigins | Gibt an, ob der standardmäßige Mechanismus für Cross-Origin Resource Sharing (CORS) verwendet wird. |
allowedScopes | Definiert die Ressourcen und Benutzerdaten, die im Token übertragen werden sollen. Der Scope-Wert muss exakt “openid permissions publicapi.all” sein. |
postLogoutRedirectUris | Eine Liste zulässiger URIs, zu denen nach dem Logout umgeleitet wird. |
redirectUris | Eine Liste von Websites oder App-URLs, die für Weiterleitungen von Autorisierungstokens erlaubt sind. Präfixe sind für die URL zulässig. Wenn das Präfix übereinstimmt, ist jede URL erlaubt, z. B.: [ “https://myDomain.”, “https://myApp.myDomain.com/oauth-signin.html” ]. |
accessTokenLifetime | Definiert den Zeitraum, in dem das ausgestellte Access Token den Benutzerzugriff auf Vantage ermöglicht. Die Standardlebensdauer eines Access Tokens beträgt 24 Stunden. |
refreshTokenLifetime | Definiert den absoluten Zeitraum ab Ausstellung des ersten Access Tokens, in dem das ausgestellte Refresh Token zur Erneuerung des Access Tokens verwendet werden kann. Die Standardlebensdauer eines Refresh Tokens beträgt 30 Tage. |
Wichtig! Bei der Authentifizierung mit Resource Owner Password Credentials müssen Sie den Parameter allowRopc auf TRUE setzen. Beachten Sie, dass dieses Authentifizierungsschema davon ausgeht, dass der Benutzer seine Zugangsdaten an die Anwendung übermittelt. Daher wird empfohlen, ROPC nur zu verwenden, wenn ein vertrauenswürdiger, vertraulicher Client authentifiziert wird.
Beispielanfrage:
curl --location --request POST "{baseUrl}/api/adminapi2/v1/tenants/{tenantId}/clients/"
-H "accept: application/json" \
-H "Authorization: Bearer {token}"
{
"clientId": "{clientId}",
"clientName": "{clientName}",
"allowOfflineAccess": true,
"allowRememberConsent": true,
"backChannelLogoutSessionRequired": true,
"requireClientSecret": true,
"requireConsent": false,
"allowNoPkce": true,
"allowedGrantTypes": [
"{allowedGrantTypes}"
],
"allowedCorsOrigins": [
"{allowedCorsOrigins}"
],
"allowedScopes": [
"openid",
"permissions",
"publicapi.all"
]
"postLogoutRedirectUris": [
"{postLogoutRedirectUris}"
],
"redirectUris": [
"{redirectUris}"
]
}
curl --location --request POST '{baseUrl}/api/adminapi2/v1/tenants/{tenantId}/clients/'
-H 'accept: application/json' \
-H 'Authorization: Bearer {token}'
{
'clientId': '{clientId}',
'clientName': '{clientName}',
'allowOfflineAccess': true,
'allowRememberConsent': true,
'backChannelLogoutSessionRequired': true,
'requireClientSecret': true,
'requireConsent': false,
'allowNoPkce': true,
'allowedGrantTypes': [
'{allowedGrantTypes}'
],
'allowedCorsOrigins': [
'{allowedCorsOrigins}'
],
'allowedScopes': [
'openid',
'permissions',
'publicapi.all'
]
'postLogoutRedirectUris': [
'{postLogoutRedirectUris}'
],
'redirectUris': [
'{redirectUris}'
]
}
Die Antwort des Servers wird eine Beschreibung des erstellten Clients enthalten.
Jeder Client kann mehrere Secrets haben. Dadurch kann der Client ein neues Secret verwenden, sobald das aktuelle abläuft, ohne es zu löschen. Standardmäßig läuft ein Client-Secret nach sechs Monaten ab.
Um ein Secret zu erstellen, müssen Sie eine POST-Anfrage mit dem Header Authorization = Bearer <access token> an {baseUrl}/api/adminapi2/v1/tenants/{tenantId}/clients/{clientId}/secrets/ mit den folgenden Parametern im Request-Body senden:
| Parameter | Beschreibung |
|---|
description | Eine Beschreibung des Client-Secrets. Dies kann ein kurzer Kommentar sein, der Ihnen hilft, die Secrets auseinanderzuhalten. Dies ist ein optionaler Parameter. |
start time | Gibt das Startdatum des Secrets an. |
expiration | Gibt das Ablaufdatum des Secrets an (zwischen 1 Tag und 3 Jahren), zum Beispiel „2021-09-07T13:03:38.380Z“. Standardmäßig wird dieses Datum auf exakt sechs Monate nach dem Erstellungsdatum des Secrets gesetzt. |
Beispielanfrage:
curl --location --request POST "{baseUrl}/api/adminapi2/v1/tenants/{tenantId}/clients/{clientId}/secrets/"
-H "accept: application/json" \
-H "Authorization: Bearer {token}"
-H "Content-Type: application/json-patch+json" \
-d
{
"description": "{description}",
"startTime": "{startTime}"
"expiration": "{expiration}"
}
curl --location --request POST '{baseUrl}/api/adminapi2/v1/tenants/{tenantId}/clients/{clientId}/secrets/'
-H 'accept: application/json' \
-H 'Authorization: Bearer {token}'
-H 'Content-Type: application/json-patch+json' \
-d
{
'description': '{description}',
'startTime': '{startTime}'
'expiration': '{expiration}'
}
Die Antwort des Servers auf Ihre Anforderung enthält ein Client-Secret (value) und dessen Gültigkeitszeitraum (startTime, expiration).
Der Wert des Client-Secrets ist nur zum Zeitpunkt seiner Erstellung verfügbar. Speichern Sie ihn an einem sicheren Ort, um nicht den Zugriff auf einen Client über dessen Secret zu verlieren. Später können Sie nur noch die ersten drei Zeichen des Client-Secret-Werts (valueDisplay) anzeigen.