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 자체의 문제로 간주되어야 합니다.

1개의 좋아요

새 버전으로 테스트해 보았는데 정말 잘 작동합니다! 정말 감사합니다!

1개의 좋아요

@Mr.X_Mr.X , 저도 창이 닫히지 않는 빈 화면 문제 때문에 동일한 문제를 겪고 있었습니다. CAS 설정에서 제가 무언가를 잘못하고 있기 때문이라고 생각했었죠.
콘텐츠 보안 정책을 비활성화했더니 이제 흰색 창이 자동으로 닫힙니다. 문제의 원인을 설명해 주신 Richard님께 감사드립니다!
아직도 예외를 추가하여 이 보안 기능을 활성화하는 방법을 이해할 수 있다면 좋겠습니다.

@RGJ 죄송하지만 이 문제는 여러분의 플러그인과 관련이 있는 것이 아닌가요? 인라인 스크립트가 여러분의 플러그인에 내장되어 있는 것이 아닌가요? 아니면 Rocket.Chat 쪽에 수동으로 추가된 인라인 스크립트에 대해 말씀하신 건가요?
다시 한번 정말 감사합니다

아니요, Rocket.Chat의 CAS 팝업 안에 있습니다. (팝업 창 URL이 RC 호스트네임임을 확인할 수 있습니다.)

알겠습니다, 죄송합니다. 이번 질문이 마지막이 될 거라고 약속드립니다.
그럼 RocketChat의 CSP에 화이트리스트를 추가하는 걸 추천하시나요? (아마도 Discourse 도메인을 추가하는 거겠죠?)

아니요, 이것은 100% Rocket.Chat 측의 문제입니다. Rocket.Chat의 JavaScript가 Rocket.Chat 팝업 창을 닫으려 하고 있지만, Rocket.Chat CSP에 의해 허용되지 않고 있습니다.
CAS나 OAuth2와 같은 Rocket.Chat의 모든 로그인 팝업에서 발생하며, 검색해 보면 다른 보고 사항들도 찾을 수 있습니다.

좋아요. 설명해 주셔서 다시 한번 정말 감사합니다!

토픽별로 특정 채널을 지정할 수 있는 방법이 있을까요? 예를 들어, 이 토픽에 플러그인이 표시되면 채널이 자동으로 "rocket-chat-sso-embed-plugin-for-discourse"로 설정되도록 할 수 있을까요?