Zum Hauptinhalt springen
Bevor Sie einen Client erstellen, müssen Sie sich bei der Vantage-API authentifizieren. Weitere Details finden Sie unter „Authentication“.

Erstellen eines Clients

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:
ParameterBeschreibung
clientIdDie Kennung des Clients.
clientNameDer Name des Clients (z. B. der Name Ihrer App).
allowOfflineAccessGibt 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.
allowRememberConsentGibt an, ob der Benutzer Zustimmungsentscheidungen speichern kann. Standardmäßig auf True gesetzt.
backChannelLogoutSessionRequiredGibt an, ob der Backchannel-Logout-Mechanismus erforderlich ist. Standardmäßig auf True gesetzt.
requireClientSecretGibt an, ob ein Client-Secret erforderlich ist. Standardmäßig auf True gesetzt.
requireConsentGibt an, ob ein Zustimmungsbildschirm erforderlich ist. Standardmäßig auf False gesetzt.
allowNoPkceGibt 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.
allowedGrantTypesGibt die zulässigen Grant-Typen an.
allowedCorsOriginsGibt an, ob der standardmäßige Mechanismus für Cross-Origin Resource Sharing (CORS) verwendet wird.
allowedScopesDefiniert die Ressourcen und Benutzerdaten, die im Token übertragen werden sollen. Der Scope-Wert muss exakt “openid permissions publicapi.all” sein.
postLogoutRedirectUrisEine Liste zulässiger URIs, zu denen nach dem Logout umgeleitet wird.
redirectUrisEine 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” ].
accessTokenLifetimeDefiniert den Zeitraum, in dem das ausgestellte Access Token den Benutzerzugriff auf Vantage ermöglicht. Die Standardlebensdauer eines Access Tokens beträgt 24 Stunden.
refreshTokenLifetimeDefiniert 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:

Unter Windows

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}" 
  ]
}

Unter Linux

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 enthält eine Beschreibung des erstellten Clients.

Erstellen eines Secrets

Jeder Client kann mehrere Secrets haben. So kann der Client nach Ablauf des aktuellen Secrets ein neues verwenden, ohne das alte zu löschen. Standardmäßig läuft ein Client-Secret nach sechs Monaten ab. Um ein Secret zu erstellen, senden 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:
ParameterBeschreibung
descriptionEine Beschreibung des Client-Secrets. Dies kann ein kurzer Kommentar sein, der hilft, die Secrets auseinanderzuhalten. Dieser Parameter ist optional.
start timeGibt das Startdatum des Secrets an.
expirationGibt das Ablaufdatum des Secrets an (zwischen 1 Tag und 3 Jahren), z. B. „2021-09-07T13:03:38.380Z“. Standardmäßig ist dieses Datum exakt sechs Monate nach dem Erstellungsdatum des Secrets.
Beispielanfrage:

Unter Windows

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}" 
}

Unter Linux

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).
Wichtig! 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.