Vai al contenuto principale
Prima di creare un client, devi essere autorizzato nella Vantage API. Per maggiori dettagli, consulta Autenticazione.

Creazione di un client

Per creare un client, è necessario inviare una richiesta POST con l’intestazione Authorization = Bearer <access token> a {baseUrl}/api/adminapi2/v1/tenants/{tenantId}/clients/ con i seguenti parametri nel corpo della richiesta:
ParameterDescrizione
clientIdIdentificatore del client.
clientNameNome del client (ad es. il nome della tua app).
allowOfflineAccessSpecifica se un refresh token verrà generato insieme all’access token, che l’applicazione può usare per aggiornare automaticamente l’access token senza intervento dell’utente. Impostato su False per impostazione predefinita.
allowRememberConsentSpecifica se l’utente può scegliere di memorizzare le decisioni di consenso. Impostato su True per impostazione predefinita.
backChannelLogoutSessionRequiredSpecifica se è richiesto il meccanismo di Backchannel Logout. Impostato su True per impostazione predefinita.
requireClientSecretSpecifica se è richiesta una client secret. Impostato su True per impostazione predefinita.
requireConsentSpecifica se è richiesta una schermata di consenso. Impostato su False per impostazione predefinita.
allowNoPkceSpecifica se è consentito lo schema di autenticazione Authorization Code Flow with Proof Key for Code Exchange (PKCE). Impostato su False per impostazione predefinita, consentendo solo lo schema di autenticazione Authorization Code Flow with Proof Key for Code Exchange (PKCE).
allowedGrantTypesSpecifica i tipi di concessione (grant types) che possono essere utilizzati.
allowedCorsOriginsSpecifica se viene utilizzato il meccanismo predefinito di condivisione delle risorse tra origini (CORS).
allowedScopesDefinisce un set di risorse e dati utente che devono essere trasferiti nel token. Il valore dello scope deve essere esattamente “openid permissions publicapi.all”.
postLogoutRedirectUrisElenco di URI consentiti verso cui reindirizzare dopo il logout.
redirectUrisElenco di siti web o URL dell’app autorizzati per i reindirizzamenti del token di autorizzazione. Sono consentiti i prefissi per l’URL. Se il prefisso corrisponde, qualsiasi URL sarà consentito, ad esempio: [ “https://myDomain.”, “https://myApp.myDomain.com/oauth-signin.html” ].
Importante! Quando si effettua l’autenticazione utilizzando Resource Owner Password Credentials, è necessario impostare il parametro allowRopc su TRUE. Nota che questo schema di autenticazione presuppone che l’utente invii le proprie credenziali all’applicazione; pertanto, si consiglia di utilizzare ROPC solo se viene autenticato un client riservato attendibile. Esempio di richiesta:

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

Per 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}' 
  ]
}
La risposta del server conterrà una descrizione del client creato.

Creazione di un secret

Ogni client può avere più secret. Questo consente al client di iniziare a usare un nuovo secret alla scadenza di quello corrente senza eliminarlo. Per impostazione predefinita, un client secret scade dopo sei mesi. Per creare un secret, è necessario inviare una richiesta POST con l’intestazione Authorization = Bearer <access token> a {baseUrl}/api/adminapi2/v1/tenants/{tenantId}/clients/{clientId}/secrets/ con i seguenti parametri nel body della richiesta:
ParameterDescrizione
descriptionUna descrizione del client secret. Può essere un breve commento per aiutarti a distinguere i secret. Parametro facoltativo.
start timeSpecifica la data di inizio del secret.
expirationSpecifica la data di scadenza del secret (tra 1 giorno e 3 anni). Ad esempio: “2021-09-07T13:03:38.380Z”. Per impostazione predefinita, questa data è impostata esattamente a sei mesi dalla data di creazione del secret.
Esempio di richiesta:

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

Per 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}' 
}
La risposta del server alla tua richiesta conterrà un client secret (value) e il relativo periodo di validità (startTime, expiration). Importante! Il valore del client secret sarà disponibile solo al momento della creazione. Conservalo in un luogo sicuro per non perdere l’accesso al client tramite il suo secret. In seguito potrai visualizzare solo i primi tre caratteri del valore del client secret (valueDisplay).