(Nautilus · Inicio de sesión y usuarios)

Inicio de sesión y usuarios para tu SaaS Ory Kratos de código abierto, gestionado por nosotros. Sin interfaz: las pantallas siguen siendo tuyas.

Registro, inicio de sesión, recuperación de contraseña, verificación del correo y doble factor, como llamadas a la API. Tú dibujas las pantallas; Nautilus gestiona lo que hay detrás: sesiones, diez proveedores de inicio de sesión, organizaciones con roles, webhooks firmados, un registro de auditoría y un panel para tus usuarios. Es el Ory Kratos que podrías alojar tú mismo, sin la configuración de Docker, la base de datos ni las actualizaciones.

curl -X PATCH https://api.vernesoft.com/v1/gate/identities/id_12345/metadata \
  -H "Authorization: Bearer vrn_•••" \
  -H "Content-Type: application/json" \
  -d '{"role":"admin","subscription_tier":"pro"}'

(Construirlo o alojarlo)

Escribir tu propio inicio de sesión es un riesgo. Alojar Keycloak es un trabajo.

Correo y contraseña parece un día de trabajo. Luego llegan la recuperación por correo, la verificación, un segundo factor, el inicio de sesión con Google y GitHub y una forma de terminar una sesión que ya emitiste. Escribir todo eso es un coste. Alojar un servidor de identidad general como Keycloak es otro: el servicio, su base de datos, las actualizaciones y alguien en tu equipo que lo entienda cuando falla.

Construirlo o alojarlo tú

  • ✕ Registrar aplicaciones OAuth con diez proveedores y mapear los claims de cada uno a un único registro de usuario.
  • ✕ Construir los flujos de recuperación, verificación y códigos de respaldo, y luego mantenerlos correctos.
  • ✕ Duplicar usuarios entre el servidor de identidad y tu propia base de datos, y perseguir las diferencias.
  • ✕ Consultar la base de datos en cada petición para saber si se revocó una sesión.
  • ✕ Añadir organizaciones y roles: las tablas, un flujo de invitación y una comprobación de permisos copiada en cada servicio.
  • ✕ Un script de limpieza para las cuentas que nadie vuelve a abrir, y el correo de aviso que tiene que salir antes de ejecutarlo.
  • ✕ O alojarlo: Keycloak u Ory Kratos significa un servicio, una base de datos, actualizaciones y, con Kratos, una pantalla de administración que aún tienes que escribir.

Con Nautilus

  • ✓ Diez proveedores de inicio de sesión, que se activan o desactivan desde el panel o la API.
  • ✓ Flujos de recuperación, verificación y ajustes como llamadas a la API.
  • ✓ Un campo JSON en cada usuario para tus propios datos, que se cambia con un solo PATCH.
  • ✓ Webhooks firmados para registros, inicios de sesión y cambios de cuenta, con reintentos y un registro de entregas.
  • ✓ Ory Kratos de código abierto, gestionado por nosotros, con panel y claves de API desde el primer día.
  • ✓ Organizaciones con roles; los roles del usuario viajan en un token firmado que verificas sin conexión, o los consultas con una llamada.
  • ✓ Reglas que eliminan las cuentas sin confirmar y sin uso tras un correo de aviso.

(Características principales)

Todo lo que hay detrás de la pantalla de inicio de sesión

(01)

Eliminación automática de cuentas inactivas

Cuatro reglas por proyecto, cada una desactivada hasta que la actives. Las cuentas sin confirmar se eliminan tras el plazo que fijes. Con Pro y Advanced, también las que llevan de 1 a 120 meses sin iniciar sesión, y además obtienes un recordatorio para confirmar y plazos en los roles. Cada eliminación sigue a un correo de aviso y nunca llega antes de la fecha que indica. Una vista previa te dice a cuántas personas afectaría una regla hoy. Quienes inician sesión solo con Telegram no tienen correo, así que se quedan fuera salvo que digas lo contrario.

(02)

Organizaciones, roles y comprobación de permisos

