OpenID Connect и SSO

Я хочу использовать OpenID Connect (Keycloak) в качестве решения для единого входа (SSO), при этом Discourse будет одним из клиентов.

Я установил и настроил плагин аутентификации OpenID Connect в Discourse, но, похоже, некоторые аспекты SSO не применяются, и я не уверен, насколько функции SSO и этого плагина OIDC пересекаются.

Согласно статье Советы по синхронизации состояния входа через SSO, должно быть возможно войти напрямую с помощью SSO по URL-адресу вроде forum.example.com/session/sso, но эта возможность отсутствует при использовании только плагина аутентификации OpenID Connect. Попытка также настроить параметры enable_sso и sso_url привела к неработоспособной конфигурации.

Как следует использовать OIDC вместе с SSO?

В контексте дискуссии «SSO» означает этот протокол: Setup DiscourseConnect - Official Single-Sign-On for Discourse (sso) (мы работаем над переименованием его в DiscourseConnect, потому что в данный момент это очень запутанно!)

Чтобы использовать OpenID Connect, не используйте enable_sso или sso_url.

Если OpenID Connect — единственный включённый метод входа, то перенаправление пользователя на /login должно запустить процесс аутентификации.

Окей, спасибо. Это значит, что стандартную встроенную аутентификацию (логин/пароль в Discourse) нужно отключить? Или её можно оставить как опцию?

Это зависит от вас. Вы можете управлять этим с помощью настройки enable_local_logins.

Если оставить её включённой, то при посещении /login пользователю будет предложено выбрать вариант входа. Если отключить, вход через OpenID Connect начнётся немедленно.