Невозможно выполнить однократный выход из системы Keycloak - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть два приложения, скажем, 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>

Версии различных используемых систем:

  1. mod_auth_openidc 2.3.7
  2. apache 2.4.34
  3. Ubuntu 16.4
  4. Keycloak 4.2.1
...