Autoregistrazione utente Keycloak

1. Panoramica

Possiamo utilizzare Keycloak come server di autorizzazione di terze parti per gestire gli utenti delle nostre applicazioni web o mobili.

Sebbene sia possibile per un amministratore aggiungere utenti, Keycloak ha anche la possibilità di consentire agli utenti di registrarsi. Inoltre, insieme ad attributi predefiniti come nome, cognome ed e-mail, possiamo anche aggiungere attributi utente extra specifici per le esigenze della nostra applicazione.

In questo tutorial, vedremo come abilitare l'autoregistrazione su Keycloak e aggiungere campi personalizzati nella pagina di registrazione dell'utente.

Stiamo costruendo sulla personalizzazione della pagina di accesso, quindi sarà utile esaminarla prima per la configurazione iniziale.

2. Server autonomo

Innanzitutto, vedremo l'autoregistrazione dell'utente per un server Keycloak autonomo.

2.1. Abilitazione della registrazione dell'utente

Inizialmente, dobbiamo abilitare Keycloak per consentire la registrazione dell'utente . Per questo, dobbiamo prima avviare il server eseguendo questo comando dalla cartella bin della nostra distribuzione Keycloak :

./standalone.sh -Djboss.socket.binding.port-offset=100

Quindi dobbiamo andare alla console di amministrazione e digitare le credenziali iniziali1 / zaq1! QAZ .

Successivamente, nella scheda Accesso nella pagina Impostazioni realm , attiveremo il pulsante Registrazione utente :

È tutto! Dobbiamo solo fare clic su Salva e l'autoregistrazione viene abilitata.

Quindi ora otterremo un collegamento denominato Registrati nella pagina di accesso :

Ancora una volta, ricorda che la pagina ha un aspetto diverso dalla pagina di accesso predefinita di Keycloak perché stiamo estendendo le personalizzazioni che abbiamo fatto in precedenza.

Il link di registrazione ci porta alla pagina di registrazione :

Come possiamo vedere, la pagina predefinita include gli attributi di base di un utente Keycloak .

Nella prossima sezione vedremo come aggiungere attributi extra alla nostra scelta.

2.2. Aggiunta di attributi utente personalizzati

Continuando con il nostro tema personalizzato, copiamo il modello base / login / register.ftl esistente nella nostra cartella custom / login .

Ora proveremo ad aggiungere un nuovo campo dob per Data di nascita . Per questo, dovremo modificare il file register.ftl sopra e aggiungere questo:

 Date of birth 

Ora, quando si registra un nuovo utente in questa pagina, possiamo entrare nella sua Data di nascita , nonché :

Per verificare, apriamo la pagina Utenti nella console di amministrazione e cerchiamo Jane :

Avanti, andiamo a Jane 's Attributi e controllare il DOB :

Come è evidente, qui viene visualizzata la stessa data di nascita che abbiamo inserito nel modulo di autoiscrizione.

3. Server incorporato

Vediamo ora come aggiungere attributi personalizzati per l'autoregistrazione per un server Keycloak incorporato in un'applicazione Spring Boot.

Come il primo passaggio per il server autonomo, all'inizio è necessario abilitare la registrazione dell'utente.

Possiamo farlo impostando registrationAllowed su true nel nostro file di definizione realm, baeldung-realm.json :

"registrationAllowed" : true,

Dopodiché, dobbiamo aggiungere Data di nascita a register.ftl , esattamente allo stesso modo di quanto fatto in precedenza .

Successivamente, copiamo questo file nella nostra directory src / main / resources / themes / custom / login .

Ora all'avvio del server, la nostra pagina di accesso contiene il link di registrazione. Ecco la pagina di autoregistrazione con il nostro campo personalizzato Data di nascita :

È importante tenere presente che l' utente aggiunto tramite la pagina di autoregistrazione per il server incorporato è temporaneo .

Poiché non abbiamo aggiunto questo utente al file di preconfigurazione, non sarà disponibile al riavvio del server. Tuttavia, questo è utile durante la fase di sviluppo, quando controlliamo solo design e funzionalità.

Per testare, prima di riavviare il server, possiamo verificare che l'utente sia stato aggiunto con DOB come attributo personalizzato dalla console di amministrazione. Possiamo anche provare ad accedere utilizzando le credenziali del nuovo utente.

4. Conclusione

In questo tutorial, abbiamo imparato come abilitare l'autoregistrazione dell'utente in Keycloak . Abbiamo anche visto come aggiungere attributi personalizzati durante la registrazione come nuovo utente.

Abbiamo esaminato esempi su come eseguire questa operazione sia per un'istanza autonoma che incorporata.

Come sempre, il codice sorgente è disponibile su GitHub. Per il server autonomo, si trova sui tutorial GitHub e, per l'istanza incorporata, su OAuth GitHub.