Автоматическое создание учетных записей пользователей при включенном SSO

:bookmark: В этом руководстве объясняется, как автоматически создавать учетные записи пользователей в Discourse при включенном внешнем провайдере аутентификации, чтобы пользователи создавались автоматически без отображения страницы регистрации.

:person_raising_hand: Требуемый уровень пользователя: Администратор

Автоматическое создание учетных записей пользователей с внешней аутентификацией

Когда вы подключаете Discourse к внешнему провайдеру удостоверений через DiscourseConnect, плагин OpenID Connect, плагин OAuth2 Basic, SAML или другой провайдер аутентификации, Discourse создает учетные записи пользователей при первом входе. По умолчанию он показывает страницу регистрации перед созданием учетной записи, даже если провайдер уже предоставил все необходимые данные (электронную почту, имя пользователя и имя).

Автоматическое создание учетных записей устраняет этот дополнительный шаг. При включенных правильных настройках Discourse незаметно создает учетную запись в фоновом режиме и сразу же выполняет вход пользователя, обеспечивая плавный пользовательский опыт.


Включение автоматического создания учетных записей

Чтобы пропустить шаг регистрации, необходимо включить параметр сайта auth_skip_create_confirm. Этот параметр находится в разделе Администратор > Все параметры сайта > Страница входа.

Дополнительно: Включение настроек переопределения

Эти настройки указывают Discourse доверять значениям, предоставленным вашим провайдером удостоверений, и использовать их напрямую, не запрашивая у пользователя их проверку. Перейдите в раздел Администратор > Все параметры сайта > Страница входа и отметьте следующие параметры:

Параметр Описание
auth_overrides_username Использует имя пользователя от провайдера напрямую при каждом входе и запрещает пользователю изменять его локально. Применяется ко всем провайдерам аутентификации.
auth_overrides_email Использует адрес электронной почты от провайдера напрямую при каждом входе и запрещает пользователю изменять его локально. Применяется ко всем провайдерам аутентификации.
auth_overrides_name Использует полное имя от провайдера напрямую при каждом входе и запрещает пользователю изменять его локально. Применяется ко всем провайдерам аутентификации.
auth_overrides_avatar Использует аватар от провайдера напрямую при каждом входе и запрещает пользователю изменять его локально. Применяется ко всем провайдерам аутентификации.

:information_source: Плагины OAuth2 Basic, OpenID Connect и SAML также имеют свои собственные специфичные для плагина настройки переопределения (oauth2_overrides_email, openid_connect_overrides_email, saml_sync_email). Они работают так же, как глобальная настройка auth_overrides_email, но применяются только к соответствующему провайдеру. Для большинства конфигураций приведенных выше глобальных настроек достаточно.


Часто задаваемые вопросы

Применяются ли эти настройки ко всем плагинам аутентификации или только к DiscourseConnect?
Настройки auth_skip_create_confirm и auth_overrides * применяются ко всем внешним провайдерам аутентификации, включая DiscourseConnect, OpenID Connect, OAuth2 Basic, SAML и любой другой плагин, построенный на основе фреймворка аутентификации Discourse.

Могу ли я предварительно создать учетные записи для пользователей до их входа?
Да, но только при использовании DiscourseConnect. Используйте API-маршрут sync_sso, как описано в Sync DiscourseConnect user data with the sync_sso route.

В чем разница между DiscourseConnect и плагинами OAuth2/OIDC?
DiscourseConnect — это собственный протокол SSO Discourse. Он предоставляет вашему внешнему сайту полный контроль над учетными записями Discourse, включая возможность управления членством в группах, переопределения полей и предварительного создания учетных записей через API. Плагины OAuth2 и OpenID Connect используют отраслевые стандартные протоколы, что упрощает подключение к сторонним провайдерам удостоверений с минимальными настройками.


Дополнительные ресурсы

2 лайка