1. Обзор
Мы можем использовать Keycloak в качестве стороннего сервера авторизации для управления пользователями наших веб-или мобильных приложений.
Хотя администратор может добавлять пользователей, Keycloak также имеет возможность разрешить пользователям регистрироваться самостоятельно. Кроме того, наряду с атрибутами по умолчанию, такими как имя, фамилия и адрес электронной почты, мы также можем добавить дополнительные атрибуты пользователя, соответствующие потребностям нашего приложения.
В этом уроке мы увидим, как включить саморегистрацию на клавиатуре и добавить пользовательские поля на странице регистрации пользователя.
Мы строим поверх настройки страницы входа в систему , поэтому будет полезно сначала пройти через нее для первоначальной настройки.
2. Автономный сервер
Во-первых, мы увидим саморегистрацию пользователя для автономного сервера Keycloak.
2.1. Включение Регистрации Пользователя
Изначально нам нужно включить Keycloak, чтобы разрешить регистрацию пользователя . Для этого нам сначала нужно запустить сервер, выполнив эту команду из папки bin нашего дистрибутива Keycloak:
./standalone.sh -Djboss.socket.binding.port-offset=100
Затем нам нужно перейти в консоль администратора и ввести initial 1 / zag 1!QAZ учетные данные.
Затем на вкладке Вход на странице Настройки области мы переключим кнопку Регистрация пользователя :
Вот и все! Нам просто нужно нажать Сохранить , и саморегистрация будет включена.
Итак, теперь мы получим ссылку с именем Регистрация на странице входа в систему :
Опять же, помните, что страница выглядит иначе, чем страница входа по умолчанию Keycloak, потому что мы расширяем настройки, которые мы делали ранее .
Ссылка регистрация ведет нас на страницу Регистрация :
Как мы видим, страница по умолчанию включает в себя основные атрибуты пользователя Keycloak .
В следующем разделе мы рассмотрим, как мы можем добавить дополнительные атрибуты к нашему выбору.
2.2. Добавление Пользовательских Атрибутов Пользователя
Продолжая нашу пользовательскую тему , давайте скопируем существующий шаблон base/login/register.title в нашу пользовательскую/login папку.
Теперь мы попробуем добавить новое поле dob для Даты рождения . Для этого нам нужно будет изменить приведенный выше register.ftl и добавить следующее:
Теперь когда мы регистрируем нового пользователя на этой странице, мы также можем ввести его Дату рождения |:
Чтобы убедиться в этом, давайте откроем страницу Users в консоли администратора и найдем Jane :
Далее, давайте перейдем к Jane ‘s Attributes и проверим DOB :
Как видно, здесь отображается та же дата рождения, что и в форме саморегистрации.
3. Встроенный сервер
Теперь давайте посмотрим, как мы можем добавить пользовательские атрибуты для самостоятельной регистрации для сервера Keycloak, встроенного в приложение Spring Boot.
Как и на первом этапе для автономного сервера, нам нужно сначала включить регистрацию пользователей.
Мы можем сделать это, установив регистрация разрешена в true в нашем файле определения области baeldung-realm.json :
"registrationAllowed" : true,
После этого нам нужно добавить Дату рождения в register.ftl , точно так же, как это было сделано ранее .
Далее, давайте скопируем этот файл в наш каталог src/main/resources/themes/custom/login .
Теперь при запуске сервера наша страница входа содержит ссылку регистрации. Вот страница саморегистрации с нашим пользовательским полем Дата рождения :
Важно иметь в виду, что пользователь, добавленный через страницу саморегистрации для встроенного сервера, является временным .
Поскольку мы не добавили этого пользователя в файл предварительной конфигурации, он не будет доступен при перезапуске сервера. Однако это пригодится на этапе разработки, когда мы только проверяем дизайн и функциональность.
Чтобы проверить, перед перезапуском сервера мы можем убедиться, что пользователь добавлен с DOB в качестве пользовательского атрибута из консоли администратора . Мы также можем попытаться войти в систему, используя учетные данные нового пользователя.
4. Заключение
В этом уроке мы узнали, как включить саморегистрацию пользователя в Keycloak . Мы также видели, как добавлять пользовательские атрибуты при регистрации в качестве нового пользователя.
Мы рассмотрели примеры того, как это сделать как для автономного, так и для встроенного экземпляра.
Как всегда, исходный код доступен на GitHub. Для автономного сервера он находится на учебниках GitHub , а для встроенного экземпляра-на OAuth GitHub .