Agrupa a tus usuarios en organizaciones, define roles con nombre y permisos en cada una, y da a un usuario un rol distinto en cada organización a la que pertenece. Nautilus guarda los datos y responde a una pregunta con una llamada: ¿puede este usuario hacer esto aquí? No hace cumplir nada; lo hace tu código. Lo gestionas por la API, y el panel aún no tiene pantalla para los miembros. Incluido en todos los planes.

(03)

Tokens firmados con los roles dentro

Pide la forma firmada de una sesión y obtén un token, válido 15 minutos, que cualquiera puede verificar sin conexión con las claves públicas de tu tenant. Lista las organizaciones del usuario, cada una con el nombre del rol y sus permisos, de modo que una política de base de datos o una pasarela de API pueden decidir sin llamar a Nautilus. No se puede revocar: un rol que quitas puede seguir vivo en un token ya emitido hasta que caduque, y para todo lo que deba ser exacto, authorize y la introspección leen en vivo. Un token contiene las 10 primeras organizaciones e indica cuándo la lista está recortada.

(04)

Un registro de auditoría que lees por la API

Quién creó o revocó una clave, cambió un ajuste, dio o quitó un rol, y cuál de tus usuarios inició sesión o cambió una contraseña, con la dirección y el user agent. Nada puede editar una entrada ni borrarla antes de tiempo. Una acción y su entrada tienen éxito o fallan juntas; los inicios de sesión se escriben un momento después, cuando el servicio de identidad los comunica. Se conserva 7 días en Free, 30 en Pro y 90 en Advanced; puedes acortar el plazo, no alargarlo. Los inicios de sesión fallidos y los de Telegram no se registran.

(05)

Inicio de sesión con Google, GitHub y ocho más

GitHub, Google, GitLab, Microsoft, Discord, Facebook, LinkedIn, Slack, Twitch y Spotify. Activa cada uno por cuenta; Nautilus guarda las aplicaciones OAuth, así que no registras nada en los proveedores. Los claims llegan mapeados a una única forma de usuario.

(06)

Doble factor y códigos sin contraseña

Códigos de app autenticadora con códigos de respaldo, activados por cuenta. Cuando los exiges, la pasarela rechaza una sesión que se saltó el segundo paso. O prescinde de la contraseña: un código de un solo uso por correo, válido 15 minutos.

(07)

Sesiones que puedes ver y terminar

Lista las sesiones activas de un usuario con la dirección IP y el user agent de cada dispositivo, cuando Kratos pudo detectarlos. Termina una sesión, o todas las sesiones de una identidad, con una sola llamada.

(08)

Un campo JSON en cada usuario

Guarda en el usuario el nombre de su plan, una empresa o un indicador de incorporación. Un PATCH fusiona lo que envías y deja el resto intacto. El usuario puede leerlo, así que nada de secretos, y Nautilus no aplica lo que pongas ahí.

(09)

Webhooks firmados, con reintentos

Registros, inicios de sesión, cambios de contraseña, verificación del correo, desactivación y eliminación llegan a tu endpoint, firmados con el esquema de Svix. Las entregas fallidas reciben hasta ocho intentos en unas 28 horas, y cada intento queda registrado y se puede reenviar desde el panel.

(10)

Flujos de recuperación y verificación

La recuperación de contraseña, la verificación del correo y los cambios de ajustes funcionan como flujos cortos de API: inicia uno, envía el código o el nuevo valor. Tú pintas el formulario; Nautilus envía el correo y comprueba la respuesta.

The admin UI for Ory Kratos

(Un solo producto)

El inicio de sesión es una parte de una sola cuenta

Los webhooks, las tareas cron y el inicio de sesión con Telegram están detrás de la misma cuenta y el mismo panel. En la práctica, eso significa que los eventos de inicio de sesión llegan a tu servidor por la misma entrega firmada que cualquier otro webhook, y que cada clave de API lleva solo los scopes que marcas, así que la clave que tiene tu servicio de inicio de sesión no puede programar tareas ni enviar webhooks.

Tu app inicia un registroNautilus crea el usuarioWebhook firmado a tu servidor

