(Nautilus · Connexion et utilisateurs)

Connexion et utilisateurs pour votre SaaS Ory Kratos open source, exploité pour vous. Sans interface : les écrans restent les vôtres.

Inscription, connexion, récupération du mot de passe, vérification de l'e-mail et double authentification, sous forme d'appels d'API. Vous dessinez les écrans ; Nautilus fait tourner ce qu'il y a derrière : sessions, dix fournisseurs de connexion, organisations avec rôles, webhooks signés, un journal d'audit et un tableau de bord pour vos utilisateurs. C'est l'Ory Kratos que vous pourriez héberger vous-même, sans la configuration Docker, la base de données ni les mises à jour.

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"}'

(Construire ou héberger)

Écrire sa propre connexion est un risque. Héberger Keycloak est un travail.

E-mail et mot de passe, cela ressemble à une journée de travail. Puis viennent la récupération par e-mail, la vérification, un second facteur, la connexion Google et GitHub, et un moyen de mettre fin à une session déjà émise. Écrire tout cela est un coût. Héberger un serveur d'identité généraliste comme Keycloak en est un autre : le service, sa base de données, les mises à jour, et quelqu'un dans votre équipe qui le comprend quand il tombe en panne.

Construire ou héberger soi-même

  • ✕ Enregistrer des applications OAuth auprès de dix fournisseurs et faire correspondre les claims de chacun à un seul profil utilisateur.
  • ✕ Construire les flux de récupération, de vérification et de codes de secours, puis les maintenir corrects.
  • ✕ Recopier les utilisateurs entre le serveur d'identité et votre propre base, et courir après les écarts.
  • ✕ Interroger la base à chaque requête pour savoir si une session a été révoquée.
  • ✕ Ajouter des organisations et des rôles : les tables, un parcours d'invitation, et un contrôle de permission recopié dans chaque service.
  • ✕ Un script de nettoyage pour les comptes que plus personne n'ouvre, et l'e-mail d'avertissement qui doit partir avant qu'il s'exécute.
  • ✕ Ou l'héberger : Keycloak ou Ory Kratos, c'est un service, une base de données, des mises à jour et, avec Kratos, un écran d'administration qu'il vous reste à écrire.

Avec Nautilus

  • ✓ Dix fournisseurs de connexion, activés ou désactivés depuis le tableau de bord ou l'API.
  • ✓ Flux de récupération, de vérification et de paramètres sous forme d'appels d'API.
  • ✓ Un champ JSON sur chaque utilisateur pour vos propres données, modifié par un seul PATCH.
  • ✓ Webhooks signés pour les inscriptions, les connexions et les changements de compte, avec nouvelles tentatives et journal de livraison.
  • ✓ Ory Kratos open source, exploité pour vous, avec un tableau de bord et des clés d'API dès le premier jour.
  • ✓ Des organisations avec rôles ; les rôles de l'utilisateur voyagent dans un jeton signé que vous vérifiez hors ligne, ou vous les demandez en un appel.
  • ✓ Des règles qui suppriment les comptes non confirmés et inutilisés après un e-mail d'avertissement.

(Fonctionnalités principales)

Tout ce qu'il y a derrière l'écran de connexion

(01)

Suppression automatique des comptes inactifs

Quatre règles par projet, chacune désactivée tant que vous ne l'activez pas. Les comptes non confirmés sont supprimés après le délai que vous fixez. Avec Pro et Advanced, il en va de même des comptes sans connexion depuis 1 à 120 mois, et vous obtenez aussi un rappel pour confirmer et des échéances sur les rôles. Chaque suppression suit un e-mail d'avertissement et n'intervient jamais avant la date qu'il indique. Un aperçu vous dit combien de personnes une règle toucherait aujourd'hui. Les personnes qui se connectent uniquement avec Telegram n'ont pas d'adresse e-mail : elles sont laissées de côté, sauf si vous en décidez autrement.

Lire le guide RGPD

(02)

Organisations, rôles et contrôles de permission

Regroupez vos utilisateurs en organisations, définissez dans chacune des rôles nommés avec leurs permissions, et donnez à un utilisateur un rôle différent dans chaque organisation à laquelle il appartient. Nautilus conserve les données et répond à une question en un appel : cet utilisateur peut-il faire cela ici ? Il n'applique rien lui-même ; c'est votre code qui le fait. Vous le gérez par l'API, et le tableau de bord n'a pas encore d'écran pour les membres. Inclus dans toutes les offres.

