Это руководство объясняет, как автоматически создавать учетные записи пользователей в Discourse при включенном внешнем провайдере аутентификации, чтобы пользователи создавались автоматически без отображения страницы регистрации.
Требуемый уровень пользователя: Администратор
Автоматическое создание учетных записей пользователей с внешней аутентификацией
При подключении Discourse к внешнему провайдеру идентификации через DiscourseConnect, плагин OpenID Connect, плагин OAuth2 Basic, SAML или другой провайдер аутентификации, учетные записи пользователей создаются при первом входе. По умолчанию система показывает страницу регистрации перед созданием учетной записи, даже если провайдер уже предоставил все необходимые данные (электронная почта, имя пользователя и имя).
Автоматическое создание учетных записей устраняет этот дополнительный шаг. При включении соответствующих настроек 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 используют стандартные отраслевые протоколы, что упрощает подключение к сторонним провайдерам идентификации с минимальными настройками.