Italiano
  • Magic link
  • Passwordless
  • Authentication
  • Invitation

Autenticazione tramite link magico

Impara a implementare link magici per l'accesso senza password, la registrazione su invito e gli inviti per i membri dell'organizzazione utilizzando token monouso.

Ran
Ran
Product & Design

Smetti di sprecare settimane sull'autenticazione degli utenti
Lancia app sicure più velocemente con Logto. Integra l'autenticazione degli utenti in pochi minuti e concentrati sul tuo prodotto principale.
Inizia ora
Product screenshot

Un link magico è un metodo di autenticazione senza password in cui un utente riceve un URL di accesso monouso tramite email (o SMS). Cliccando sul link, l'utente accede senza richiedere una password.

Ecco alcune funzionalità di sicurezza chiave dei link magici:

  • Token monouso: Una volta cliccato, il token diventa invalido per prevenire il riutilizzo.
  • Scadenza del link: Il link magico dovrebbe avere un breve tempo di scadenza (es. 10 minuti) per una maggiore sicurezza.
  • Limitazione del tasso: Prevenire l'abuso limitando quanti link magici possono essere inviati in un determinato lasso di tempo.
  • Associazione dispositivo/browser (Opzionale): Limitare l'uso del link al dispositivo o IP originale per prevenire intercettazioni.

Un link magico consiste in:

  • Il percorso URL: Indica la pagina di destinazione della tua app.
  • Token monouso: Un token unico e di consumo una tantum utilizzato per l'autenticazione senza password.
  • Email utente: Utilizzata per validare l'autenticità del token e l'identità dell'utente.
  • Parametri aggiuntivi: Opzionali, a seconda delle esigenze della tua app.

Ad esempio, un link magico potrebbe apparire così:

Per creare un link magico, devi generare un token monouso, inviarlo in modo sicuro all'utente e poi validarlo quando l'utente clicca sul link.

  1. L'utente richiede un link magico: L'utente inserisce la propria email nella tua app.
  2. Generazione del token monouso: Il server genera un token e lo invia come link tramite email.
  3. L'utente clicca sul link: L'utente clicca sul link nell'email.
  4. Validazione del token: Il server verifica se il token è valido.
  5. L'utente è autenticato: Se il token è valido, l'utente viene autenticato.

Passo 1: Richiedi un token monouso

Utilizza Logto Management API per creare un token monouso.

Esempio di payload del corpo richiesta:

Dopo aver ottenuto il token monouso, puoi comporre un link magico e inviarlo all'indirizzo email dell'utente finale. Il link magico deve contenere almeno il token e l'email dell'utente come parametri e deve indirizzarsi a una pagina di atterraggio nella tua applicazione. Es. https://yourapp.com/landing-page.

Ecco un semplice esempio di come potrebbe apparire il link magico:

Nota:

I nomi dei parametri nel link magico possono essere completamente personalizzati. Puoi aggiungere ulteriori informazioni al link magico in base alle esigenze della tua applicazione, oltre a codificare tutti i parametri URL.

Passo 3: Attiva il flusso di autenticazione tramite Logto SDK

Dopo che l'utente finale ha cliccato sul link magico ed è arrivato alla tua applicazione, puoi estrarre i parametri token e email dall'URL, e poi chiamare la funzione signIn() dal Logto SDK per attivare il flusso di autenticazione.

Per ulteriori dettagli, consulta la Documentazione Logto - Link Magico (Token Monouso).

I link magici possono sostituire il primo passo dell'autenticazione, ma non possono bypassare la Multi-Factor Authentication (MFA).

In Logto, quando si genera un link magico con un token monouso, non è necessario specificare se è per l'accesso o per la registrazione. Determiniamo automaticamente il flusso in base allo stato di registrazione dell'email:

  • Email non registrata: Cliccando sul link magico gli utenti vengono reindirizzati al flusso di creazione dell'account, saltando l'inserimento e la verifica dell'email. Gli utenti procedono a impostare una password, ad aggiungere dettagli del profilo (es. nome completo) o a impostare il MFA, in base alle impostazioni di registrazione.
  • Email registrata: Cliccando sul link magico vengono bypassate le prime verifiche (es. "email + password" o "email + codice di verifica"). L'utente viene autenticato direttamente o viene invitato a completare il MFA, in base alle impostazioni di accesso.

Logto supporta i seguenti scenari con i link magici:

  1. Registrazione su invito: Per strumenti interni o prodotti AI in fase di test, puoi disattivare la registrazione pubblica e invitare utenti specifici tramite un link magico.
  2. Invito per membri dell'organizzazione: Per prodotti SaaS, usa i link magici per invitare nuovi membri in un'organizzazione, semplificando il processo di adesione.
  3. Accesso/Registrazione: Invia un link magico per accesso o registrazione tramite email.

Attualmente non supportato:

Facci sapere se hai bisogno di ulteriori personalizzazioni.

