Passer au contenu principal
Avant de créer un client, vous devez être authentifié auprès de l’API Vantage. Voir Authentification pour plus de détails.

Création d’un client

Pour créer un client, vous devez envoyer une requête POST avec l’en-tête Authorization = Bearer <access token> à {baseUrl}/api/adminapi2/v1/tenants/{tenantId}/clients/ avec les paramètres suivants dans le corps de la requête :
ParameterDescription
clientIdL’identifiant du client.
clientNameLe nom du client (par exemple, le nom de votre application).
allowOfflineAccessIndique si un jeton d’actualisation sera généré avec le jeton d’accès, que l’application peut utiliser pour mettre à jour automatiquement le jeton d’accès sans intervention de l’utilisateur. Défini sur False par défaut.
allowRememberConsentIndique si l’utilisateur peut choisir d’enregistrer ses décisions de consentement. Défini sur True par défaut.
backChannelLogoutSessionRequiredIndique si le mécanisme de déconnexion Backchannel est requis. Défini sur True par défaut.
requireClientSecretIndique si un secret client est requis. Défini sur True par défaut.
requireConsentIndique si un écran de consentement est requis. Défini sur False par défaut.
allowNoPkceIndique si le schéma d’authentification Authorization Code Flow with Proof Key for Code Exchange (PKCE) est autorisé. Défini sur False par défaut, n’autorisant que le schéma d’authentification Authorization Code Flow with Proof Key for Code Exchange (PKCE).
allowedGrantTypesSpécifie les types de grant pouvant être utilisés.
allowedCorsOriginsIndique si le mécanisme CORS (Cross-Origin Resource Sharing) par défaut est utilisé.
allowedScopesDéfinit l’ensemble des ressources et des données utilisateur à transférer dans le jeton. La valeur du scope doit être exactement “openid permissions publicapi.all”.
postLogoutRedirectUrisListe des URI autorisées pour la redirection après la déconnexion.
redirectUrisListe des sites Web ou des URL d’application autorisés pour les redirections de jeton d’autorisation. Les préfixes sont autorisés pour l’URL. Si le préfixe correspond, toute URL sera autorisée, par exemple : [ “https://myDomain.”, “https://myApp.myDomain.com/oauth-signin.html” ].
accessTokenLifetimeDéfinit la période pendant laquelle le jeton d’accès émis permet à l’utilisateur d’accéder à Vantage. La durée de vie par défaut d’un jeton d’accès est de 24 heures.
refreshTokenLifetimeDéfinit la période absolue à partir de l’émission du premier jeton d’accès pendant laquelle le jeton d’actualisation émis peut être utilisé pour renouveler le jeton d’accès. La durée de vie par défaut d’un jeton d’actualisation est de 30 jours.
Important ! Lors de l’authentification avec Resource Owner Password Credentials, vous devez définir le paramètre allowRopc sur TRUE. Notez que ce schéma d’authentification suppose que l’utilisateur envoie ses identifiants à l’application ; par conséquent, il est recommandé d’utiliser ROPC uniquement si un client confidentiel de confiance est authentifié.
Exemple de requête :

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

Sous 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 réponse du serveur inclura une description du client créé.

Création d’un secret

Chaque client peut avoir plusieurs secrets. Cela permet au client de commencer à utiliser un nouveau secret à l’expiration de l’actuel sans supprimer celui-ci. Par défaut, un secret de client expire après six mois. Pour créer un secret, vous devez envoyer une requête POST avec l’en-tête Authorization = Bearer <access token> à {baseUrl}/api/adminapi2/v1/tenants/{tenantId}/clients/{clientId}/secrets/ avec les paramètres suivants dans le corps de la requête :
ParamètreDescription
descriptionUne description du secret du client. Il peut s’agir d’un court commentaire pour vous aider à distinguer les secrets. Ce paramètre est facultatif.
start timeSpécifie la date de début du secret.
expirationSpécifie la date d’expiration du secret (entre 1 jour et 3 ans). Par exemple, « 2021-09-07T13:03:38.380Z ». Par défaut, cette date est fixée exactement à six mois à compter de la création du secret.
Exemple de requête :

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

Sous 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 réponse du serveur à votre requête contiendra un secret client (value) ainsi que sa période de validité (startTime, expiration).
Important ! La valeur du secret client n’est disponible qu’au moment de sa création. Stockez-la dans un emplacement sécurisé afin d’éviter de perdre l’accès au client via ce secret. Par la suite, vous ne pourrez voir que les trois premiers caractères de la valeur du secret client (valueDisplay).