Неверный запрос, отсутствует имя пользователя параметра после входа в saml keycloak - PullRequest
0 голосов
/ 25 апреля 2018

Я использую Keycloak в качестве брокера идентификации для поставщика идентификационных данных simplesamlphp для входа в угловое приложение.

Keycloak правильно перенаправляет к поставщику идентификации с маской входа.После входа в систему поставщик идентификационных данных перенаправляет, как ожидается, к Keycloak.К сожалению, я получаю следующее сообщение об ошибке (в формате JSON):

{"error": "invalid_request", "error_description": "Отсутствует параметр: username"}

Мой IdP имеет пользователя,Мой Keycloak нет, так как я не хочу хранить пользователей дополнительно в Keycloak.

Моя конфигурация брокера выглядит следующим образом: enter image description here

Моя конфигурация клиентаэто: enter image description here

Я не знаком ни с SAML, ни с Keycloak, поэтому, если мне потребуется предоставить какую-либо другую информацию, пожалуйста, сообщите мне.

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Хорошо, мне удалось решить эту проблему. Вот как это сделать:

Очевидно, что на данный момент KC всегда хранит аутентифицированных пользователей локально. - это запрос функции для опции НЕТ ИМПОРТА, но он был отложен. Смотрите здесь: KEYCLOAK-4429

Итак, вы просто позволяете KC создать локального пользователя и автоматически связать брокерскую учетную запись с вновь созданным пользователем. Для этого вы создаете поток аутентификации с этими двумя шагами, как показано здесь: Поток аутентификации Однако обратите внимание, что выполнение автоссылки доступно только после KC 3.5, поэтому JBOSS SSO 7.2 (на основе KC 3.4), вероятно, не будет поддерживать это.

Затем этот поток используется в конфигурации вашего Identity Provider в качестве первого потока входа в систему.

В следующий раз при входе через внешний IdP KC создаст нового пользователя и свяжет его с тем, который использовался во внешнем IdP. Созданный пользователь затем будет использоваться с вашим клиентом.

Еще две вещи:

  • Вы можете настроить Mappers с помощью своего Identity Provider для автоматического импорта атрибутов из утверждений утверждений непосредственно вновь созданному пользователю KC. Затем вы можете настроить Mappers для своего клиента так, чтобы они передавали эти атрибуты в качестве дополнительных утверждений (в моем случае мне понадобился UID с атрибутом, полученный через SAML).
  • Вы можете настроить федерацию пользователей в своей области, например, добавив соединение LDAP, в этом случае KC не только создаст нового пользователя по умолчанию, но и правильно импортирует указанного пользователя через LDAP и , а затем свяжет его с вашим пользователем IdP.
0 голосов
/ 03 мая 2018
...