(03)

Des jetons signés qui portent les rôles

Demandez la forme signée d'une session et obtenez un jeton, valable 15 minutes, que n'importe qui peut vérifier hors ligne avec les clés publiques de votre tenant. Il liste les organisations de l'utilisateur, chacune avec le nom du rôle et ses permissions, de sorte qu'une politique de base de données ou une passerelle d'API peut décider sans appeler Nautilus. Il ne peut pas être révoqué : un rôle retiré peut survivre dans un jeton déjà émis jusqu'à son expiration, et pour tout ce qui doit être exact, authorize et l'introspection lisent en direct. Un jeton contient les 10 premières organisations et signale quand la liste est tronquée.

(04)

Un journal d'audit que vous lisez par l'API

Qui a créé ou révoqué une clé, modifié un réglage, attribué ou retiré un rôle, et lequel de vos utilisateurs s'est connecté ou a changé de mot de passe, avec l'adresse et le user agent. Rien ne peut modifier une entrée ni la supprimer avant l'heure. Une action et son entrée réussissent ou échouent ensemble ; les connexions sont écrites un instant plus tard, quand le service d'identité les signale. Conservé 7 jours avec Free, 30 avec Pro, 90 avec Advanced ; vous pouvez raccourcir la durée, pas l'allonger. Les connexions échouées et les connexions Telegram ne sont pas enregistrées.

(05)

Connexion avec Google, GitHub et huit autres

GitHub, Google, GitLab, Microsoft, Discord, Facebook, LinkedIn, Slack, Twitch et Spotify. Activez chacun par compte ; Nautilus détient les applications OAuth, vous n'enregistrez donc rien auprès des fournisseurs. Les claims reviennent ramenés à une seule forme d'utilisateur.

(06)

Double authentification et codes sans mot de passe

Codes d'application d'authentification avec codes de secours, activés par compte. Quand vous les exigez, la passerelle refuse une session qui a sauté la seconde étape. Ou supprimez le mot de passe : un code à usage unique par e-mail, valable 15 minutes.

(07)

Des sessions que vous voyez et que vous terminez

Listez les sessions actives d'un utilisateur avec l'adresse IP et le user agent de chaque appareil, quand Kratos a pu les détecter. Terminez une session, ou toutes les sessions d'une identité, en un seul appel.

(08)

Un champ JSON sur chaque utilisateur

Gardez sur l'utilisateur le nom de son offre, une société ou un indicateur d'intégration. Un PATCH fusionne ce que vous envoyez et laisse le reste intact. L'utilisateur peut le lire : pas de secrets, donc, et Nautilus n'applique pas ce que vous y mettez.

(09)

Webhooks signés, avec nouvelles tentatives

Inscriptions, connexions, changements de mot de passe, vérification de l'e-mail, désactivation et suppression arrivent sur votre endpoint, signés selon le schéma Svix. Les livraisons échouées reçoivent jusqu'à huit tentatives sur environ 28 heures, et chaque tentative est journalisée et peut être renvoyée depuis le tableau de bord.

(10)

Flux de récupération et de vérification

La récupération du mot de passe, la vérification de l'e-mail et les changements de paramètres passent par de courts flux d'API : on en démarre un, on envoie le code ou la nouvelle valeur. Vous affichez le formulaire ; Nautilus envoie l'e-mail et vérifie la réponse.

The admin UI for Ory Kratos

(Un seul produit)

La connexion est une partie d'un seul compte

Les webhooks, les tâches cron et la connexion Telegram se trouvent derrière le même compte et le même tableau de bord. Concrètement, les événements de connexion arrivent sur votre serveur par la même livraison signée que n'importe quel autre webhook, et chaque clé d'API ne porte que les scopes que vous cochez : la clé que détient votre service de connexion ne peut donc ni planifier de tâches ni envoyer de webhooks.

Votre app lance une inscriptionNautilus crée l'utilisateurWebhook signé vers votre serveur

(Expérience développeur)

Un appel HTTP, cinq façons de l'écrire