Per nuovi prodotti (es. strumenti AI) in test interno o per strumenti interni, potresti voler disabilitare la registrazione pubblica e consentire solo a utenti specifici di accedere alla tua app. Per implementare ciò con Logto:

  1. Vai su Console > Esperienza di accesso > Accesso e registrazione > Opzioni avanzate e disattiva "Abilita registrazione utente" per chiudere la registrazione pubblica.

    logto_disable_public_registration.png

  2. Raccogli gli indirizzi email degli utenti che desideri invitare (es. tramite il tuo sito web o consigli da parte di utenti esistenti).

  3. Crea e invia il link di invito magico come descritto sopra (richiedi il token monouso, componi il link magico, attiva l'autenticazione tramite Logto SDK).

    Nota: Imposta un tempo di scadenza per il link di invito. È consigliato rendere il link valido per almeno un giorno. Usa il seguente corpo richiesta per generare il token monouso:

  4. Invia il link magico all'email dell'utente (es. https://yourapp.com/landing-page?type=registrationInvitation&token=YHwbXSXxQfL02IoxFqr1hGvkB13uTqcd&[email protected]). Personalizza il modello di email, come ad esempio:

    email_templates_invitation_only_registration.png

    Quando gli utenti cliccano su "Accetta l'invito", si registreranno automaticamente al tuo servizio, anche con la registrazione pubblica disabilitata. Questo è definito "Invito mirato agli utenti".

Per prodotti multi-tenant (es. app SaaS come Slack, GitHub, Vercel), fornisci un processo di invito ai membri senza soluzione di continuità per gestire le adesioni all'organizzazione. Usa i link magici per tassi di conversione più alti negli inviti ai membri.

  1. Segui i Documenti Logto per implementare la creazione di organizzazioni, il controllo degli accessi basato sui ruoli e la gestione delle organizzazioni: Logto Organizations.

  2. Imposta il flusso "Invita membri" nel tuo prodotto. Esempio:

    invite_organization_member_in_app.png

  3. Segui questa guida per Invitare Membri dell'Organizzazione. Nota: Quando inviti i membri, assicurati che il payload della richiesta includa:

    • context: jitOrganizationIds per specificare a quale(i) organizzazione(i) l'utente si unirà.
    • Imposta un tempo di scadenza più lungo expiresIn (es. 2 giorni o 1 settimana) per consentire agli utenti di accettare l'invito.

    Esempio di payload della richiesta:

  4. Invia il link di invito all'email dell'utente (es. https://yourapp.com/landing-page?type=organizationMemberInvitation&token=YHwbXSXxQfL02IoxFqr1hGvkB13uTqcd&[email protected]). Personalizza il tuo modello di email, ad esempio:

    email_templates_join_organization.png

    Quando gli utenti cliccano su "Accetta l'invito", verranno automaticamente autenticati o registrati e si uniranno automaticamente all'organizzazione.

Gestire conflitti di account

Cosa succede se un utente è già connesso e clicca su un altro link magico?

Per gestire correttamente i conflitti di account, assicurati quanto segue:

  • Evita di aggiungere login nel prompt di accesso: Non impostare il prompt di accesso includendo login. Se impostato in modo errato, Logto autenticherà automaticamente l'account associato al token del link magico, bypassando il prompt di cambio account.
  • Preserva i token esistenti: Quando chiami la funzione signIn(), specifica il parametro clearTokens: false per evitare di cancellare i token esistenti. Se si utilizza questa opzione, assicurati di cancellare manualmente i token nella pagina di callback di accesso.

Dopo la corretta configurazione, l'esperienza utente sarà la seguente:

  1. Link magico per l'account corrente: Se l'utente è già autenticato e clicca su un link magico per lo stesso account, Logto verificherà il token monouso e, se necessario, assegnirà l'utente alle organizzazioni specificate.
  2. Link magico per un account diverso: Se l'utente è autenticato e clicca su un link magico per un account diverso, Logto inviterà l'utente a:
    • Continuare come il nuovo account: Logto passa al nuovo account dopo la verifica del token.
    • Rimanere con l'account corrente: Logto salta la verifica del token e restituisce l'utente all'account corrente.
    magic_link_account_conflicts.png

Quando gli utenti cliccano su un link magico non valido, verranno reindirizzati a una pagina di errore con una chiara spiegazione del problema. Di seguito sono riportati gli scenari di errore possibili e i loro messaggi:

NomeDescrizione
token_not_foundToken attivo non trovato con l'email e il token forniti.
email_mismatchDiscrepanza dell'email con il token fornito.
token_expiredIl token è scaduto.
token_consumedIl token è stato consumato.
token_revokedIl token è stato revocato.
cannot_reactivate_tokenImpossibile riattivare il token.

Ogni pagina di errore fornirà un messaggio specifico, aiutando gli utenti a capire la ragione dietro il link magico non valido e guidandoli nei passi successivi. Ad esempio:

magic_link_error_pages.png

Conclusione

Logto offre sicurezza a livello aziendale attraverso flussi di accesso senza password flessibili utilizzando link magici. È un modo semplice ma potente per creare esperienze utente fluide—che tu stia invitando utenti a unirsi a un'organizzazione, permettendo loro di creare account con facilità, o fornendo un'autenticazione senza problemi. E poiché Logto gestisce situazioni difficili come conflitti di account e token scaduti, i tuoi utenti ottengono un processo sicuro e privo di frustrazioni ogni volta.

Pronto a modernizzare il tuo IAM con un'autenticazione a prova di proiettile?