Auto-enregistrement de l'utilisateur Keycloak

1. Vue d'ensemble

Nous pouvons utiliser Keycloak comme serveur d'autorisation tiers pour gérer les utilisateurs de nos applications Web ou mobiles.

Bien qu'il soit possible pour un administrateur d'ajouter des utilisateurs, Keycloak a également la possibilité d'autoriser les utilisateurs à s'enregistrer eux-mêmes. De plus, en plus des attributs par défaut tels que le prénom, le nom et l'adresse e-mail, nous pouvons également ajouter des attributs utilisateur supplémentaires spécifiques aux besoins de notre application.

Dans ce didacticiel, nous verrons comment nous pouvons activer l'auto-inscription sur Keycloak et ajouter des champs personnalisés sur la page d'inscription des utilisateurs.

Nous construisons en plus de la personnalisation de la page de connexion, il sera donc utile de la parcourir d'abord pour la configuration initiale.

2. Serveur autonome

Tout d'abord, nous verrons l'auto-inscription des utilisateurs pour un serveur Keycloak autonome.

2.1. Activation de l'enregistrement des utilisateurs

Au départ, nous devons activer Keycloak pour permettre l'enregistrement des utilisateurs . Pour cela, nous devons d'abord démarrer le serveur en exécutant cette commande à partir du dossier bin de notre distribution Keycloak :

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

Ensuite, nous devons accéder à la console d'administration et saisir les informations d'identification initiales1 / zaq1! QAZ .

Ensuite, dans l' onglet Connexion de la page Paramètres du royaume , nous basculerons le bouton d' enregistrement de l' utilisateur :

C'est tout! Il nous suffit de cliquer sur Enregistrer et l'auto-inscription est activée.

Alors maintenant, nous allons obtenir un lien nommé Register sur la page de connexion :

Encore une fois, rappelez-vous que la page est différente de la page de connexion par défaut de Keycloak car nous étendons les personnalisations que nous avons effectuées précédemment.

Le lien d'inscription nous amène à la page d' inscription :

Comme nous pouvons le voir, la page par défaut comprend les attributs de base d'un utilisateur Keycloak .

Dans la section suivante, nous verrons comment nous pouvons ajouter des attributs supplémentaires à notre choix.

2.2. Ajout d'attributs utilisateur personnalisés

En continuant avec notre thème personnalisé, copions le modèle base / login / register.ftl existant dans notre dossier custom / login .

Nous allons maintenant essayer d'ajouter un nouveau champ dob pour Date de naissance . Pour cela, nous devrons modifier le register.ftl ci-dessus et ajouter ceci:

 Date of birth 

Maintenant , lorsque nous enregistrons un nouvel utilisateur sur cette page, nous pouvons entrer dans sa date de naissance ainsi :

Pour vérifier, ouvrons la page Utilisateurs sur la console d'administration et recherchons Jane :

Ensuite, nous allons aller à Jane de Attributs et vérifier la date de naissance :

Comme il est évident, la même date de naissance est affichée ici que nous l'avons saisie sur le formulaire d'auto-enregistrement.

3. Serveur intégré

Voyons maintenant comment nous pouvons ajouter des attributs personnalisés pour l'auto-enregistrement pour un serveur Keycloak intégré dans une application Spring Boot.

Comme pour la première étape pour le serveur autonome, nous devons activer l'enregistrement des utilisateurs au début.

Nous pouvons le faire en définissant registrationAllowed sur true dans notre fichier de définition de domaine, baeldung-realm.json :

"registrationAllowed" : true,

Après cela, nous devons ajouter Date de naissance à register.ftl , exactement de la même manière que précédemment .

Ensuite, copions ce fichier dans notre répertoire src / main / resources / themes / custom / login .

Maintenant, au démarrage du serveur, notre page de connexion porte le lien d'inscription. Voici la page d'auto-inscription avec notre champ personnalisé Date de naissance :

Il est important de garder à l'esprit que l' utilisateur ajouté via la page d'auto-enregistrement pour le serveur intégré est transitoire .

Comme nous n'avons pas ajouté cet utilisateur au fichier de pré-configuration, il ne sera pas disponible au redémarrage du serveur. Cependant, cela est pratique pendant la phase de développement, lorsque nous ne vérifions que la conception et la fonctionnalité.

Pour tester, avant de redémarrer le serveur, nous pouvons vérifier que l'utilisateur est ajouté avec DOB comme attribut personnalisé depuis la console d'administration. Nous pouvons également essayer de nous connecter en utilisant les informations d'identification du nouvel utilisateur.

4. Conclusion

Dans ce didacticiel, nous avons appris comment activer l'auto-enregistrement des utilisateurs dans Keycloak . Nous avons également vu comment ajouter des attributs personnalisés lors de l'enregistrement en tant que nouvel utilisateur.

Nous avons examiné des exemples sur la façon de procéder pour une instance autonome et intégrée.

Comme toujours, le code source est disponible à l'adresse over sur GitHub. Pour le serveur autonome, il se trouve sur les tutoriels GitHub et pour l'instance intégrée, sur OAuth GitHub.