Les onglets montrent la même requête en curl et dans les SDK Node, Python, PHP et Rust. Le tenant vient de la clé d'API : vous ne passez jamais d'identifiant de compte.

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" }
  ]'

(Comparatif)

Vous hésitez entre plusieurs fournisseurs ?

Quatre pages placent Nautilus à côté d'Auth0, Clerk, Ory Network et Logto : qui devrait les choisir, qui devrait nous choisir, leurs prix avec la date de notre relevé, et où vivent leurs données. Les pages sont en anglais.

(FAQ)

Questions fréquentes

Est-ce un remplaçant direct de Keycloak ?

Non. Keycloak est un serveur d'identité généraliste avec SAML, fédération LDAP, pages de connexion personnalisables et console d'administration. Nautilus fait un travail plus étroit : la connexion et les comptes utilisateurs pour les clients d'un produit SaaS, derrière une API HTTP sans écrans propres. Si vous avez besoin de SAML ou d'authentification unique pour des clients d'entreprise, gardez Keycloak. Si vous l'utilisez pour la connexion par mot de passe, Google et GitHub, la récupération, la double authentification et les rôles au sein des organisations de vos clients, c'est la partie que vous pouvez cesser d'héberger. Les organisations, les rôles et les membres se gèrent par l'API, et le tableau de bord n'a pas encore d'écran pour les membres. Les rôles d'un utilisateur reviennent dans le jeton signé, dans l'introspection du jeton et dans la vérification de session.

Dois-je encore construire des écrans de connexion ?

Oui, les écrans. Nautilus renvoie chaque étape sous forme de réponse d'API et votre code envoie ce que l'utilisateur a saisi : les formulaires ressemblent au reste de votre produit. Ce que vous cessez de construire, c'est tout ce qu'il y a derrière : stockage des mots de passe, e-mails de récupération et de vérification, sessions, connexions par fournisseur. Si vous voulez une page de connexion hébergée et personnalisable, Keycloak en a une et ceci n'en a pas.

Comment vérifier un webhook ?

Chaque livraison porte les en-têtes svix-id, svix-timestamp et svix-signature : une signature HMAC-SHA256 calculée sur l'identifiant, l'horodatage et le corps brut. Vérifiez-la avec la bibliothèque Svix officielle et open source, qui existe pour Node, Python, Go, Rust, PHP, Java, Ruby, C# et Kotlin, plutôt que d'écrire la vérification vous-même. Les livraisons échouées sont retentées et peuvent être renvoyées depuis le tableau de bord.

Combien ça coûte ?

Gratuit jusqu'à 1 000 utilisateurs actifs par mois, sans carte bancaire. Un utilisateur actif est une personne qui se connecte au moins une fois dans un mois calendaire, quel que soit le nombre de fois ; les personnes que vous créez par l'API et qui ne se connectent jamais ne sont pas comptées. Pro coûte 99 € par mois pour 10 000 utilisateurs actifs et Advanced 199 € pour 50 000. Les rôles et les organisations sont dans toutes les offres, Free comprise, et le journal d'audit est conservé 7, 30 ou 90 jours selon l'offre ; ni l'un ni l'autre n'est une option avec son propre prix. Au-delà de votre limite, la connexion n'est jamais bloquée : nous vous écrivons à 80 % et à 100 %, et vous avez le temps de passer à l'offre supérieure avant que les nouvelles inscriptions soient refusées. La liste à jour est sur la page des tarifs.

Qu'est-ce qui tourne en dessous ?

Ory Kratos, le serveur d'identité open source, en un seul déploiement partagé pour tous les comptes. Le tableau de bord, les clés d'API, les webhooks, les organisations et les rôles, les jetons signés et le contrôle qui tient les utilisateurs d'un compte à l'écart de ceux d'un autre sont les nôtres, par-dessus. Le prix du partage : le schéma utilisateur est fixé à un e-mail, une langue et votre champ JSON, et vous ne pouvez pas modifier la configuration propre de Kratos. Le moteur est ouvert : si cela ne suffit plus, le même logiciel tourne sur vos propres serveurs. La couche que nous avons construite par-dessus ne vous suit pas. Pour migrer ailleurs, demandez au support un export de tous vos utilisateurs avec leurs hachages de mot de passe, leurs comptes sociaux liés, leurs métadonnées, leurs organisations et leurs rôles : vous recevez un fichier chiffré sous 7 jours, dans un format que notre propre import accepte et qui correspond à Ory Kratos.

