Настройка DiscourseConnect — официальный единый вход для Discourse (sso)

Худший сценарий, о котором мне известно, требует выполнения следующих условий:

  • адреса электронной почты не проверяются на внешнем сайте
  • в полезной нагрузке SSO не установлен параметр require_activation=true
  • на сайте Discourse существуют учётные записи, не связанные с записью SingleSignOnRecord (владелец учётной записи никогда не входил в Discourse через SSO)

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

На самом деле рекомендуется, чтобы Discourse обрабатывал проверку электронной почты, если внешний сайт этого не делает:

Тем не менее, есть несколько причин, по которым лучше обрабатывать проверку электронной почты на внешнем сайте:

  • требование получать письмо с подтверждением от Discourse создаёт дополнительные трудности для пользователей при первой попытке входа в систему. (В реальности эти трудности всё равно должны возникнуть где-то — либо на стороне Discourse, либо на стороне внешнего сайта.)
  • если в полезной нагрузке SSO установлен параметр require_activation=true, Discourse не будет сопоставлять существующие учётные записи с внешними входами на основе адреса электронной почты. Это проблема, если вы активируете DiscourseConnect после того, как некоторые учётные записи уже были созданы в Discourse через регистрацию с именем пользователя и паролем. Это также проблема, если по какой-либо причине вам когда-либо потребуется удалить записи SingleSignOnRecord в Discourse. В этом случае Discourse не будет автоматически создавать новые записи SingleSignOnRecord, когда пользователи попытаются снова войти в систему.
4 лайка