Contenido
- Campos de la página de detalle
- 1 - Obtener las claves de la aplicación
- 2 - Concatenar clave pública + clave privada
- 3 - Generar el hash del string concatenado (SHA-256)
- 4 - Concatenar app name + ":" + hash
- 5 - Codificar en Base64
- 6 - Solicitar token de la aplicación
- 7 - Usar token en llamadas posteriores de API
Integraciones: Autenticación con aplicaciones
1 - Navegue a Aplicaciones
Para listar aplicaciones existentes o crear una nueva, vaya a Administración -> Integraciones -> Aplicaciones.

2 - Crear una nueva aplicación
Haga clic en +Agregar nuevo si necesita crear una aplicación.
Campos de la página de detalle
Al abrir una aplicación existente en Admin -> Integraciones -> Aplicaciones -> {applicationId}, la pantalla incluye campos de configuración de la aplicación:

- Name: Nombre para identificar la aplicación.
- Description: Descripción del objetivo de la aplicación.
- Public key: La clave pública se genera automáticamente.
- Private key: La clave privada se genera automáticamente.

- Settings (JSON): Objeto JSON opcional con configuración específica de la integración. Debe ser JSON válido.
- Request endpoint: URL HTTPS opcional usada por algunas integraciones para callbacks/requests.

- Channels: Canales de backoffice permitidos para esta aplicación (por ejemplo
backofficeyagency-backoffice). - Roles: Roles de backoffice que pueden usar esta aplicación en flujos de user sign-on y relacionados.
- Enable user sign on: Si está habilitado, la aplicación puede usarse en flujos de inicio de sesión de usuario (según roles y permisos).
- Refresh token setup: Si está deshabilitado, se genera un token que expira en dos días. Si está habilitado, podrá configurar la duración del JWT y del refresh token.

Algunos campos se muestran de forma condicional. Por ejemplo, Enable user sign on puede no aparecer según los permisos de la cuenta y la configuración de funcionalidades.
Notas:
- Solo las aplicaciones no internas son editables.
- Al regenerar claves, cambian la clave pública y la privada, por lo que se deben actualizar los secretos en la integración.
3 - Uso de la aplicación
1 - Obtener las claves de la aplicación
Abra la aplicación y copie:
- Clave pública
- Clave privada
Valores de ejemplo:
- Clave pública:
58b8d238-3cfc-41a0-aaad-ae6077d7c4e0 - Clave privada:
ca626c20-659d-4553-8647-2337c0a8804d

2 - Concatenar clave pública + clave privada
Concatene ambas claves en un solo string (sin separador).
const publicKey = "58b8d238-3cfc-41a0-aaad-ae6077d7c4e0";
const privateKey = "ca626c20-659d-4553-8647-2337c0a8804d";
const keysString = publicKey + privateKey;
Resultado:
keysString = "58b8d238-3cfc-41a0-aaad-ae6077d7c4e0ca626c20-659d-4553-8647-2337c0a8804d"
3 - Generar el hash del string concatenado (SHA-256)
Utilizando el algoritmo SHA-256, genere el hash de keysString.

Ejemplo:
sha256KeysString = "1056e1342f844577aff4f99d146e3dcde1364dfa60aafd6a63f9379e0b7e06de"
4 - Concatenar app name + ":" + hash
A continuación, agregue el nombre de la aplicación a sha256KeysString:
appName + ":" + sha256KeysString
Ejemplo:
Test:1056e1342f844577aff4f99d146e3dcde1364dfa60aafd6a63f9379e0b7e06de
5 - Codificar en Base64
Codifique en Base64 el string generado en el paso anterior.
echo -n "Test:1056e1342f844577aff4f99d146e3dcde1364dfa60aafd6a63f9379e0b7e06de" | base64

El resultado en este caso sería:
cGFnb2V4cHJlc3M6MTA1NmUxMzQyZjg0NDU3N2FmZjRmOTlkMTQ2ZTNkY2RlMTM2NGRmYTYwYWFmZDZhNjNmOTM3OWUwYjdlMDZkZQ==
6 - Solicitar token de la aplicación
Use el endpoint POST /accounts/applications para autenticar la aplicación.

Configure los headers de esta forma:
"Authorization": "Basic cGFnb2V4cHJlc3M6MTA1NmUxMzQyZjg0NDU3N2FmZjRmOTlkMTQ2ZTNkY2RlMTM2NGRmYTYwYWFmZDZhNjNmOTM3OWUwYjdlMDZkZQ=="
"X-API-KEY": "58b8d238-3cfc-41a0-aaad-ae6077d7c4e0"
"Content-Type": "application/json"
La respuesta contendrá la clave pública y el token que se utilizará para autenticar la aplicación.
{
"publicKey": "57d0398c-4705-4d84-a9ad-7e3ca741497b",
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJfaWQiOiI2MGE3YjIyMDVjYzkyYzNhOTExMzYzMzAiLCJhY2NvdW50SWQiOiI1OTVmOWM3MDA3ZWUxMjY4NmQwMDAwMzIiLCJ1c2VySWQiOiI2MGE3YjIyMDVjYzkyYzNhOTExMzYzMzAiLCJuYW1lIjoicGFnb2V4cHJlc3MiLCJkZXNjcmlwdGlvbiI6IkFwcGxpY2F0aW9uIGZvciBkYXRhbG9naWMgcGFnbyBleHByZXNzIGludGVncmF0aW9uIiwiaW50ZXJuYWwiOmZhbHNlLCJwcmVtaXVtIjpbXSwiaWF0IjoxNzE2NDAyNjA2LCJleHAiOjE3MTY1NzU0MDYsImF1ZCI6InBhZ29leHByZXNzIiwiaXNzIjoiYnRyei1hcGktYWNjb3VudHMiLCJzdWIiOiJhY2NvdW50X3VzZXJfc2lnbl9pbiJ9.TiBFtHb2Nrkv8tFt-UHk7wNr-VLQZAhdQM7EALaZbag0T_XJTboj67oe7GNkv0YVIAc9ZXXtNsMdoUecM7TjeQ"
}
7 - Usar token en llamadas posteriores de API
Ahora puede usar la clave pública y el token en endpoints que requieren autorización de aplicación.
"Authorization": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJfaWQiOiI2MGE3YjIyMDVjYzkyYzNhOTExMzYzMzAiLCJhY2NvdW50SWQiOiI1OTVmOWM3MDA3ZWUxMjY4NmQwMDAwMzIiLCJ1c2VySWQiOiI2MGE3YjIyMDVjYzkyYzNhOTExMzYzMzAiLCJuYW1lIjoicGFnb2V4cHJlc3MiLCJkZXNjcmlwdGlvbiI6IkFwcGxpY2F0aW9uIGZvciBkYXRhbG9naWMgcGFnbyBleHByZXNzIGludGVncmF0aW9uIiwiaW50ZXJuYWwiOmZhbHNlLCJwcmVtaXVtIjpbXSwiaWF0IjoxNzE2NDAyNjA2LCJleHAiOjE3MTY1NzU0MDYsImF1ZCI6InBhZ29leHByZXNzIiwiaXNzIjoiYnRyei1hcGktYWNjb3VudHMiLCJzdWIiOiJhY2NvdW50X3VzZXJfc2lnbl9pbiJ9.TiBFtHb2Nrkv8tFt-UHk7wNr-VLQZAhdQM7EALaZbag0T_XJTboj67oe7GNkv0YVIAc9ZXXtNsMdoUecM7TjeQ"
"X-API-KEY": "57d0398c-4705-4d84-a9ad-7e3ca741497b"