Привет! @david, пожалуйста, помоги, великий человек! ))))
Мне удалось успешно настроить связку Discourse + Keycloak SSO + плагин SAML + плагин OpenID Connect. Единственное, что омрачает эту красоту, — это выход из системы.
Я выхожу из форума, пользователь разлогинивается, эта часть работает корректно.
Однако при просмотре активных сессий в Keycloak сессия пользователя, вышедшего из форума, не удаляется.
Подозреваю, что это связано с настройками URL выхода. Просто не понимаю, где именно нужно изменить настройки — в Discourse или в Keycloak.
Да! Всё работает отлично! Хочу уточнить, что необходимо установить переменную openid_connect_rp_initiated_logout_redirect.
@david У меня есть ещё один вопрос. Важный вопрос.
Сейчас я нахожусь на финальном этапе тестирования SSO через Keycloak и мне нужно выбрать протокол — SAML или OpenID Connect.
Мне больше понравился OpenID Connect, но сейчас я столкнулся с неприятной проблемой при создании новых пользователей при использовании OpenID Connect.
Чтобы понять проблему, начну с другого конца. Когда новый пользователь форума создаётся с помощью SAML, пользователь создаётся в SSO и прозрачно передаётся на создание в Discourse. При этом он сразу активируется — это важно!
То есть, когда я нажимаю кнопку “Регистрация” на форуме Discourse, я перехожу в Keycloak, где создаю пользователя, подтверждаю его email и т. д. После этого меня перенаправляют на форум Discourse, где пользователь уже создан и АКТИВИРОВАН автоматически:
Это крайне неудобно! Зачем это нужно? Ведь email пользователя уже был подтверждён при создании учётной записи в SSO. Есть ли способ избавиться от этого окна?
Если это сообщение отображается для OpenID Connect, это означает, что провайдер идентификации передал в Discourse сообщение email_verified: false. Если вы включите детальное отладочное логирование, оно выведет все данные аутентификации в /logs для вашего анализа. Надеюсь, найдётся способ заставить Keycloak корректно передавать состояние подтверждения.
Если вы на 100% уверены, что Keycloak проверил адреса электронной почты, всё в порядке. Если же адреса не проверены, выполнение этого действия откроет ваш сайт Discourse для атак злоумышленников.
Я не знаком с Keycloak, но любой из этих подходов кажется приемлемым. Если позже вы захотите настроить отдельные права доступа для каждого форума, создание отдельных клиентов может упростить эту задачу