Сценарий аутентификации с использованием прокси-ключа безопасности Keycloak
Я построил архитектуру, показанную на изображении.
Запрос аутентификации клиента попадает в контейнер док-станции безопасности прокси-ключа.
Прокси запрашивает фактический контейнер док-станции сервера ключей
Keycloak Server запрашивает у внешнего LDAP учетные данные пользователя.
Сервер ответов Keycloak OK.
Прокси-сервер 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, но безуспешно ...