Español
Referencia API
Autenticación

Autenticación

Aprende cómo autenticarte con la API de ReliaPulse.

Métodos de Autenticación

ReliaPulse soporta dos métodos de autenticación:

MétodoCaso de UsoDuración
Claves APIIntegración servidor a servidorHasta revocación
Cookies de SesiónInteracciones del navegadorHasta logout

Claves API

Las claves API son el método recomendado para acceso programático.

Crear una Clave API

  1. Navega a Configuración > Claves API
  2. Haz clic en "Nueva Clave API"
  3. Configura:
    • Nombre: Identificador descriptivo
    • Permisos: Selecciona permisos específicos
    • Expiración: Opcional
  4. Haz clic en Crear
  5. Copia la clave inmediatamente - no se mostrará de nuevo

Formato de Clave

sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  • Prefijo: sk_live_ (producción) o sk_test_ (test)
  • 43 caracteres en total
  • Codificado en Base64 URL-safe

Usar Claves API

Incluye la clave en el header Authorization:

curl -X GET "https://tu-dominio.com/api/v1/components" \
  -H "Authorization: Bearer sk_live_xxxxx"

Permisos

Las claves API tienen permisos granulares:

PermisoDescripción
components:readLeer componentes
components:writeCrear/actualizar/eliminar componentes
incidents:readLeer incidentes
incidents:writeCrear/actualizar incidentes
maintenances:readLeer mantenimientos
maintenances:writeCrear/actualizar mantenimientos
status-pages:readLeer páginas de estado
status-pages:writeCrear/actualizar páginas de estado
subscribers:readLeer suscriptores
subscribers:writeGestionar suscriptores
integrations:readLeer integraciones
integrations:writeGestionar integraciones
sla:readLeer configuraciones SLA
sla:writeGestionar SLAs
notifications:readLeer canales de notificación
notifications:writeGestionar notificaciones
oncall:readLeer horarios on-call
oncall:writeGestionar on-call
config:readLeer configuración
config:writeAplicar configuración
organization:readLeer configuración de org
organization:writeGestionar organización
audit:readLeer logs de auditoría

Los permisos de escritura incluyen automáticamente permisos de lectura.

Mejores Prácticas de Seguridad

  1. Nunca expongas claves en código del cliente
  2. Usa variables de entorno para almacenamiento
  3. Rota claves regularmente (mensual recomendado)
  4. Usa permisos mínimos requeridos
  5. Monitorea uso vía logs de auditoría
# Bueno - variable de entorno
export STATUS_PAGE_API_KEY="sk_live_xxxxx"
 
# Malo - hardcodeado
const apiKey = "sk_live_xxxxx"; // ¡Nunca hagas esto!

Revocar Claves

  1. Navega a Configuración > Claves API
  2. Encuentra la clave
  3. Haz clic en "Revocar"
  4. Confirma - la clave deja de funcionar inmediatamente

Autenticación de Sesión

Para aplicaciones basadas en navegador, usa autenticación basada en sesión.

Flujo de Login

// 1. Iniciar sesión
const response = await fetch('/api/auth/signin', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    email: 'user@example.com',
    password: 'password'
  }),
  credentials: 'include' // Importante para cookies
});
 
// 2. Las solicitudes posteriores incluyen cookie automáticamente
const components = await fetch('/api/v1/components', {
  credentials: 'include'
});

Verificar Sesión

GET /api/auth/session

Respuesta:

{
  "user": {
    "id": "user-id",
    "email": "user@example.com",
    "name": "Usuario",
    "organizationId": "org-id",
    "role": "ADMIN"
  }
}

Códigos de Error

CódigoDescripciónSolución
401No autenticadoProporciona credenciales válidas
403Permisos insuficientesVerifica permisos de clave API
429Límite de tasa excedidoReduce frecuencia de solicitudes

Ejemplos de Respuesta de Error

{
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Clave API inválida o expirada"
  }
}
{
  "error": {
    "code": "FORBIDDEN",
    "message": "Permiso insuficiente: se requiere components:write"
  }
}

Proveedores OAuth

ReliaPulse soporta autenticación OAuth para login de usuarios:

  • Google
  • GitHub
  • Microsoft (Azure AD)

Configura proveedores OAuth en variables de entorno:

# Google
GOOGLE_CLIENT_ID=xxx
GOOGLE_CLIENT_SECRET=xxx
 
# GitHub
GITHUB_ID=xxx
GITHUB_SECRET=xxx
 
# Microsoft
AZURE_AD_CLIENT_ID=xxx
AZURE_AD_CLIENT_SECRET=xxx
AZURE_AD_TENANT_ID=xxx

Documentación Relacionada