Passer au contenu principal
Avant de créer un client, vous devez être autorisé sur l’API Vantage. Consultez la section 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> vers {baseUrl}/api/adminapi2/v1/tenants/{tenantId}/clients/ avec les paramètres du corps de requête suivants :
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, ce qui n’autorise que le schéma d’authentification Authorization Code Flow with Proof Key for Code Exchange (PKCE).
allowedGrantTypesIndique les types d’octroi pouvant être utilisés.
allowedCorsOriginsIndique si le mécanisme CORS (partage de ressources entre origines) par défaut est utilisé.
allowedScopesDéfinit l’ensemble des ressources et des données utilisateur à transférer dans le jeton. La valeur de l’étendue 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 URL d’applications autorisés pour les redirections de jeton d’autorisation. Les préfixes sont autorisés pour l’URL. Si le préfixe correspond, n’importe quelle URL sera autorisée, par exemple : [ “https://myDomain.”, “https://myApp.myDomain.com/oauth-signin.html” ].
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 ce dernier. Par défaut, un secret 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 :
ParameterDescription
descriptionUne description du secret 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 définie exactement à six mois après 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) et sa période de validité (startTime, expiration). Important : la valeur du secret client n’est visible qu’au moment de sa création. Conservez-la dans un emplacement sécurisé afin d’éviter de perdre l’accès à un client via son secret. Par la suite, vous ne pourrez voir que les trois premiers caractères de la valeur du secret client (valueDisplay).