Où sont stockées les données d'identité ?

Les identités, les sessions et vos métadonnées personnalisées sont stockées dans des bases de données sur nos propres serveurs en France, chez OVHcloud. Les e-mails sortants, comme les codes de connexion et de récupération, sont remis par Resend, un prestataire américain, dans le cadre des clauses contractuelles types de la Commission européenne.

Comment fonctionnent les rôles et les contrôles de permission ?

Vous créez une organisation, vous y définissez des rôles (un rôle est un nom et une liste de permissions comme invoices:write), puis vous ajoutez un utilisateur à l'organisation avec un rôle. Pour vérifier, appelez authorize avec l'utilisateur, la permission et l'organisation : vous obtenez autorisé ou non, avec une raison et le rôle. Ou lisez les rôles dans le jeton signé et laissez votre politique de base de données décider. Les permissions sont comparées exactement, sans jokers. Un rôle que quelqu'un détient ne peut pas être supprimé tant que cette personne n'a pas été déplacée. Une appartenance peut porter une échéance et être retirée par une règle quand elle passe. Chaque changement de rôle ou d'appartenance figure dans le journal d'audit.

Que ne fait-il pas ?

Pas de SAML ni d'authentification unique d'entreprise, pas de page de connexion hébergée, pas de composants prêts à l'emploi, pas de passkeys, pas de codes SMS et pas de Sign in with Apple. Ce n'est pas un fournisseur OAuth ou OpenID pour des tiers : le jeton signé est fait pour être vérifié, et Nautilus n'a pas de point d'autorisation. Les e-mails que nous envoyons pour vous partent de l'adresse de Verne et sont rédigés dans la langue de l'utilisateur (six langues, d'après son locale). Les SDK officiels couvrent Node, Python, PHP et Rust.

Comment se compare-t-il à Auth0, Clerk, Ory Network ou Logto ?

Il y a une page pour chacun, avec leurs prix tirés de leurs propres sites et la date de notre relevé. En bref : ils sont en avance sur les écrans prêts à l'emploi, l'authentification unique d'entreprise et le nombre de méthodes de connexion. Nous sommes en avance sur les règles qui suppriment les comptes inutilisés, sur les rôles et les organisations sans prix à part et, face à Clerk, sur l'endroit où se trouvent les données. Lisez les pages, puis décidez. Les pages sont en anglais.

(Commencez aujourd'hui)

Gardez vos écrans de connexion. Laissez-nous le serveur derrière.

Inscription, connexion, récupération et double authentification pour vos clients, depuis une seule API HTTP. Créez un compte et vos 1 000 premiers utilisateurs actifs de chaque mois sont offerts.

Ce que vous gardez

C'est avec l'authentification que la dépendance commence d'ordinaire, parce que celui qui détient le dossier utilisateur finit par façonner le modèle de données autour de lui. Nautilus ne vous le demande pas. Qui peut se connecter vit ici ; les dossiers de vos clients, les commandes et tout le reste restent dans le Postgres, MySQL ou Mongo que vous exploitez déjà. Il n'y a pas de schéma à nous auquel vos tables doivent se plier.

En dessous, il y a Ory Kratos, open source et non modifié. Nous exploitons le serveur et les mises à jour, et nous gardons ce déploiement volontairement ennuyeux, mais le moteur est un moteur que vous pourriez exploiter vous-même. Nous nommons le moteur au lieu de le cacher. Pour migrer ailleurs, demandez au support un export de tous vos utilisateurs avec leurs hachages de mot de passe, leurs comptes sociaux liés, leurs métadonnées, leurs organisations et leurs rôles : vous recevez un fichier chiffré sous 7 jours, dans un format que notre propre import accepte et qui correspond à Ory Kratos.

Il tourne sur nos propres serveurs en France, ce qui est la première question que posent beaucoup d'acheteurs européens. L'offre gratuite couvre 1 000 utilisateurs actifs par mois, sans supplément à la requête : un après-midi suffit donc pour savoir si cela s'intègre à la pile que vous avez déjà.