Authorization: Bearer <token> en las solicitudes a la API.
Usa OAuth cuando tu app actúa por Usuarios que inician sesión ellos mismos, como un asistente de IA o una herramienta de terceros. Usa una clave de API para tu propia integración de servidor a servidor. Claude y ChatGPT se conectan así mediante el servidor MCP de Sintropix.
Qué puede hacer un token
- Una Organización. El Usuario elige una Organización al aprobar. El token llega solo a las Entidades de esa Organización. Cualquier otra Entidad devuelve
404, yGET /api/organizationslista como máximo esa Organización. La misma app aprobada para dos Organizaciones son dos apps conectadas, y cada una se revoca por separado. - Lectura, o lectura y escritura. La app pide el scope
read, ywritesi necesita cambiar datos. El Rol del Usuario limita el resultado: unvieweraprueba solo lectura, aunque la app pidawrite. - Nunca más allá del Rol. El token actúa con el Rol actual del Usuario. Si el Rol del Usuario pasa a
viewer, un token de lectura y escritura deja de escribir. Si el Usuario pierde la Membresía, la aprobación y sus tokens terminan. - Razón Declarada en las escrituras. Todo
POST,PUT,PATCHoDELETEdebe enviarx-audit-reason, con las mismas reglas que para las claves de API. No se necesitax-audit-actor: el registro de auditoría guardacredentialType: "oauth"y elclient_idy el nombre de la app. La única excepción esPOST /api/feedback: no necesitax-audit-reason, y también puede enviarla un token con accesoread. - Sin administración de la cuenta. Un token se rechaza en las rutas de Superadmin (
SUPERADMIN_SESSION_REQUIRED), en la administración de claves de API, al listar o revocar apps conectadas, en los ajustes de verificación en dos pasos y en toda ruta/api/auth/*fuera del flujo OAuth.
Endpoints
Sintropix publica los metadatos de su servidor de autorización en:Conecta tu app
1
Registra la app
Regístrala una vez, sin credenciales. Sintropix emite un cliente público: no hay secreto de cliente, así que PKCE protege el flujo.Guarda el
client_id de la respuesta. client_name es lo que los Usuarios ven en la pantalla de aprobación y en su lista de apps conectadas.Las URI de redirección que puedes registrar dependen de dónde corre tu app:Cualquier otra URI de redirección, como un esquema propio con host del tipo
acme://callback, devuelve 400 con invalid_redirect_uri.2
Envía al Usuario a aprobar
Crea un code verifier de PKCE y su challenge S256, y abre la URL de autorización en el navegador del Usuario:El
redirect_uri debe coincidir exactamente con uno registrado. Si envías un resource, debe ser el servidor MCP de Sintropix, https://mcp.sintropix.com/mcp. Cualquier otro recurso devuelve al Usuario a tu redirect_uri con error=invalid_target.Luego el Usuario pasa por estas pantallas en la app de Sintropix:- Inicia sesión con su contraseña y su segundo factor. A un Usuario sin verificación en dos pasos se le pide activarla primero.
- Elige la Organización en la que trabajará la app (Elige la empresa). Un Usuario con una sola Membresía se salta esta pantalla. Un Usuario sin Membresías no puede aprobar ninguna app.
- Revisa la solicitud: el nombre de la app, el dominio al que vuelve (Te devolverá a), la Organización y el acceso (Solo lectura o Lectura y escritura). El Usuario hace clic en Permitir o Denegar.
El nombre de la app lo declara la propia app, así que la pantalla también muestra adónde vuelve el Usuario. Una redirección
https muestra su hostname. Cualquier otro esquema muestra la URI completa.3
Canjea el código
Sintropix redirige a tu La respuesta trae
redirect_uri con code y state. Verifica state y canjea el código con el code verifier:access_token, refresh_token (si pediste offline_access), expires_in y el scope concedido. Lee el scope concedido: no incluye write cuando el acceso del Usuario es de solo lectura.4
Llama a la API
Envía el token de acceso como token Bearer. Las escrituras también necesitan Cuando una solicitud devuelve Si la actualización falla, el Usuario revocó la app o perdió la Membresía. Vuelve a enviarlo a aprobar.
x-audit-reason:401, actualiza el token. Un token de acceso también termina cuando el Usuario cierra la sesión del navegador desde la que aprobó la app, pero su token de actualización sigue funcionando.Administra las apps conectadas
Los Usuarios ven sus apps conectadas en la app de Sintropix en Tu cuenta > Apps conectadas, enhttps://app.sintropix.com/account/connected-apps. Para llegar, haz clic en tu nombre, en la parte inferior de la barra lateral izquierda, y elige Tu cuenta. Cada fila muestra la app, su dominio de retorno, la Organización, el acceso y la fecha de conexión. Haz clic en el botón de revocar de una fila y confirma con Revocar: los tokens de acceso y de actualización de la app dejan de funcionar de inmediato. Revocar la aprobación de una Organización mantiene las aprobaciones de la misma app en otras Organizaciones.
Las mismas acciones están disponibles en la API, solo desde una sesión iniciada en el navegador. Una clave de API o un token OAuth recibe 403 con PERMISSION_DENIED_ERROR.
GET /api/connected-apps
Lista las apps que aprobó el Usuario con sesión iniciada, una fila por aprobación.
DELETE /api/connected-apps/:connectedAppId
Revoca una aprobación y todos los tokens que emitió. Devuelve 200 con la app conectada revocada, en la forma anterior. Un id que no es una de tus aprobaciones devuelve 404 con CONNECTED_APP_NOT_FOUND_ERROR.
Códigos de error
Un token de acceso vencido, revocado o desconocido devuelve
401.
