В этом руководстве объясняется, как автоматически создавать учетные записи пользователей в Discourse при включенном внешнем провайдере аутентификации, чтобы пользователи создавались автоматически без отображения страницы регистрации.
Требуемый уровень пользователя: Администратор
Автоматическое создание учетных записей пользователей с внешней аутентификацией
Когда вы подключаете 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 |
Использует аватар от провайдера напрямую при каждом входе и запрещает пользователю изменять его локально. Применяется ко всем провайдерам аутентификации. |
Плагины 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 используют отраслевые стандартные протоколы, что упрощает подключение к сторонним провайдерам удостоверений с минимальными настройками.