Rocket.Chat SSO + плагин для встраивания

Я добавил эту функцию в плагин. Просто обновите его до последней версии, а затем настройте параметр discourse rocketchat default channel на пустое значение.

1 лайк

Отлично! Как только я вернусь домой на следующей неделе, сразу же обновлю и протестирую это.
Ещё раз спасибо!

Этот плагин вызывает проблемы у всех моих пользователей:

После нажатия кнопки входа через CAS появляется всплывающее окно со следующей ссылкой:

rocketchat.domain/_cas/BJZ6ef4aSDdeEf5C?ticket=c27a3525gg4ggff7f859f4a3a37c

(Я случайно изменил некоторые части токенов вставленной ссылки в целях безопасности).

Это пустая страница, которая не закрывается сама, и вход не выполняется, пока пользователь не закроет окно. Как только пользователь закрывает это всплывающее окно, вход выполняется, и далее всё работает нормально. Это происходит каждый раз при попытке входа, даже для пользователей, которые уже входили ранее.

Вам удалось настроить автоматическое перенаправление? Я пробовал как пользовательский скрипт от @RGJ, так и решение из CAS Plugin: Add direct login redirect for a CAS-enabled RC instance · Issue #2327 · RocketChat/Rocket.Chat · GitHub, но безрезультатно.

Там есть встроенный скрипт для закрытия этого окна, который, вероятно, не включён в ваш CSP.
В качестве быстрого решения на стороне Rocket.Chat перейдите в Администрирование — Общие и отключите параметр «Включить политику безопасности контента» (Enable Content-Security-Policy). Обратите внимание, что это может создать уязвимости безопасности на вашем сайте. Вам следует устранить корневую проблему.

Пожалуйста, ограничьте все отчёты и запросы здесь проблемами, касающимися плагина. Любая ошибка, возникающая внутри Rocket.Chat или на вашем хосте Rocket.Chat, должна рассматриваться как проблема Rocket.Chat, а не проблема Discourse или плагина.

1 лайк

Я протестировал новую версию, и она работает отлично! Большое спасибо!

1 лайк

@Mr.X_Mr.X, у меня была та же проблема с пустым окном, которое не закрывалось, и я думал, что дело в какой-то ошибке в моей конфигурации CAS.
Я отключил политику безопасности контента, и теперь белые окна закрываются автоматически. Спасибо, Ричард, за объяснение, где была проблема!
Тем не менее, было бы здорово понять, как добавить исключение и включить эту функцию безопасности.

@RGJ, извините за вопрос, но не связана ли эта проблема с вашим плагином? Не встроен ли этот скрипт в ваш плагин? Или вы говорили о встроенном скрипте, добавленном вручную на стороне Rocket.Chat?
Ещё раз большое спасибо.

Нет, это всплывающее окно CAS внутри Rocket.Chat (вы можете увидеть, что URL всплывающего окна находится на хосте RC).

Хорошо, извините, обещаю, что не буду задавать больше вопросов после этого единственного: тогда вы бы посоветовали добавить белый список в CSP Rocket.Chat (вероятно, добавив домен Discourse, я так понимаю)?

Нет, это на 100% проблема на стороне Rocket.Chat. JavaScript Rocket.Chat пытается закрыть всплывающее окно Rocket.Chat, но это запрещено политикой безопасности контента (CSP) Rocket.Chat.
Это происходит с каждым всплывающим окном входа в Rocket.Chat, например, CAS или OAuth2. Если вы поищете это, то найдёте и другие отчёты.

Отлично. Ещё раз большое спасибо за ваше объяснение!

Есть ли возможность создать каналы для конкретных тем? То есть, если плагин отображается в этой теме, канал автоматически устанавливается в значение «rocket-chat-sso-embed-plugin-for-discourse»?