Как проверить аутентификацию экземпляра keycloak A пользователя из другого экземпляра keycloak B?

Мы настраиваем тестовую среду для keycloak. Среда работает на GCP. У него есть два экземпляра keycloak:

  1. Экземпляр A действует как тестовый ключ для входа в систему, названный test-login-1.
  2. Экземпляр B действует как тестовый внешний поставщик удостоверений с именем test-login-2.

Нам нужно использовать экземпляр A для подключения экземпляра B.

Таким образом, экземпляр A пользователь может войти в систему через экземпляр B.

Есть какой-либо способ сделать это? Как мы можем реализовать эту логику?


person Bhavin Solanki    schedule 26.11.2020    source источник


Ответы (1)


Вам необходимо настроить test-login-2 в качестве поставщика удостоверений для test-login-1. Вы можете прочитать о посредничестве с использованием идентификационной информации здесь. Я буду вызывать internal realm в область, которая будет использоваться из внутреннего Keycloak (test-login-1), и external realm в область, которая будет использоваться из внешнего Keycloak (test-login-2) .

Для этого перейдите в консоль администратора и:

  • выберите свой Realm из test-login-1 и нажмите Identity Providers
  • В правой части страницы выберите Keycloak OpenID Connect в раскрывающемся меню Add provider .... Появится форма Add Identity Provider, оттуда установите:
  • alias
  • the Authorization URL, Token URL, Logout URL, User Info URL and Issuer to the correspondent endpoints that can be found on the realm of test-login-2 on the .well-known endpoint (i.e., <KEYCLOAK_IP>/auth/realms/<External Realm Name>/.well-known/openid-configuration)
    • For the Client Authentication you can select Client secret send as post
    • Для Client ID и Client Secret сначала вам нужно создать новый client во внешнем realm (из test-login-2) и использовать здесь его Client ID и Client Secret.
    • Этот клиент:
    • может иметь Access Type Confidential
    • Standard Flow Enabled : ON
    • Valid Redirect URIs задайте IP-адрес Keycloak, а затем "*", например <KEYCLOAK_IP>*
    • Web Origins : +
    • Save

Имейте в виду, что некоторые из этих конфигураций, возможно, придется адаптировать к вашим потребностям.

Теперь, если все было установлено правильно, на странице входа во внутреннюю область keycloak (test-login-1) отобразится новая кнопка, которую пользователи, хранящиеся во внешней области (из test-login-2), могут нажать для аутентификации во внешней области.

Теперь вы настраиваете свое приложение для предоставления на странице входа во внутреннюю область, пользователи из вашей внутренней области проходят аутентификацию немедленно там, пользователи из внешней области нажимают новую кнопку для явной аутентификации во внешней области.

person dreamcrash    schedule 26.11.2020
comment
Спасибо за Ваш ответ. Дай мне попробовать @dreamcrash - person Bhavin Solanki; 26.11.2020