UniAuth
RESTful + OIDC

Referencia de la API

Referencia completa de la API REST de UniAuth. Endpoints OAuth 2.0, OpenID Connect, SCIM 2.0 y de administración conformes a los estándares, con manejo de errores y limitación de velocidad consistentes en todas las rutas.

Inicio rápido

En marcha en tres pasos

De la clave de API a la primera solicitud autenticada en menos de cinco minutos.

1
Consigue tu clave de API

Crea una cuenta y registra un cliente OAuth en la consola de desarrolladores. Recibirás un client_id y un client_secret.

# Developer console
https://uniauth.id/account/developer

# Or via Admin API
POST /api/admin/oauth-clients
{
  "name": "My App",
  "redirect_uris": ["https://app.example/cb"]
}
2
Haz tu primera solicitud

Usa el endpoint de token para intercambiar un código de autorización por un token de acceso y un token de ID.

curl -X POST https://uniauth.id/api/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=authorization_code" \
  -d "code=AUTH_CODE" \
  -d "client_id=YOUR_CLIENT_ID" \
  -d "client_secret=YOUR_SECRET" \
  -d "redirect_uri=https://app.example/cb" \
  -d "code_verifier=PKCE_VERIFIER"
3
Procesa la respuesta

El endpoint de token devuelve un token de acceso, un token de ID y un token de actualización. Usa el token de acceso para llamar a los endpoints protegidos.

{
  "access_token": "eyJhbGci...",
  "token_type": "Bearer",
  "expires_in": 3600,
  "refresh_token": "dGhpcyBpcyBh...",
  "id_token": "eyJhbGci...",
  "scope": "openid profile email"
}
Endpoints

Endpoints de la API por categoría

32 endpoints organizados en seis grupos. Cada endpoint aplica limitación de velocidad, valida el Content-Type y devuelve objetos de error consistentes.

Autenticación

6 endpoints
POST
/api/auth/login

Autentica a un usuario con correo y contraseña. Devuelve un token de sesión y activa la 2FA si está habilitada.

POST
/api/auth/register

Crea una nueva cuenta de usuario con correo, contraseña y campos de perfil opcionales.

POST
/api/auth/logout

Termina la sesión actual, revoca los tokens y activa el cierre de sesión backchannel/frontchannel para los clientes OAuth.

POST
/api/auth/forgot-password

Envía un correo de restablecimiento de contraseña con un token de duración limitada y hash SHA-256.

POST
/api/auth/reset-password

Restablece la contraseña con el token de forgot-password. Aplica el historial de contraseñas y las comprobaciones de robustez.

POST
/api/auth/verify-email

Confirma la propiedad del correo mediante el token de verificación enviado durante el registro.

OAuth 2.0 / OIDC

6 endpoints
GET
/api/oauth/authorize

Inicia el flujo de código de autorización de OAuth 2.0 con PKCE. Redirige al inicio de sesión y luego a la pantalla de consentimiento.

POST
/api/oauth/token

Intercambia un código de autorización por tokens, renueva tokens o gestiona los grants de device y client credentials.

GET
/api/oauth/userinfo

Devuelve los claims OIDC del usuario autenticado. Admite GET y POST según la sección 5.3.1 de OIDC Core.

POST
/api/oauth/revoke

Revoca un token de acceso o de actualización. Admite el parámetro token_type_hint.

POST
/api/oauth/introspect

Inspecciona un token para determinar su estado activo, sus scopes y sus metadatos (RFC 7662).

GET
/.well-known/openid-configuration

Documento de OIDC Discovery con todos los endpoints, scopes admitidos, claims y algoritmos.

Gestión de usuarios

4 endpoints
GET
/api/user/profile

Recupera el perfil completo del usuario autenticado, incluidos los claims estándar de OIDC y las preferencias.

PUT
/api/user/profile

Actualiza los campos del perfil: nombre visible, biografía, configuración regional, enlaces sociales, dirección y más.

GET
/api/user/sessions

Lista todas las sesiones activas del usuario autenticado con información del dispositivo y última actividad.

DELETE
/api/user/sessions

Revoca una sesión concreta por ID o todas las demás sesiones (invalidación por cambio de contraseña).

Organizaciones / Equipos

8 endpoints
POST
/api/user/organizations

Crea una organización en autoservicio. El creador pasa a ser propietario (máx. 10 organizaciones propias); empieza en el plan team.

GET
/api/org/{id}/users

Lista y gestiona los miembros y roles de la organización (owner/admin/member). Límite de 25 asientos en el plan team (HTTP 402 si se supera).

POST
/api/org/{id}/invitations

Invita a un miembro por correo con aceptación mediante token. La capacidad se aplica tanto al invitar como al aceptar.

POST
/api/org/{id}/groups

Crea y gestiona los grupos de la organización y sus miembros. Los nombres de grupo aparecen en el claim groups de OIDC.

POST
/api/org/{id}/clients/{cid}/scim-token

Emite o rota el token SCIM por cliente de una organización. Plan enterprise — en caso contrario devuelve 402 upgrade_required.

POST
/api/org/{id}/domains

Añade y verifica un dominio personalizado para la organización. Plan enterprise — habilita el SSO y la captura por dominio.

