Integraciones: Autenticación con aplicaciones


1 - Navegue a Aplicaciones

Para listar aplicaciones existentes o crear una nueva, vaya a Administración -> Integraciones -> Aplicaciones.

Application Keys

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:

Application Keys

  • 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.

Application Keys

  • 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.

Application Keys

  • Channels: Canales de backoffice permitidos para esta aplicación (por ejemplo backoffice y agency-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.

Application Keys

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

Get Application Key

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.

Hash The Keys

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

Encode AppName and the Keys

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.

Authenticate the app

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"