#java #reactjs #keycloak #keycloak-services #keycloak-rest-api
#java #reactjs #keycloak #keycloak-сервисы #keycloak-rest-api
Вопрос:
Я работаю над интеграцией приложения React с Keycloak. Я установил сервер Keycloak версии 11.0.2 на свой локальный компьютер. Я могу получить доступ к административному логину и создать пользователя admin. Я также создал пользовательский клиент и пользователя с учетными данными, используя Keycloak. Мое приложение react размещено на порту 9000 моего компьютера, а Keycloak — на порту 8080 (по умолчанию). Теперь, когда я перенаправляю на свой URL-адрес приложения, он автоматически перенаправляется на указанный ниже URL:
http://localhost:8080/auth/realms/{Custom_realm}/protocol/openid-connect/auth?client_id={Custom_Client}amp;redirect_uri=http://localhost:9000/amp;state=r8yy83fdgd-27f8-4aa9-a679-01sfdsgd9amp;response_mode=fragmentamp;response_type=codeamp;scope=openidamp;nonce=27fedfgf89-66be-4484-bbcc-aabb4saddc4
URL отображает страницу входа в систему без CSS. Не уверен, почему CSS не отображается.
Также он не аутентифицируется и выдает ошибку
Не удается опубликовать /realms/{Realm}/login-действия /аутентифицировать
Ответ №1:
Я допустил ошибку, установив «Настройки области» -> «Общие» -> «URL интерфейса» на URL домашней страницы приложения, для которого предназначена область.
Не делайте этого.
Очистка этого поля и его сохранение решили проблему для меня.
Ответ №2:
Перенаправление Keycloak на страницу входа, поскольку URL-адрес приложения keycloak проверяет, вошел пользователь в систему или нет, перед перенаправлением в приложение.
Для отладки рендеринга страницы входа в систему без css необходимо знать, какие изменения вы внесли в эту настройку темы realm из папки admin и server themes, потому что по умолчанию keycloak 11.0.2 рендерится с помощью css.
Попытался нажать POST / authenticate из postman и браузера, у меня это работает.
Аутентифицировать рабочий ЗАПРОС CURL:
curl --location --request POST 'http://localhost:8080/auth/realms/test/login-actions/authenticate?session_code=pmE8VZtaYo4u5IN7vOQ_OLh9Ft_n-pftbBqzk9T2z-kamp;execution=7d28dd8f-6436-4280-a1da-51cbca5084c1amp;client_id=accountamp;tab_id=hdEKLv2DNPg' --header 'Content-Type: application/x-www-form-urlencoded' --header 'Cookie: AUTH_SESSION_ID_LEGACY=16e87095-05df-4ca2-88c6-e0c7e2cf6199.milan-latitude-e5450; KEYCLOAK_SESSION_LEGACY=test/0805f781-d0e3-42cf-b34c-be110547d48c/16e87095-05df-4ca2-88c6-e0c7e2cf6199; KEYCLOAK_IDENTITY_LEGACY=eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI5YmMwNGZkOS1kZDQ3LTRhZmUtOWM1NC0wZWQ1NGFmMmU1MWIifQ.eyJleHAiOjE2MDE1NjYxMjksImlhdCI6MTYwMTUzMDEyOSwianRpIjoiYmJmNmE4ZmQtYzBjMi00MWQxLWJkMGEtY2MwZmVmNmViMzYxIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL2F1dGgvcmVhbG1zL3Rlc3QiLCJzdWIiOiIwODA1Zjc4MS1kMGUzLTQyY2YtYjM0Yy1iZTExMDU0N2Q0OGMiLCJ0eXAiOiJTZXJpYWxpemVkLUlEIiwic2Vzc2lvbl9zdGF0ZSI6IjE2ZTg3MDk1LTA1ZGYtNGNhMi04OGM2LWUwYzdlMmNmNjE5OSIsInN0YXRlX2NoZWNrZXIiOiIxV0pWUUN5cDRfcEJJQzZpNENRWnZKMzk2aFBhREdoYmNjWXlDT3VTUm13In0.bteyEEAhIWzbi2MdJAwp9ndCXsTPtjHiGBtMYUglWR0; oauth2_authentication_csrf_insecure=MTYwMDc3ODA2MnxEdi1CQkFFQ180SUFBUkFCRUFBQVB2LUNBQUVHYzNSeWFXNW5EQVlBQkdOemNtWUdjM1J5YVc1bkRDSUFJRFZoTlRaaU1qWTJZVEF6TWpRMk1HUmhaV0pqWWpJNU5UbGtOekl5TURRMXwGvq0FY6TUmmWfUmzaDwnTBf9KC-1Ni5N5pc4IXVcBIQ==; oauth2_consent_csrf_insecure=MTYwMDc3ODIzNXxEdi1CQkFFQ180SUFBUkFCRUFBQVB2LUNBQUVHYzNSeWFXNW5EQVlBQkdOemNtWUdjM1J5YVc1bkRDSUFJRGt3T0RCaVlXSTFZVFJqTVRSbE5HTTVaREUxWldZMFptTTVaREl5TUdNeXxmdLHoVF_3zSxhHR8F2zez-Q37wde7ZnPkb_wt_o-T9g==' --data-urlencode 'username=milan' --data-urlencode 'password=password'
Комментарии:
1. Спасибо Милану за ввод. Но я использую тему keycloak css по умолчанию. Фактически, когда тема не отображалась, я выбрал тему «Keycloak» из основной области и пользовательской области
2. Можете ли вы указать шаги вашей установки keycloak 11.0.2, создания области и пользователя для восстановления проблемы в моем локальном keycloak.
3. Конечно. 1) Я установил сервер keycloack с помощью keycloak.org/downloads.html и скачал сервер Zip sha1 версии . Затем я запустил standalone.bat через командную строку, чтобы запустить сервер keycloak по url localhost:8080 . 2) Я нажал на консоль администрирования и создал пользователя admin с учетными данными. 3) Затем я вошел в систему под именем администратора 4) он привел меня к localhost: 8080/auth/admin/master/console/ #/realms /master 5) Затем я создал область с именем UI_Realm и клиент UI_Client 6) Корневой URL: lhttp: // localhost:9000
4. 7) Допустимый URI перенаправления: localhost: 9000 * 8) веб-источники: * 9) созданный пользователь: указав имя пользователя 10) пользователь включен: Вкл. 11) на вкладке учетные данные: предоставил учетные данные, установив временное отключение 12) Теперь я пытаюсь перейти с URL-адреса приложения localhost: 9000
5. Можете ли вы войти в keycloak UI_Realm, используя этот URL localhost:8080/auth/realms/UI_Realm/ account ?