(Nautilus · Accesso e utenti)

Accesso e utenti per il tuo SaaS Ory Kratos open source, gestito per te. Headless, così le schermate restano tue.

Registrazione, accesso, recupero della password, verifica dell'email e autenticazione a due fattori, come chiamate API. Tu disegni le schermate; Nautilus gestisce ciò che c'è dietro: sessioni, dieci provider di accesso, organizzazioni con ruoli, webhook firmati, un registro di audit e una dashboard per i tuoi utenti. È l'Ory Kratos che potresti ospitare tu stesso, senza la configurazione Docker, il database e gli aggiornamenti.

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

(Costruirlo o ospitarlo)

Scrivere il proprio accesso è una responsabilità. Ospitare Keycloak è un lavoro.

Email e password sembrano una giornata di lavoro. Poi arrivano il recupero via email, la verifica, un secondo fattore, l'accesso con Google e GitHub e un modo per chiudere una sessione già emessa. Scrivere tutto questo è un costo. Ospitare un identity server generico come Keycloak è un altro: il servizio, il suo database, gli aggiornamenti e qualcuno nel tuo team che lo capisca quando si rompe.

Costruirlo o ospitarlo da te

  • ✕ Registrare app OAuth con dieci provider e mappare i claim di ciascuno in un unico record utente.
  • ✕ Costruire i flussi di recupero, verifica e codici di backup, e poi mantenerli corretti.
  • ✕ Replicare gli utenti tra l'identity server e il tuo database, e inseguire le differenze.
  • ✕ Controllare il database a ogni richiesta per sapere se una sessione è stata revocata.
  • ✕ Aggiungere organizzazioni e ruoli: le tabelle, un flusso di invito e un controllo dei permessi copiato in ogni servizio.
  • ✕ Uno script di pulizia per gli account che nessuno riapre, e l'e-mail di avviso che deve partire prima che giri.
  • ✕ Oppure ospitarlo: Keycloak o Ory Kratos significano un servizio, un database, aggiornamenti e, con Kratos, una schermata di amministrazione che devi ancora scrivere.

Con Nautilus

  • ✓ Dieci provider di accesso, attivabili o disattivabili dalla dashboard o dall'API.
  • ✓ Flussi di recupero, verifica e impostazioni come chiamate API.
  • ✓ Un campo JSON su ogni utente per i tuoi dati, che si modifica con un solo PATCH.
  • ✓ Webhook firmati per registrazioni, accessi e modifiche dell'account, con nuovi tentativi e un registro delle consegne.
  • ✓ Ory Kratos open source, gestito per te, con dashboard e chiavi API dal primo giorno.
  • ✓ Organizzazioni con ruoli; i ruoli dell'utente viaggiano in un token firmato che verifichi offline, oppure li chiedi con una chiamata.
  • ✓ Regole che eliminano gli account non confermati e inutilizzati dopo un'e-mail di avviso.

(Funzionalità principali)

Tutto ciò che sta dietro la schermata di accesso

(01)

Eliminazione automatica degli account inattivi

Quattro regole per progetto, ciascuna disattivata finché non la attivi. Gli account non confermati vengono eliminati dopo il termine che imposti. Con Pro e Advanced lo stesso vale per quelli che non accedono da 1 a 120 mesi, e ottieni anche un promemoria per confermare e scadenze sui ruoli. Ogni eliminazione segue un'e-mail di avviso e non arriva mai prima della data indicata. Un'anteprima ti dice quante persone una regola coinvolgerebbe oggi. Chi accede solo con Telegram non ha un indirizzo e-mail e viene lasciato stare, salvo che tu decida altrimenti.

(02)

Organizzazioni, ruoli e controlli dei permessi

Raggruppa i tuoi utenti in organizzazioni, definisci in ciascuna ruoli con nome e permessi e dai a un utente un ruolo diverso in ogni organizzazione di cui fa parte. Nautilus conserva i dati e risponde a una domanda con una chiamata: questo utente può fare questa cosa qui? Non fa rispettare nulla; lo fa il tuo codice. Lo gestisci tramite API e la dashboard non ha ancora una schermata per i membri. Incluso in ogni piano.

