1. Обзор
Мы можем использовать Keycloak в качестве стороннего сервера авторизации для управления пользователями наших веб-приложений или мобильных приложений.
Хотя администратор может добавлять пользователей, Keycloak также позволяет пользователям регистрироваться самостоятельно. Кроме того, наряду с атрибутами по умолчанию, такими как имя, фамилия и адрес электронной почты, мы также можем добавить дополнительные пользовательские атрибуты, соответствующие потребностям нашего приложения.
В этом руководстве мы увидим, как мы можем включить самостоятельную регистрацию на Keycloak и добавить настраиваемые поля на страницу регистрации пользователя.
Мы работаем над настройкой страницы входа , поэтому будет полезно пройти ее сначала для первоначальной настройки.
2. Автономный сервер
Во-первых, мы увидим самостоятельную регистрацию пользователя на отдельном сервере Keycloak.
2.1. Включение регистрации пользователей
Первоначально нам нужно включить Keycloak, чтобы разрешить регистрацию пользователей . Для этого нам сначала нужно запустить сервер, выполнив эту команду из папки bin
нашего дистрибутива Keycloak :
./standalone.sh -Djboss.socket.binding.port-offset=100
Затем нам нужно перейти в консоль администратора и ввести учетные данные initial1
/ zaq1!QAZ
.
Затем на вкладке « Вход » на странице «
Настройки
области » мы переключим кнопку « Регистрация пользователя
» :
Это все! Нам просто нужно нажать «Сохранить»
, и самостоятельная регистрация будет включена.
Итак, теперь мы получим ссылку с именем « Регистрация
» на странице входа :
Опять же, напомню, что страница выглядит иначе, чем страница входа Keycloak по умолчанию, потому что мы расширяем настройки, которые мы сделали ранее .
Ссылка для регистрации ведет нас на страницу регистрации :
Как мы видим, страница по умолчанию включает основные атрибуты пользователя 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>
Теперь , когда мы регистрируем нового пользователя на этой странице, мы также можем ввести его дату рождения
:
Чтобы проверить, давайте откроем страницу « Пользователи
» в консоли администратора и найдем Джейн
:
Далее давайте перейдем к атрибутам
Джейн
и проверим дату рождения
:
Как видно, здесь указана та же дата рождения, которую мы ввели в форму саморегистрации.
3. Встроенный сервер
Теперь давайте посмотрим, как мы можем добавить пользовательские атрибуты для самостоятельной регистрации для сервера Keycloak, встроенного в приложение Spring Boot.
Как и в первом шаге для автономного сервера, нам нужно сначала включить регистрацию пользователей.
Мы можем сделать это, установив для RegistrationAllowed значение
true
в нашем файле определения области, foreach-realm.json
:
"registrationAllowed" : true,
После этого нам нужно добавить дату рождения
в register.ftl
, точно так же, как это делалось ранее .
Далее давайте скопируем этот файл в наш каталог src/main/resources/themes/custom/login
.
Теперь при запуске сервера наша страница входа содержит ссылку для регистрации. Вот страница саморегистрации с нашим настраиваемым полем Дата рождения
:
Важно помнить, что пользователь, добавленный через страницу самостоятельной регистрации встроенного сервера, является временным .
Поскольку мы не добавили этого пользователя в файл предварительной конфигурации, он не будет доступен при перезапуске сервера. Однако это пригодится на этапе разработки, когда мы только проверяем дизайн и функциональность.
Для проверки перед перезапуском сервера мы можем убедиться, что пользователь добавлен с DOB
в качестве пользовательского атрибута из консоли администратора . Мы также можем попытаться войти в систему, используя учетные данные нового пользователя.
4. Вывод
В этом уроке мы узнали, как включить самостоятельную регистрацию пользователей в Keycloak . Мы также увидели, как добавлять пользовательские атрибуты при регистрации в качестве нового пользователя.
Мы рассмотрели примеры того, как это сделать как для автономного, так и для встроенного экземпляра.
Как всегда, исходный код доступен на GitHub. Для автономного сервера — на GitHub с руководствами , а для встроенного экземпляра — на GitHub для OAuth .