Keycloak Security Proxy не прокси для внешних приложений URLl - PullRequest
0 голосов
/ 17 января 2019

Сценарий аутентификации с использованием прокси-ключа безопасности Keycloak

enter image description here

Я построил архитектуру, показанную на изображении.

  1. Запрос аутентификации клиента попадает в контейнер док-станции безопасности прокси-ключа.

  2. Прокси запрашивает фактический контейнер док-станции сервера ключей

  3. Keycloak Server запрашивает у внешнего LDAP учетные данные пользователя.

  4. Сервер ответов Keycloak OK.

  5. Прокси-сервер Keycloak отвечает OK и передает управление URL-адресу внешнего приложения.

Проблема заключается в том, что после успешной аутентификации URL-адрес хост-сервера (то есть, где находятся прокси-контейнер keycloak и контейнер аутентификации keycloak) отображается в адресной строке браузера вместо фактического URL-адреса внешнего приложения.

Например, если хост-компьютер, на котором лежат контейнеры keycloak, - это keycloak.containers.gr, а имя домена внешнего приложения - www.external.application.gr, то после успешного входа на страницу входа SSO keycloak, URL в адресной строке выглядит как http://keycloak.containers.gr вместо http://www.external.application.gr. Этот факт уничтожает все относящиеся к сайту сценарии css, js и т. Д. www.external.application.gr.

КОНФИГУРАЦИЯ ПРОКСИ БЕЗОПАСНОСТИ KEYCLOAK

Я использую proxy.json для настройки прокси-ключа безопасности keycloak

{  
        "target-url": "http://www.external.application.gr",  
        "bind-address": "0.0.0.0",  
        "send-access-token": true,  
        "http-port": "8180",  
        "https-port": "8443",  
        "applications": [  
        {  
            "base-path": "/",  
            "adapter-config": {  
                "realm": "internal_applications",  
                "auth-server-url": "http://keycloak.containers.gr:8202/auth",  
                "resource": "test_app",  
                "ssl-required": "external",  
                "credentials": {  
                    "secret": "xxxxx-xxx-xxx-xxxx-xxxxxxxxxxx"  
                }  
            },  
            "constraints": [  
                {  
                    "pattern": "/*",  
                    "authenticate": true  
                }  
            ],  
            "proxy-address-forwarding": true  
        }  
    ]  
 }  

Примечание:
Я попытался изменить параметр «bind-address»: «0.0.0.0», с 0.0.0.0 на IP-адрес www.external.application.gr, но безуспешно ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...