Antes de crear un cliente, debe estar autenticado en la API de Vantage. Consulte Autenticación para obtener más información.
Para crear un cliente, deberá enviar una solicitud POST con el encabezado Authorization: Bearer <access token> a {baseUrl}/api/adminapi2/v1/tenants/{tenantId}/clients/ con los siguientes parámetros en el cuerpo de la solicitud:
| Parameter | Description |
|---|
clientId | El identificador del cliente. |
clientName | El nombre del cliente (por ejemplo, el nombre de su aplicación). |
allowOfflineAccess | Especifica si se generará un token de actualización junto con el token de acceso, que la aplicación puede usar para actualizar automáticamente el token de acceso sin intervención del usuario. De forma predeterminada está establecido en False. |
allowRememberConsent | Especifica si el usuario puede optar por almacenar decisiones de consentimiento. De forma predeterminada está establecido en True. |
backChannelLogoutSessionRequired | Especifica si se requiere el mecanismo de cierre de sesión por canal secundario (Backchannel Logout). De forma predeterminada está establecido en True. |
requireClientSecret | Especifica si se requiere un secreto de cliente. De forma predeterminada está establecido en True. |
requireConsent | Especifica si se requiere una pantalla de consentimiento. De forma predeterminada está establecido en False. |
allowNoPkce | Especifica si se permite el esquema de autenticación Authorization Code Flow with Proof Key for Code Exchange (PKCE). De forma predeterminada está en False, permitiendo solo el esquema de autenticación Authorization Code Flow with Proof Key for Code Exchange (PKCE). |
allowedGrantTypes | Especifica los tipos de concesión que se pueden usar. |
allowedCorsOrigins | Especifica si se usa el mecanismo predeterminado de intercambio de recursos de origen cruzado (CORS). |
allowedScopes | Define el conjunto de recursos y datos de usuario que deben transferirse en el token. El valor del scope debe ser exactamente “openid permissions publicapi.all”. |
postLogoutRedirectUris | Una lista de URI permitidas a las que redirigir después del cierre de sesión. |
redirectUris | Una lista de sitios web o URL de aplicaciones permitidas para redirecciones del token de autorización. Se permiten prefijos en la URL. Si el prefijo coincide, se permitirá cualquier URL; por ejemplo: [ “https://myDomain.”, “https://myApp.myDomain.com/oauth-signin.html” ]. |
accessTokenLifetime | Define el periodo durante el cual el token de acceso emitido permite el acceso del usuario a Vantage. El tiempo de vida predeterminado de un token de acceso es de 24 horas. |
refreshTokenLifetime | Define el periodo absoluto a partir de la emisión del primer token de acceso durante el cual el token de actualización emitido puede usarse para renovar el token de acceso. El tiempo de vida predeterminado de un token de actualización es de 30 días. |
Importante: Al autenticarse mediante Resource Owner Password Credentials, debe establecer el parámetro allowRopc en TRUE. Tenga en cuenta que este esquema de autenticación supone que el usuario envía sus credenciales a la aplicación; por lo tanto, se recomienda usar ROPC solo si se autentica un cliente confidencial de confianza.
Solicitud de ejemplo:
En 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}"
]
}
En 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 respuesta del servidor incluirá una descripción del cliente creado.
Cada cliente puede tener varios secretos. Esto permite que el cliente comience a usar un nuevo secreto cuando el actual expire, sin tener que eliminarlo. De forma predeterminada, un secreto de cliente expira después de seis meses.
Para crear un secreto, deberá enviar una solicitud POST con el encabezado Authorization = Bearer <access token> a {baseUrl}/api/adminapi2/v1/tenants/{tenantId}/clients/{clientId}/secrets/ con los siguientes parámetros en el cuerpo de la solicitud:
| Parámetro | Descripción |
|---|
description | Una descripción del secreto de cliente. Puede ser un breve comentario que le ayude a distinguir entre los secretos. Este es un parámetro opcional. |
start time | Especifica la fecha de inicio del secreto. |
expiration | Especifica la fecha de caducidad del secreto (entre 1 día y 3 años). Por ejemplo, “2021-09-07T13:03:38.380Z”. De forma predeterminada, esta fecha se establece exactamente seis meses después de la fecha de creación del secreto. |
Solicitud de ejemplo:
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}"
}
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 respuesta del servidor a su solicitud contendrá un secreto de cliente (value) y su período de validez (startTime, expiration).
El valor del secreto de cliente solo estará disponible en el momento de su creación. Guárdelo en un lugar seguro para no perder el acceso al cliente mediante su secreto. Más adelante, solo podrá ver los tres primeros caracteres del valor del secreto de cliente (valueDisplay).