(Experiencia de desarrollador)

Una llamada HTTP, cinco formas de escribirla

Las pestañas muestran la misma petición en curl y en los SDK de Node, Python, PHP y Rust. El tenant sale de la clave de API, así que nunca pasas un id de cuenta.

curl -X PATCH https://api.vernesoft.com/v1/gate/identities/id_12345 \
  -H "Authorization: Bearer $VERNE_GATE_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    { "op": "replace", "path": "/traits/locale", "value": "fr" }
  ]'

(Cómo nos comparamos)

¿Eligiendo entre proveedores?

Cuatro páginas ponen a Nautilus junto a Auth0, Clerk, Ory Network y Logto: quién debería elegirlos, quién debería elegirnos, sus precios con la fecha en que los consultamos y dónde están sus datos. Las páginas están en inglés.

(FAQ)

Preguntas frecuentes

¿Es un reemplazo directo de Keycloak?

No. Keycloak es un servidor de identidad general con SAML, federación LDAP, páginas de inicio de sesión personalizables y consola de administración. Nautilus hace un trabajo más estrecho: inicio de sesión y cuentas de usuario para los clientes de un producto SaaS, detrás de una API HTTP sin pantallas propias. Si necesitas SAML o inicio de sesión único para clientes empresariales, quédate con Keycloak. Si lo usas para el inicio de sesión con contraseña, Google y GitHub, la recuperación, el doble factor y los roles dentro de las organizaciones de tus clientes, esta es la parte que puedes dejar de alojar. Las organizaciones, los roles y los miembros se gestionan por la API, y el panel aún no tiene pantalla para los miembros. Los roles de un usuario vuelven en el token firmado, en la introspección del token y en la comprobación de sesión.

¿Tengo que seguir construyendo pantallas de inicio de sesión?

Sí, las pantallas. Nautilus devuelve cada paso como respuesta de API y tu código envía lo que escribió el usuario, así que los formularios se ven como el resto de tu producto. Lo que dejas de construir es todo lo que hay detrás: almacenamiento de contraseñas, correos de recuperación y verificación, sesiones, inicios de sesión con proveedores. Si quieres una página de inicio de sesión alojada y personalizable, Keycloak la tiene y esto no.

¿Cómo verifico un webhook?

Cada entrega lleva las cabeceras svix-id, svix-timestamp y svix-signature: una firma HMAC-SHA256 sobre el id, la marca de tiempo y el cuerpo en bruto. Compruébala con la biblioteca oficial de código abierto de Svix, que existe para Node, Python, Go, Rust, PHP, Java, Ruby, C# y Kotlin, en lugar de escribir la comprobación tú mismo. Las entregas fallidas se reintentan y se pueden reenviar desde el panel.

¿Cuánto cuesta?

Gratis hasta 1.000 usuarios activos al mes, sin tarjeta. Un usuario activo es quien inicia sesión al menos una vez en un mes natural, sin importar cuántas; las personas que creas por la API y nunca inician sesión no cuentan. Pro cuesta 99 € al mes por 10.000 usuarios activos y Advanced 199 € por 50.000. Los roles y las organizaciones vienen con todos los planes, Free incluido, y el registro de auditoría se conserva 7, 30 o 90 días según el plan; ninguno es un extra con precio propio. Al pasar el límite el inicio de sesión nunca se bloquea: te escribimos al 80 % y al 100 %, y tienes tiempo para pasar a un plan superior antes de que se rechacen los registros nuevos. La lista actual está en la página de precios.

¿Qué hay por debajo?

Ory Kratos, el servidor de identidad de código abierto, como un único despliegue compartido para todas las cuentas. El panel, las claves de API, los webhooks, las organizaciones y los roles, los tokens firmados y la comprobación que mantiene a los usuarios de una cuenta lejos de los de otra son nuestros, por encima. El precio de compartirlo: el esquema de usuario está fijado a un correo, un idioma y tu campo JSON, y no puedes cambiar la configuración propia de Kratos. El motor es abierto: si esto se te queda corto, el mismo software corre en tus propios servidores. La capa que construimos por encima no viene contigo. Para migrar a otro sitio, pide al soporte una exportación de todos tus usuarios con sus hashes de contraseña, enlaces sociales, metadatos, organizaciones y roles: recibes un archivo cifrado en un plazo de 7 días, en un formato que acepta nuestra propia importación y que se corresponde con Ory Kratos.

