Keycloak/mod_auth_openidc под обратным прокси

У меня есть целевая страница для моего openid, которая будет перенаправлять на Keycloak, если она еще не авторизована, а затем будет перенаправлять на мою целевую страницу после проверки. Я использовал свой сервер keycloak под Apache mod_proxy.

Конфигурация прошла успешно. Теперь моя проблема заключается в том, что, хотя мои приложения (Gitbucket и Jenkins) используют одну и ту же область для моего mod_auth_openidc, мне все равно нужно войти в приложения (настройка единого входа), хотя я уже был проверен при доступе к моей целевой странице. См. изображение по ссылке: https://ibb.co/VND01SY !https://ibb.co/VND01SY

    DocumentRoot "/var/www/html"
    DirectoryIndex index.html index. cgi index.php index.shtml

    <Proxy "balancer://apache_mod_proxy">
            BalancerMember "http://192.168.122.125:8080"
    </Proxy>

    ProxyPreserveHost On
    ProxyPass "/auth/" "balancer://apache_mod_proxy/auth/"
    ProxyPassReverse "/auth/" "balancer://apache_mod_proxy/auth/"

    OIDCProviderMetadataURL "http://192.168.122.103/auth/realms/ci/.well-known/openid-configuration"
    OIDCClientID "apache24"
    OIDCClientName "apache24"
    OIDCClientSecret "cc251291-9254-42ef-8073-6f5b396f73cc"
    OIDCScope "openid email profile"
    OIDCProviderTokenEndPointAuth "client_secret_basic"

    OIDCRedirectURI http://192.168.122.103/test/redirect_uri
    OIDCCryptoPassphrase 0123456789
    OIDCRemoteUserClaim "preferred_username"

    <Location /test>
       AuthType openid-connect
       Require valid-user
    </Location>

^ Это мои текущие настройки.

Мой ожидаемый результат должен быть:

Если Keycloak еще не прошел проверку: 1. Доступ к index.html -> перенаправление на Keycloak при первом входе в систему 2. Перенаправление на index.html после проверки (содержит ссылки на Jenkins и Gitbucket) 3. При нажатии ссылки для приложений, Мне не нужно повторно входить в ту же область.

Пожалуйста, поправьте меня, если я правильно понимаю сценарий.

Я также не знаю, как использовать выход из системы и где разместить выход для целевой страницы и SSO.


person deji04    schedule 14.05.2019    source источник


Ответы (1)


SSO для Jenkins и Gitbucket зависит от того, как эти приложения настроены для распознавания пользователя. Они должны быть настроены так, чтобы они зависели от заголовков, установленных обратным прокси-сервером, перед которым запущен mod_auth_openidc.

person Hans Z.    schedule 14.05.2019
comment
Извините, но я не совсем понимаю, как первая аутентификация [index.html -> keycloak] не распознает второй уровень аутентификации [jenkins/gitbucket], хотя я использовал ту же область. Должен ли я автоматически входить в систему после прохождения первой аутентификации? и мне не хватает конфигурации для этого? благодарю вас - person deji04; 14.05.2019