(03)

Token firmati con i ruoli dentro

Chiedi la forma firmata di una sessione e ottieni un token, valido 15 minuti, che chiunque può verificare offline con le chiavi pubbliche del tuo tenant. Elenca le organizzazioni dell'utente, ciascuna con il nome del ruolo e i suoi permessi, così una policy del database o un API gateway può decidere senza chiamare Nautilus. Non può essere revocato: un ruolo che rimuovi può sopravvivere in un token già emesso fino alla scadenza, e per tutto ciò che deve essere esatto authorize e l'introspezione leggono dal vivo. Un token contiene le prime 10 organizzazioni e segnala quando l'elenco è troncato.

(04)

Un registro di audit che leggi tramite API

Chi ha creato o revocato una chiave, cambiato un'impostazione, assegnato o tolto un ruolo, e quale dei tuoi utenti ha effettuato l'accesso o cambiato password, con indirizzo e user agent. Nulla può modificare una voce o eliminarla in anticipo. Un'azione e la sua voce riescono o falliscono insieme; gli accessi vengono scritti un attimo dopo, quando il servizio di identità li segnala. Conservato 7 giorni su Free, 30 su Pro, 90 su Advanced; puoi accorciare il periodo, non allungarlo. Gli accessi falliti e quelli con Telegram non vengono registrati.

(05)

Accesso con Google, GitHub e altri otto

GitHub, Google, GitLab, Microsoft, Discord, Facebook, LinkedIn, Slack, Twitch e Spotify. Attiva ciascuno per account; Nautilus custodisce le app OAuth, quindi non registri nulla presso i provider. I claim tornano mappati in un'unica forma di utente.

(06)

Due fattori e codici senza password

Codici da app di autenticazione con codici di backup, attivati per account. Quando li richiedi, il gateway rifiuta una sessione che ha saltato il secondo passaggio. Oppure elimina la password: un codice monouso via email, valido 15 minuti.

(07)

Sessioni che puoi vedere e chiudere

Elenca le sessioni attive di un utente con l'indirizzo IP e lo user agent di ogni dispositivo, quando Kratos è riuscito a rilevarli. Chiudi una sessione, o tutte le sessioni di un'identità, con una sola chiamata.

(08)

Un campo JSON su ogni utente

Tieni sull'utente il nome del piano, un'azienda o un flag di onboarding. Un PATCH unisce ciò che invii e lascia intatto il resto. L'utente può leggerlo, quindi niente segreti, e Nautilus non applica ciò che ci metti.

(09)

Webhook firmati, con nuovi tentativi

Registrazioni, accessi, cambi di password, verifica dell'email, disattivazione ed eliminazione arrivano al tuo endpoint, firmati con lo schema Svix. Le consegne fallite ricevono fino a otto tentativi in circa 28 ore, e ogni tentativo viene registrato e può essere reinviato dalla dashboard.

(10)

Flussi di recupero e verifica

Recupero della password, verifica dell'email e modifiche alle impostazioni funzionano come brevi flussi API: ne avvii uno, invii il codice o il nuovo valore. Tu mostri il modulo; Nautilus invia l'email e controlla la risposta.

The admin UI for Ory Kratos

(Un solo prodotto)

L'accesso è una parte di un solo account

Webhook, job cron e accesso con Telegram stanno dietro lo stesso account e la stessa dashboard. In pratica, gli eventi di accesso raggiungono il tuo server con la stessa consegna firmata di qualsiasi altro webhook, e ogni chiave API porta solo gli scope che selezioni: la chiave che usa il tuo servizio di accesso non può quindi pianificare job né inviare webhook.

La tua app avvia una registrazioneNautilus crea l'utenteWebhook firmato al tuo server

