Vai al contenuto principale
Prima di creare un client, devi essere autenticato all’API Vantage; per maggiori dettagli, vedi 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 body della richiesta:
ParameterDescription
clientIdL’identificatore del client.
clientNameIl nome del client (ad es. il nome della tua app).
allowOfflineAccessSpecifica se verrà generato un refresh token 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 è richiesto un 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 grant che possono essere utilizzati.
allowedCorsOriginsSpecifica se viene utilizzato il meccanismo predefinito di condivisione delle risorse tra origini diverse (CORS).
allowedScopesDefinisce l’insieme di risorse e dati utente che devono essere trasferiti nel token. Il valore dello scope deve essere esattamente “openid permissions publicapi.all”.
postLogoutRedirectUrisElenco degli URI consentiti verso cui reindirizzare dopo il logout.
redirectUrisElenco di siti web o URL di 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” ].
accessTokenLifetimeDefinisce il periodo durante il quale l’access token emesso consente l’accesso a Vantage. La durata predefinita di un access token è 24 ore.
refreshTokenLifetimeDefinisce il periodo assoluto a partire dall’emissione del primo access token durante il quale il refresh token emesso può essere utilizzato per rinnovare l’access token. La durata predefinita di un refresh token è 30 giorni.
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 e considerato 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 secret del client 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:
ParameterDescription
descriptionUna descrizione del secret del client. Può essere un breve commento per aiutarti a distinguere i secret. Questo 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 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 evitare di perdere l’accesso a un client tramite il suo client secret. In seguito potrai visualizzare solo i primi tre caratteri del valore del client secret (valueDisplay).