Перейти к основному содержимому

Keycloak Самостоятельная регистрация пользователя

· 4 мин. чтения

1. Обзор

Мы можем использовать Keycloak в качестве стороннего сервера авторизации для управления пользователями наших веб-приложений или мобильных приложений.

Хотя администратор может добавлять пользователей, Keycloak также позволяет пользователям регистрироваться самостоятельно. Кроме того, наряду с атрибутами по умолчанию, такими как имя, фамилия и адрес электронной почты, мы также можем добавить дополнительные пользовательские атрибуты, соответствующие потребностям нашего приложения.

В этом руководстве мы увидим, как мы можем включить самостоятельную регистрацию на Keycloak и добавить настраиваемые поля на страницу регистрации пользователя.

Мы работаем над настройкой страницы входа , поэтому будет полезно пройти ее сначала для первоначальной настройки.

2. Автономный сервер

Во-первых, мы увидим самостоятельную регистрацию пользователя на отдельном сервере Keycloak.

2.1. Включение регистрации пользователей

Первоначально нам нужно включить Keycloak, чтобы разрешить регистрацию пользователей . Для этого нам сначала нужно запустить сервер, выполнив эту команду из папки bin нашего дистрибутива Keycloak :

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

Затем нам нужно перейти в консоль администратора и ввести учетные данные initial1 / zaq1!QAZ .

Затем на вкладке « Вход » на странице « Настройки области » мы переключим кнопку « Регистрация пользователя » :

./922f84a5766bbd27600327a3b4f376a2.png

Это все! Нам просто нужно нажать «Сохранить» , и самостоятельная регистрация будет включена.

Итак, теперь мы получим ссылку с именем « Регистрация » на странице входа :

./3e8c4ef1c224e1a99be322c70fa76173.png

Опять же, напомню, что страница выглядит иначе, чем страница входа Keycloak по умолчанию, потому что мы расширяем настройки, которые мы сделали ранее .

Ссылка для регистрации ведет нас на страницу регистрации :

./4c321165ce15fc947a87028e805366fe.png

Как мы видим, страница по умолчанию включает основные атрибуты пользователя Keycloak .

В следующем разделе мы увидим, как мы можем добавить дополнительные атрибуты к нашему выбору.

2.2. Добавление пользовательских атрибутов пользователя

Продолжая работу с нашей пользовательской темой , давайте скопируем существующий шаблон base/login/register.ftl в нашу папку custom/login .

Теперь мы попробуем добавить новое поле доб для даты рождения . Для этого нам нужно изменить указанный выше файл register.ftl и добавить следующее:

<div class="form-group">
<div class="${properties.kcLabelWrapperClass!}">
<label for="user.attributes.dob" class="${properties.kcLabelClass!}">
Date of birth</label>
</div>

<div class="${properties.kcInputWrapperClass!}">
<input type="date" class="${properties.kcInputClass!}"
id="user.attributes.dob" name="user.attributes.dob"
value="${(register.formData['user.attributes.dob']!'')}"/>
</div>
</div>

Теперь , когда мы регистрируем нового пользователя на этой странице, мы также можем ввести его дату рождения :

./d105f280b5830c9022d87c6ea5698910.png

Чтобы проверить, давайте откроем страницу « Пользователи » в консоли администратора и найдем Джейн :

./6f9f24f5cfc2a5144d2153d7ae5643a0.png

Далее давайте перейдем к атрибутам Джейн и проверим дату рождения :

./06336e2200de5f03bbf09acf11f7f8a7.png

Как видно, здесь указана та же дата рождения, которую мы ввели в форму саморегистрации.

3. Встроенный сервер

Теперь давайте посмотрим, как мы можем добавить пользовательские атрибуты для самостоятельной регистрации для сервера Keycloak, встроенного в приложение Spring Boot.

Как и в первом шаге для автономного сервера, нам нужно сначала включить регистрацию пользователей.

Мы можем сделать это, установив для RegistrationAllowed значение true в нашем файле определения области, foreach-realm.json :

"registrationAllowed" : true,

После этого нам нужно добавить дату рождения в register.ftl , точно так же, как это делалось ранее .

Далее давайте скопируем этот файл в наш каталог src/main/resources/themes/custom/login .

Теперь при запуске сервера наша страница входа содержит ссылку для регистрации. Вот страница саморегистрации с нашим настраиваемым полем Дата рождения :

./dcf07ca149db43c8cca799db9657b5e8.png

Важно помнить, что пользователь, добавленный через страницу самостоятельной регистрации встроенного сервера, является временным .

Поскольку мы не добавили этого пользователя в файл предварительной конфигурации, он не будет доступен при перезапуске сервера. Однако это пригодится на этапе разработки, когда мы только проверяем дизайн и функциональность.

Для проверки перед перезапуском сервера мы можем убедиться, что пользователь добавлен с DOB в качестве пользовательского атрибута из консоли администратора . Мы также можем попытаться войти в систему, используя учетные данные нового пользователя.

4. Вывод

В этом уроке мы узнали, как включить самостоятельную регистрацию пользователей в Keycloak . Мы также увидели, как добавлять пользовательские атрибуты при регистрации в качестве нового пользователя.

Мы рассмотрели примеры того, как это сделать как для автономного, так и для встроенного экземпляра.

Как всегда, исходный код доступен на GitHub. Для автономного сервера — на GitHub с руководствами , а для встроенного экземпляра — на GitHub для OAuth .