Как использовать Keycloak для самостоятельной регистрации пользователя

Я хочу использовать Keycloak в качестве системы аутентификации для регистрации, входа в систему и общего обслуживания пользователей моего приложения, состоящего из React.js во внешнем интерфейсе и Spring Boot в бэкэнде. Пользователи должны иметь возможность зарегистрироваться без вмешательства администратора и, следовательно, также без запроса токена начального доступа, поскольку любой может зарегистрироваться по требованию. Насколько я вижу, Keycloak не предоставляет решения для непосредственной регистрации пользователя без токена доступа или использования конечных точек администратора, например. с этим URL-адресом: http://localhost:8089/auth/realms/mrtapp/protocol/openid-connect/registrations. Идея, которая у меня есть, состоит в том, чтобы отправить учетные данные для регистрации пользователя на серверную часть и использовать URL-адрес администратора в серверной части для регистрации пользователя, но я не уверен, что это безопасно. Кроме того, мне удалось попасть на страницу регистрации с помощью Postman, но у меня возникли проблемы с созданием структуры полезной нагрузки POST-запроса для регистрации пользователя, поэтому я был бы признателен за любой стимул, как это придумать.

Обновлено: URL-адрес, который ведет меня на страницу входа в систему: http://localhost:8089/auth/realms/mrtapp/account/#/login
и URL-адрес, который ведет меня на страницу регистрации: http://localhost:8089/auth/realms/mrtapp/account/#/register
На данный момент я застрял, так как не могу придумать URL-адрес для отправки полезной нагрузки (имя, фамилия, имя пользователя,...), а также не знаю, как именно выглядит полезная нагрузка. На данный момент Keycloak занимается регистрацией Пользователей, и нет возможности вмешаться, и поэтому я не могу решить эту проблему с помощью Postman?

Я был бы признателен за любые разъяснения, если я что-то путаю или это правильный путь. Даже просто предупредив меня, возможно это или нет, было бы очень полезно.

Спасибо!

Пожалуйста, включите текущий код, чтобы мы могли лучше понять

jmvcollaborator 12.04.2023 22:27

@jmvcollaborator, кода еще нет. У меня настроен keycloak, и я пытаюсь отправлять запросы от почтальона на keycloak. Я могу войти в систему, но не зарегистрироваться, так как я не мог узнать, как будет выглядеть полезная нагрузка для POST-запроса. Кроме того, я нахожусь на этапе построения концепции, но меня смущает, должна ли регистрация пользователя быть отправлена ​​​​непосредственно в Keycloak по указанному мной URL-адресу (или если это вообще возможно) или мне нужно отправить его на бэкэнд сначала, а затем используйте Admin Rest-api для регистрации пользователя.

shadowsandlights 12.04.2023 22:35
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
612
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

  1. Создайте новую область в Keycloak или используйте существующую.

  2. Создайте новый клиент или используйте существующий, для которого вы хотите включить самостоятельную регистрацию.

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

  4. На вкладке «Регистрация» вы можете настроить регистрационную форму и добавить настраиваемые поля.

  5. Сохраните настройки и протестируйте процесс регистрации, перейдя по URL-адресу регистрации для клиента. URL-адрес регистрации можно найти в настройках клиента на вкладке «Установка».

  6. Используйте REST API Keycloak, чтобы создать нового пользователя, отправив запрос POST в конечную точку регистрации. Вот пример тела запроса:

{
  "username": "john.doe",
  "email": "[email protected]",
  "enabled": true,
  "firstName": "John",
  "lastName": "Doe",
  "credentials": [{
    "type": "password",
    "value": "password"
  }]
}
  1. После создания пользователя Keycloak отправит электронное письмо с подтверждением на адрес электронной почты пользователя. Пользователю необходимо щелкнуть ссылку подтверждения в электронном письме, чтобы активировать свою учетную запись.

3. Вы имеете в виду «Настройки Realm», поскольку для клиента нет вкладки входа? Если да, то сделано. 4. К сожалению, вкладки «Регистрация» нет, но сейчас это не важно, так как я все равно не хочу ее настраивать. 5. Вкладка установки выглядит следующим образом: { "realm": "mrtapp", "auth-server-url": "localhost:8089/auth", "ssl-required": "external", "resource" : «mrtwebapp», «public-client»: true, «verify-token-audience»: true, «use-resource-role-mappings»: true, «confidential-port»: 0 } и с использованием auth-server- URL направляет меня на домашнюю страницу с документами и т. д.

shadowsandlights 12.04.2023 23:16
Ответ принят как подходящий

Хорошо, теперь я помещаю приложение JavaScript, используя Keycloak.js во внешнем интерфейсе, и это работает нормально, вход и регистрация, но Почтальон все еще не может получить доступ к регистрации, что, я думаю, связано с тем, что я не включаю все необходимые заголовки и полезные данные. Думаю, я просто продолжу использовать JS вместо Postman.

Другие вопросы по теме