Cabeceras requeridas
Todas las llamadas a API v1 envían la credencial en la cabecera Authorization y solicitan JSON.
Authorization: Bearer lpd_<id>_<secreto>
Accept: application/json
En solicitudes POST, agrega además:
Content-Type: application/json
El esquema Bearer se acepta sin distinguir mayúsculas y minúsculas.
Dónde se crea la credencial
En la plataforma, dentro de la organización: Configuración → Tokens API. Solo puede hacerlo quien tenga el permiso de administración de la organización en Hub.
Al crearla se define:
- un nombre para reconocerla;
- los permisos (scopes) que tendrá;
- una fecha de expiración opcional.
El secreto se muestra una sola vez. La plataforma guarda un hash y registra el último uso (fecha e IP). Desde la misma pantalla se puede revocar.
Una credencial, una organización
Cada credencial pertenece a la organización donde fue creada y solo opera en ella. :organization en la ruta debe corresponder a esa organización; si no coincide, la API responde 404 sin revelar si el recurso existe.
Permisos por ruta
| Operación | Permiso requerido |
|---|---|
GET /requests, GET /requests/:uuid |
requests:read |
POST /requests |
requests:create |
GET /consents |
consents:read |
POST /consents, DELETE /consents/:id |
consents:write |
GET /suppressions |
suppressions:read |
GET /vendors |
inventory:read |
Los permisos requests:manage, suppressions:write, inventory:write, incidents:read e incidents:write existen en la plataforma pero están reservados: ninguna ruta de API v1 los usa todavía.
Además del permiso de la credencial, la plataforma comprueba que la persona que la creó siga activa en Hub con el permiso de organización correspondiente (lectura para *:read, administración para *:create y *:write). Si esa persona pierde acceso, sus credenciales dejan de funcionar.
Sin credencial o credencial inválida — 401
Se responde igual cuando falta la cabecera, el formato no es lpd_<id>_<secreto>, el secreto no coincide, la credencial fue revocada o expiró.
{
"errors": [{ "message": "La credencial API no es válida" }]
}
Permiso insuficiente — 403
{
"errors": [{ "message": "La credencial API no permite esta operación" }]
}
Protección operativa
- Mantén la credencial fuera del frontend, repositorio, logs y mensajes de error.
- Envíala solo por HTTPS a la plataforma.
- Crea una credencial por integración, con los permisos justos y fecha de expiración.
- Revoca desde la plataforma cuando una integración deje de usarse.
Ausencias
API v1 no incluye endpoints para emitir, listar, rotar o revocar credenciales. Todo eso ocurre en la plataforma.