Можно ли сменить провайдера SSO?

Мы перешли на Discourse около двух лет назад и используем SSO из нашей основной системы бэк-офиса в качестве провайдера аутентификации. В ней используется внешний идентификатор (GUID).

Мы готовимся к переходу на новую систему бэк-офиса от другого поставщика. Она поддерживает OAuth2/OpenID, но при переходе на эту новую систему внешние идентификаторы (GUID) наших пользователей изменятся. Поэтому я хочу узнать, сталкивались ли другие с подобной ситуацией и придется ли мне как-то выполнить массовое обновление внешних идентификаторов, хранящихся в настоящее время в нашей системе Discourse?

Всё будет в порядке, если адрес электронной почты пользователя остаётся неизменным.

Спасибо, к сожалению, при тестировании моего нового провайдера SSO я получаю ошибку «primary email has already been taken».

И у меня настроена следующая опция:

image

Это связано с тем, что вы пытаетесь зарегистрироваться, хотя должны войти в систему (поскольку аккаунт уже существует).

Но я не пытаюсь зарегистрироваться. Я захожу на главную страницу, затем нажимаю «Войти», попадаю на страницу входа моего провайдера SSO, успешно аутентифицируюсь, но после ввода пароля оказываюсь на странице «Давайте создадим вашу учётную запись», хотя я никогда не нажимал «Зарегистрироваться».

У меня также есть эти настройки, которые, как я считаю, должны быть подходящими.

Для устранения неполадок я бы начал только с обязательных настроек. Пожалуйста, подтвердите, что пользователь с указанным адресом электронной почты существует с обеих сторон.

Вы вводили этот адрес вручную в Discourse, или он был автоматически заполнен сервером SSO?

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

Есть ли в логах Discourse что-то связанное с SSO? Это может помочь точно определить причину проблемы.

Спасибо. Я проверил, что могу отключить SSO/OpenID в Discourse и войти с тем же адресом электронной почты в Discourse. Я также убедился, что эти же учетные данные работают с моим провайдером SSO.

Когда я снова включаю OpenID в Discourse, я успешно аутентифицируюсь через провайдера SSO, но затем всё равно попадаю на экран Discourse, где предлагается создать учётную запись. Все три значения на этом экране (электронная почта, имя пользователя и полное имя) автоматически заполняются провайдером SSO.

Я также попробовал отключить все вышеупомянутые настройки, но поведение не изменилось.

Не могли бы вы перейти на discourse.example.com/logs и проверить, есть ли там какие-либо предупреждения или ошибки, связанные с SSO?

Спасибо, да, ошибок SSO нет, и ошибок OIDC тоже нет. И я также включил подробное логирование для OpenID.

Извините, у меня сейчас нет никаких предложений. Отвечу, если что-то найду.