¿Dónde se almacenan los datos de identidad?

Las identidades, las sesiones y tus metadatos personalizados se almacenan en bases de datos de nuestros propios servidores en Francia, en OVHcloud. Los correos salientes, como los códigos de inicio de sesión y de recuperación, se entregan a través de Resend, un proveedor estadounidense, con las cláusulas contractuales tipo de la Comisión Europea.

¿Cómo funcionan los roles y la comprobación de permisos?

Creas una organización, defines roles en ella (un rol es un nombre y una lista de permisos como invoices:write) y añades un usuario a la organización con un rol. Para comprobar, llama a authorize con el usuario, el permiso y la organización: obtienes permitido o no, con un motivo y el rol. O lee los roles del token firmado y deja que decida tu política de base de datos. Los permisos se comparan de forma exacta, sin comodines. Un rol que alguien tiene no se puede eliminar hasta que esa persona se mueva a otro. Una pertenencia puede llevar un plazo y ser retirada por una regla cuando vence. Cada cambio de un rol o de una pertenencia queda en el registro de auditoría.

¿Qué no hace?

Sin SAML ni inicio de sesión único empresarial, sin página de inicio de sesión alojada, sin componentes ya hechos, sin passkeys, sin códigos SMS y sin Sign in with Apple. No es un proveedor OAuth ni OpenID para terceros: el token firmado está para verificarse, y Nautilus no tiene endpoint de autorización. Los correos que enviamos por ti salen de la dirección de Verne y están escritos en el idioma del usuario (seis idiomas, según su locale). Los SDK oficiales cubren Node, Python, PHP y Rust.

¿Cómo se compara con Auth0, Clerk, Ory Network o Logto?

Hay una página de cada uno, con sus precios tomados de sus propios sitios y la fecha en que los consultamos. En resumen: ellos van por delante en pantallas ya hechas, inicio de sesión único empresarial y número de métodos de inicio de sesión. Nosotros vamos por delante en reglas que eliminan cuentas sin uso, en roles y organizaciones sin precio aparte y, frente a Clerk, en dónde están los datos. Lee las páginas y decide. Las páginas están en inglés.

(Empieza hoy)

Quédate con tus pantallas de inicio de sesión. Olvídate del servidor que hay detrás.

Registro, inicio de sesión, recuperación y doble factor para tus clientes, desde una sola API HTTP. Crea una cuenta y tus primeros 1.000 usuarios activos de cada mes son gratis.

Lo que conservas

La autenticación es donde suele empezar la dependencia, porque quien posee el registro de usuario acaba moldeando el modelo de datos a su alrededor. Nautilus no te pide eso. Quién puede iniciar sesión vive aquí; los registros de tus clientes, los pedidos y todo lo demás se quedan en el Postgres, MySQL o Mongo que ya usas. No hay un esquema nuestro al que tus tablas tengan que ajustarse.

Por debajo está Ory Kratos, de código abierto y sin modificar. Nosotros nos encargamos del servidor y de las actualizaciones, y mantenemos ese despliegue deliberadamente aburrido, pero el motor es uno que podrías ejecutar tú mismo. Nombramos el motor en lugar de esconderlo. Para migrar a otro sitio, pide al soporte una exportación de todos tus usuarios con sus hashes de contraseña, enlaces sociales, metadatos, organizaciones y roles: recibes un archivo cifrado en un plazo de 7 días, en un formato que acepta nuestra propia importación y que se corresponde con Ory Kratos.

Corre en nuestros propios servidores en Francia, que es la primera pregunta que hacen muchos compradores europeos. El plan gratuito cubre 1.000 usuarios activos al mes sin cargo por solicitud, así que una tarde basta para saber si esto encaja con la pila que ya tienes.