Selbstregistrierung des Keycloak-Benutzers

1. Übersicht

Wir können Keycloak als Autorisierungsserver eines Drittanbieters verwenden, um Benutzer unserer Web- oder Mobilanwendungen zu verwalten.

Während es einem Administrator möglich ist, Benutzer hinzuzufügen, kann Keycloak Benutzern auch ermöglichen, sich selbst zu registrieren. Zusätzlich zu Standardattributen wie Vorname, Nachname und E-Mail können wir zusätzliche Benutzerattribute hinzufügen, die auf die Anforderungen unserer Anwendung zugeschnitten sind.

In diesem Tutorial erfahren Sie, wie Sie die Selbstregistrierung in Keycloak aktivieren und benutzerdefinierte Felder auf der Benutzerregistrierungsseite hinzufügen können.

Wir bauen auf dem Anpassen der Anmeldeseite auf, daher ist es hilfreich, diese zuerst für die Ersteinrichtung durchzugehen.

2. Standalone-Server

Zunächst wird die Selbstregistrierung des Benutzers für einen eigenständigen Keycloak-Server angezeigt.

2.1. Benutzerregistrierung aktivieren

Zunächst müssen wir Keycloak aktivieren, um die Benutzerregistrierung zu ermöglichen . Dazu müssen wir zuerst den Server starten, indem wir diesen Befehl im bin- Ordner unserer Keycloak-Distribution ausführen :

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

Dann müssen wir zur Administratorkonsole gehen und die Anmeldeinformationen für initial1 / zaq1! QAZ eingeben .

Als nächstes wird in der Anmeldung auf die Registerkarte Realm Einstellungen Seite werden wir die wechseln Benutzerregistrierung Taste:

Das ist alles! Wir müssen nur auf Speichern klicken und die Selbstregistrierung wird aktiviert.

Jetzt erhalten wir einen Link mit dem Namen Registrieren auf der Anmeldeseite :

Denken Sie erneut daran, dass die Seite anders aussieht als die Standard-Anmeldeseite von Keycloak, da wir die zuvor vorgenommenen Anpassungen erweitern.

Der Registrierungslink führt uns zur Registrierungsseite :

Wie wir sehen können, enthält die Standardseite die grundlegenden Attribute eines Keycloak-Benutzers .

Im nächsten Abschnitt werden wir sehen, wie wir unserer Auswahl zusätzliche Attribute hinzufügen können.

2.2. Hinzufügen benutzerdefinierter Benutzerattribute

Fahren Sie mit unserem benutzerdefinierten Thema fort und kopieren Sie die vorhandene Vorlage base / login / register.ftl in unseren Ordner custom / login .

Wir versuchen nun ein neues Feld hinzugefügt dob für Geburtstag . Dazu müssen wir die obige register.ftl ändern und Folgendes hinzufügen:

 Date of birth 

Nun , wenn wir einen neuen Benutzer auf dieser Seite registrieren, können wir seine Eingabe Geburtsdatum auch :

Öffnen Sie zur Überprüfung die Seite Benutzer in der Administratorkonsole und suchen Sie nach Jane :

Als nächstes gehen wir zu Jane 's Attributes und sehen uns das DOB an :

Es ist offensichtlich, dass hier das gleiche Geburtsdatum angezeigt wird, das wir auf dem Selbstregistrierungsformular eingegeben haben.

3. Eingebetteter Server

Lassen Sie uns nun sehen, wie wir benutzerdefinierte Attribute für die Selbstregistrierung für einen in eine Spring Boot-Anwendung eingebetteten Keycloak-Server hinzufügen können.

Wie im ersten Schritt für den Standalone-Server müssen wir zu Beginn die Benutzerregistrierung aktivieren.

Wir können dies tun , indem registrationAllowed zu wahren in unserer Reich - Definitionsdatei, baeldung-realm.json :

"registrationAllowed" : true,

Danach müssen wir hinzufügen , Geburtsdatum zu register.ftl , genau die gleiche Art und Weise wie bisher .

Als nächstes kopieren wir diese Datei in unser Verzeichnis src / main / resources / theme / custom / login .

Beim Starten des Servers enthält unsere Anmeldeseite den Registrierungslink. Hier ist die Selbstregistrierungsseite mit unserem benutzerdefinierten Feld Geburtsdatum :

Es ist wichtig zu beachten, dass der Benutzer, der über die Selbstregistrierungsseite für den eingebetteten Server hinzugefügt wurde, vorübergehend ist .

Da wir diesen Benutzer nicht zur Vorkonfigurationsdatei hinzugefügt haben, ist er bei einem Neustart des Servers nicht verfügbar. Dies ist jedoch während der Entwicklungsphase nützlich, wenn wir nur Design und Funktionalität überprüfen.

Zum Testen können wir vor dem Neustart des Servers überprüfen, ob dem Benutzer DOB als benutzerdefiniertes Attribut von der Administratorkonsole hinzugefügt wurde . Wir können auch versuchen, uns mit den Anmeldeinformationen des neuen Benutzers anzumelden.

4. Fazit

In diesem Tutorial haben wir gelernt, wie Sie die Selbstregistrierung von Benutzern in Keycloak aktivieren . Wir haben auch gesehen, wie Sie benutzerdefinierte Attribute hinzufügen, während Sie sich als neuer Benutzer registrieren.

Wir haben uns Beispiele angesehen, wie dies sowohl für eine eigenständige als auch für eine eingebettete Instanz durchgeführt werden kann.

Wie immer ist der Quellcode über GitHub verfügbar. Für den eigenständigen Server befindet es sich in den Tutorials GitHub und für die eingebettete Instanz auf dem OAuth GitHub.