Я хочу использовать 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, кода еще нет. У меня настроен keycloak, и я пытаюсь отправлять запросы от почтальона на keycloak. Я могу войти в систему, но не зарегистрироваться, так как я не мог узнать, как будет выглядеть полезная нагрузка для POST-запроса. Кроме того, я нахожусь на этапе построения концепции, но меня смущает, должна ли регистрация пользователя быть отправлена непосредственно в Keycloak по указанному мной URL-адресу (или если это вообще возможно) или мне нужно отправить его на бэкэнд сначала, а затем используйте Admin Rest-api для регистрации пользователя.
Создайте новую область в Keycloak или используйте существующую.
Создайте новый клиент или используйте существующий, для которого вы хотите включить самостоятельную регистрацию.
В настройках клиента на вкладке «Вход» установите для параметра «Регистрация пользователя» значение «Включено».
На вкладке «Регистрация» вы можете настроить регистрационную форму и добавить настраиваемые поля.
Сохраните настройки и протестируйте процесс регистрации, перейдя по URL-адресу регистрации для клиента. URL-адрес регистрации можно найти в настройках клиента на вкладке «Установка».
Используйте REST API Keycloak, чтобы создать нового пользователя, отправив запрос POST в конечную точку регистрации. Вот пример тела запроса:
{
"username": "john.doe",
"email": "[email protected]",
"enabled": true,
"firstName": "John",
"lastName": "Doe",
"credentials": [{
"type": "password",
"value": "password"
}]
}
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 направляет меня на домашнюю страницу с документами и т. д.
Хорошо, теперь я помещаю приложение JavaScript, используя Keycloak.js во внешнем интерфейсе, и это работает нормально, вход и регистрация, но Почтальон все еще не может получить доступ к регистрации, что, я думаю, связано с тем, что я не включаю все необходимые заголовки и полезные данные. Думаю, я просто продолжу использовать JS вместо Postman.
Пожалуйста, включите текущий код, чтобы мы могли лучше понять