У меня есть два приложения, скажем, App1 и App2. App1 защищен с помощью mod_auth_openidc, а App2 размещен на wildfly и защищен с помощью специального java-адаптера keycloak. SSO отлично работает на обоих приложениях. Однако проблема возникает в случае выхода из системы. Когда я выполняю выход из приложения App1, оба приложения перенаправляются для входа в систему при следующем запросе (как и ожидалось). Тем не менее, когда я выполняю выход из системы в App2, App1 по-прежнему работает как обычно, а не запрашивает повторный вход в систему при следующем запросе.
В соответствии с документацией о keycloak, URL-адрес администратора должен быть установлен для конкретного клиента, который может использоваться сервером Keycloak для отправки внутренних запросов к приложению для различных задач, таких как выход из системы пользователей или политики push-отзыва.
Из журналов apache я не вижу никаких внутренних запросов, сгенерированных keycloak для выполнения выхода из App2. Если я сгенерирую выход из утилиты администратора keycloak, то в журналах apache будет показано действие post для k_logout.
Я думаю, мне не хватает какой-то конфигурации, но не знаете что? Любая идея / помощь в этом отношении будет высоко оценена. Большое спасибо.
Более подробная информация:
App1 - веб-приложение на основе Django. Он размещен на Apache и защищен с помощью mod_auth_openidc. Конфигурации apache и mod_auth_openidc приведены ниже.
Приложение 2 - Spring MVC (Java). Это развернуто на Wildfly и защищено с помощью адаптера keyclaok (согласно процедуре, упомянутой здесь ).
Конфигурации Keycloak - Оба приложения настраиваются в Keycloak с использованием настроек, описанных здесь .
Конфигурации Apache и mod_auth_openidc:
WSGIDaemonProcess myproject python-home=path_to_v_env python-path=path_to_python
WSGIProcessGroup myproject
WSGIScriptAlias / path_to_wsgi.py
OIDCProviderMetadataURL http://keycloak_domain/auth/realms/demo/.well-known/openid-configuration
OIDCRedirectURI http://domain_name/testapp
OIDCCryptoPassphrase random4321
OIDCClientID testapp
OIDCClientSecret client_secret
OIDCDefaultLoggedOutURL http://domain_name/
OIDCScope "openid email profile"
<Location /testapp/>
AuthType openid-connect
Require valid-user
</Location>
Версии различных используемых систем:
- mod_auth_openidc 2.3.7
- apache 2.4.34
- Ubuntu 16.4
- Keycloak 4.2.1