(Esperienza sviluppatore)

Una chiamata HTTP, cinque modi di scriverla

Le schede mostrano la stessa richiesta in curl e negli SDK Node, Python, PHP e Rust. Il tenant arriva dalla chiave API, quindi non passi mai un id dell'account.

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

(Il confronto)

Stai scegliendo tra più fornitori?

Quattro pagine mettono Nautilus accanto ad Auth0, Clerk, Ory Network e Logto: chi dovrebbe scegliere loro, chi dovrebbe scegliere noi, i loro prezzi con la data in cui li abbiamo controllati e dove risiedono i loro dati. Le pagine sono in inglese.

(FAQ)

Domande frequenti

È un sostituto diretto di Keycloak?

No. Keycloak è un identity server generico con SAML, federazione LDAP, pagine di accesso personalizzabili e console di amministrazione. Nautilus fa un lavoro più stretto: accesso e account utente per i clienti di un prodotto SaaS, dietro un'API HTTP senza schermate proprie. Se ti serve SAML o il single sign-on per clienti enterprise, tieni Keycloak. Se lo usi per l'accesso con password, Google e GitHub, il recupero, i due fattori e i ruoli all'interno delle organizzazioni dei tuoi clienti, questa è la parte che puoi smettere di ospitare. Organizzazioni, ruoli e membri si gestiscono tramite l'API e la dashboard non ha ancora una schermata per i membri. I ruoli di un utente tornano nel token firmato, nell'introspezione del token e nel controllo della sessione.

Devo ancora costruire le schermate di accesso?

Sì, le schermate. Nautilus restituisce ogni passaggio come risposta API e il tuo codice invia ciò che l'utente ha digitato, così i moduli sembrano il resto del tuo prodotto. Ciò che smetti di costruire è tutto quello che c'è dietro: archiviazione delle password, email di recupero e verifica, sessioni, accessi con i provider. Se vuoi una pagina di accesso ospitata e personalizzabile, Keycloak ce l'ha e questo no.

Come verifico un webhook?

Ogni consegna porta gli header svix-id, svix-timestamp e svix-signature: una firma HMAC-SHA256 su id, timestamp e body grezzo. Controllala con la libreria Svix ufficiale e open source, che esiste per Node, Python, Go, Rust, PHP, Java, Ruby, C# e Kotlin, invece di scrivere il controllo da te. Le consegne fallite vengono ritentate e possono essere reinviate dalla dashboard.

Quanto costa?

Gratis fino a 1.000 utenti attivi al mese, senza carta. Un utente attivo è chi accede almeno una volta in un mese di calendario, per quante volte sia; le persone che crei tramite API e non accedono mai non vengono contate. Pro costa 99 € al mese per 10.000 utenti attivi e Advanced 199 € per 50.000. Ruoli e organizzazioni sono in ogni piano, Free compreso, e il registro di audit è conservato 7, 30 o 90 giorni a seconda del piano; nessuno dei due è un extra con un prezzo a sé. Oltre il limite l'accesso non viene mai bloccato: ti scriviamo all'80 % e al 100 %, e hai tempo per passare a un piano superiore prima che le nuove registrazioni vengano rifiutate. L'elenco aggiornato è nella pagina dei prezzi.

Cosa gira sotto?

Ory Kratos, l'identity server open source, come un unico deployment condiviso per tutti gli account. La dashboard, le chiavi API, i webhook, le organizzazioni e i ruoli, i token firmati e il controllo che tiene gli utenti di un account lontani da quelli di un altro sono nostri, sopra. Il prezzo della condivisione: lo schema utente è fissato a un'email, una lingua e il tuo campo JSON, e non puoi cambiare la configurazione propria di Kratos. Il motore è aperto: se questo non ti basta più, lo stesso software gira sui tuoi server. Lo strato che abbiamo costruito sopra non viene con te. Per migrare altrove, chiedi al supporto un'esportazione di tutti i tuoi utenti con hash delle password, collegamenti social, metadati, organizzazioni e ruoli: ricevi un file cifrato entro 7 giorni, in un formato che il nostro import accetta e che corrisponde a Ory Kratos.