POST
/api/org/{id}/saml-idps

Configura el SSO entrante: SP SAML e IdP federados OIDC (también /federated-idps). Plan enterprise.

GET
/api/org/{id}/billing

Facturación de Stripe por organización: estado de la suscripción, asientos y pago. Cada organización es su propio cliente, facturado por asiento.

Aprovisionamiento SCIM 2.0

4 endpoints
GET
/api/scim/v2/Users

Lista o busca usuarios con la sintaxis de filtros SCIM. Admite paginación y proyección de atributos.

POST
/api/scim/v2/Users

Aprovisiona un nuevo usuario vía SCIM. Asigna el esquema de recurso de usuario SCIM a la tabla users de UniAuth.

GET
/api/scim/v2/Groups

Lista o busca grupos. Incluye referencias a los miembros y admite consultas con filtros.

POST
/api/scim/v2/Bulk

Ejecuta varias operaciones SCIM en una sola solicitud. Máximo 100 operaciones por lote.

Administración

4 endpoints
GET
/api/admin/users

Lista todos los usuarios con paginación, búsqueda, filtro por rol y ordenación. Requiere rol de administrador o moderador.

GET
/api/admin/analytics

Recupera las analíticas de la plataforma: DAU/WAU/MAU, tendencias de inicio de sesión, adopción de 2FA, desglose de métodos de autenticación.

GET
/api/admin/audit-events

Consulta el registro de auditoría a prueba de manipulaciones. Filtra por categoría, actor, objetivo, rango de fechas y tipo de evento.

POST
/api/admin/webhooks

Registra un endpoint de webhook con suscripciones a eventos y secreto de firma HMAC-SHA256.

Autenticación

Métodos de autenticación de la API

Cuatro formas de autenticar las solicitudes a la API, según el endpoint y el caso de uso.

Token Bearer

Envía el token de acceso en la cabecera Authorization. Se usa en endpoints protegidos por OAuth como userinfo, la introspección de tokens y las llamadas API de cliente a cliente.

GET /api/oauth/userinfo
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
Accept: application/json
Sesión basada en cookies

Las solicitudes first-party usan una cookie HttpOnly, Secure, SameSite=Lax establecida tras el inicio de sesión. Se usa en las páginas de usuario y las API de cuenta/administración.

GET /api/user/profile
Cookie: auth_token=eyJhbGci...
# HttpOnly — not accessible via JS
# SameSite=Lax — CSRF protection
DPoP (prueba de posesión)

DPoP (RFC 9449) vincula los tokens a una clave de cliente específica. Envía el JWT de prueba DPoP junto con el token de acceso. Evita el robo y la reutilización de tokens.

GET /api/oauth/userinfo
Authorization: DPoP eyJhbGci...
DPoP: eyJ0eXAiOiJkcG9wK2p3dCIs...
# Proof JWT includes htm, htu, iat, jti
Token Bearer de SCIM

Los endpoints de aprovisionamiento SCIM se autentican mediante un token SCIM dedicado por cliente OAuth. El token se almacena como hash SHA-256 y está limitado a una organización.

GET /api/scim/v2/Users
Authorization: Bearer scim_token_abc123...
Content-Type: application/scim+json
SDKs

Bibliotecas cliente oficiales

SDKs tipados para JavaScript y React con PKCE, ciclo de vida de tokens y cierre de sesión integrados.

SDK de JavaScript / TypeScript

@uniauth/js

Cliente JS vanilla con PKCE, descubrimiento OIDC, renovación automática de tokens, errores tipados y cierre de sesión con revocación. Funciona en Node.js y en el navegador.

npm install @uniauth/js

SDK de React

@uniauth/react

Provider de React, hooks y componentes listos para usar: UniAuthProvider, useUser, LoginButton, LogoutButton, ProtectedRoute y UserProfile.

npm install @uniauth/react
Referencia del SDK
Límites de velocidad

Límites de velocidad por endpoint

Todos los endpoints tienen límite de velocidad para proteger la plataforma. Los límites se reinician en una ventana deslizante de 15 minutos.

Ventana deslizante (15 minutos)
POST /api/auth/login
10 solicitudes
15 min
Por IP. Bloqueo tras 5 fallos.
POST /api/auth/register
5 solicitudes
15 min
Por IP. Evita el registro masivo.
POST /api/auth/forgot-password
5 solicitudes
15 min
Por IP. Sin enumeración de cuentas.
POST /api/auth/verify-*
10 solicitudes
15 min
Por IP. Cubre 2FA y correo.
POST /api/scim/v2/Bulk
10 solicitudes
15 min
Por token SCIM. Máx. 100 operaciones/lote.
Todos los demás endpoints
100 solicitudes
15 min
Por IP o token. Aplicación de doble capa.

Las cabeceras de límite de velocidad (X-RateLimit-Limit, X-RateLimit-Remaining, Retry-After) se incluyen en cada respuesta. Cuando Redis está configurado, los límites se aplican en todas las instancias del servidor.

Empieza a integrar hoy mismo

Acceso completo a la API desde el primer día. Sin tarjeta de crédito. Lee la documentación o crea una cuenta gratuita para empezar.