Dove sono conservati i dati di identità?

Identità, sessioni e i tuoi metadati personalizzati sono memorizzati in database sui nostri server in Francia, presso OVHcloud. Le email in uscita, come i codici di accesso e di recupero, sono consegnate tramite Resend, un fornitore statunitense, con le clausole contrattuali tipo della Commissione europea.

Come funzionano i ruoli e i controlli dei permessi?

Crei un'organizzazione, ci definisci dei ruoli (un ruolo è un nome e un elenco di permessi come invoices:write) e aggiungi un utente all'organizzazione con un ruolo. Per verificare, chiama authorize con l'utente, il permesso e l'organizzazione: ottieni consentito o no, con un motivo e il ruolo. Oppure leggi i ruoli dal token firmato e lascia decidere alla policy del database. I permessi vengono confrontati esattamente, senza caratteri jolly. Un ruolo che qualcuno ricopre non può essere eliminato finché quella persona non viene spostata. Un'appartenenza può avere una scadenza ed essere rimossa da una regola quando passa. Ogni modifica a un ruolo o a un'appartenenza è nel registro di audit.

Cosa non fa?

Niente SAML o single sign-on enterprise, nessuna pagina di accesso ospitata, nessun componente già pronto, niente passkey, niente codici SMS e niente Sign in with Apple. Non è un provider OAuth o OpenID per terze parti: il token firmato serve a essere verificato e Nautilus non ha un endpoint di autorizzazione. Le e-mail che inviamo per te partono dall'indirizzo di Verne e sono scritte nella lingua dell'utente (sei lingue, secondo il suo locale). Gli SDK ufficiali coprono Node, Python, PHP e Rust.

Come si confronta con Auth0, Clerk, Ory Network o Logto?

C'è una pagina per ciascuno, con i prezzi dai loro siti e la data in cui li abbiamo controllati. In breve: loro sono avanti su schermate già pronte, single sign-on enterprise e numero di metodi di accesso. Noi siamo avanti sulle regole che eliminano gli account inutilizzati, su ruoli e organizzazioni senza prezzo a parte e, rispetto a Clerk, su dove si trovano i dati. Leggi le pagine, poi decidi. Le pagine sono in inglese.

(Inizia oggi)

Tieni le tue schermate di accesso. Lascia a noi il server dietro.

Registrazione, accesso, recupero e doppio fattore per i tuoi clienti, da un'unica API HTTP. Crea un account e i tuoi primi 1.000 utenti attivi di ogni mese sono gratuiti.

Che cosa resta tuo

È con l'autenticazione che di solito comincia la dipendenza, perché chi possiede il record utente finisce per modellare il modello dei dati attorno a esso. Nautilus non te lo chiede. Chi può accedere vive qui; i record dei tuoi clienti, gli ordini e tutto il resto restano nel Postgres, MySQL o Mongo che già usi. Non c'è uno schema nostro a cui le tue tabelle debbano adattarsi.

Sotto c'è Ory Kratos, open source e non modificato. Gestiamo noi il server e gli aggiornamenti, e teniamo quel deployment volutamente noioso, ma il motore è uno che potresti far girare tu. Nominiamo il motore invece di nasconderlo. Per migrare altrove, chiedi al supporto un'esportazione di tutti i tuoi utenti con hash delle password, collegamenti social, metadati, organizzazioni e ruoli: ricevi un file cifrato entro 7 giorni, in un formato che il nostro import accetta e che corrisponde a Ory Kratos.

Gira sui nostri server in Francia, che è la prima domanda che fanno molti acquirenti europei. Il piano gratuito copre 1.000 utenti attivi al mese, senza costo per richiesta, quindi un pomeriggio basta per capire se questo si adatta allo stack che hai già.