SSO 로그인 시마다 TL2 환영 메시지가 전송됩니다

다음과 같은 상황이 발생하고 있습니다:

일부 사용자는 로그인할 때마다 TL2 환영 알림(“신뢰 수준이 상향 조정되었습니다”)을 받고 있습니다.

다음과 같은 조건에서 이 문제가 발생합니다:

  • Discourse가 SSO 클라이언트로 설정된 SSO 로그인이 활성화되어 있는 경우
  • WP-Discourse에서 "Sync User Data"가 활성화되어 사용자가 Wordpress에 로그인할 때마다 sync_sso 호출을 발급하는 경우
  • sync_sso가 사용자의 현재 신뢰 수준보다 낮은 grant_trust_level을 가진 그룹을 설정하는 경우

이로 인해 사용자의 신뢰 수준이 처음부터 다시 계산되고, 매번 환영 메시지가 전송됩니다.

6개의 좋아요

안녕하세요,

이 버그를 공유해 주셔서 감사합니다! 이 버그를 재현해 보려 했지만 로컬 환경에서는 재현이 불가능했습니다. 제 환경 설정은 다음과 같습니다:


(Wordpress)

  • 이메일 steaky@cat.com로 Wordpress 사용자 “Steaky” 생성
  • wpdc_custom_sso_params를 추가하여 SSO로 로그인하는 모든 사용자에게 cats 그룹을 설정: $params['groups'] = 'cats';

(Discourse)

  • 이메일 steaky@cat.com로 사용자 “Steaky” 생성
  • Steaky의 trust_level_3을 정당한 방법으로 설정 (잠금 해제 상태)
  • “cats” 그룹을 생성하고 "cats"의 "멤버에게 자동으로 부여되는 신뢰 수준"을 2로 설정

Wordpress와 Discourse 연결: :ok_hand: 사용자 데이터 동기화: :ballot_box_with_check:

(Discourse)

  • Steaky 로그인 → Wordpress로 리다이렉트되어 로그인 → Discourse로 리다이렉트됨
  • (Steaky에게 “cats” 그룹이 설정되었는지 확인)
  • Steaky가 환영 메시지를 볼 수 없음

^ SiteSetting.discourse_connect_overrides_groups를 사용하여 위 단계를 반복, 동일한 결과.


더 자세한 설정을 사용 중이신 것으로 보입니다. 영향을 받는 사용자들의 설정에 대해 더 많은 정보를 공유해 주시면 감사하겠습니다:

  • 어떤 다른 “Discourse Connect” 사이트 설정이 활성화되어 있나요?
  • 영향을 받는 사용자들이 특정 신뢰 수준을 부여할 수 있는 그룹에 별도로 가입되어 있나요?
  • 영향을 받는 사용자의 신뢰 수준이 잠겨 있나요? 어떤 그룹에 속해 있나요?
  • 도움이 될 수 있는 기타 정보

감사합니다!

4개의 좋아요

이 버그는 1년 이상 지난 것이며, 그 사이 클라이언트가 Discourse에서 떠났기 때문에 더 이상 완전히 재현할 수 없습니다. 그러나 저는 항상 상세한 메모를 작성하기 때문에 당시 SSO 페이로드 기록도 보유하고 있습니다. 다만 해당 인스턴스의 다른 설정을 확인하거나 정확한 재현을 시도하는 것은 불가능합니다.

제 메모로 돌아가 보겠습니다. 당시 발생한 상황은 여러분이 하려는 것과 약간 달랐습니다. SSO는 빈 groups 필드를 전달하고 있었습니다(단순히 groups=). 그러나 문제가 된 사용자는 SSO 제공자가 알지 못하는 다른 그룹의 멤버였으며, 이 그룹은 멤버들에게 TL2를 강제하고 있었습니다.

또한 제 기억에 따르면 TL2와 TL3의 환영 메시지는 동작 방식이 다르므로, 재현을 시도할 경우 TL3 대신 TL2를 사용해야 할 수 있습니다.

따라서 재현을 위해 생각컨대 다음 단계를 수행해야 합니다. (두 번째 그룹을 도입했음을 유의하세요)

(Wordpress)

  • 이메일 steaky@cat.com로 WordPress 사용자 "Steaky"를 설정합니다.
  • wpdc_custom_sso_params를 추가하여 $params['groups'] = 'dogs'; 로 로그인하는 모든 사용자에게 dogs 그룹을 설정합니다.

(Discourse)

  • 이메일 steaky@cat.com로 사용자 "Steaky"를 생성합니다.
  • Steaky의 신뢰 수준(trust level)을 정당한 방법으로(잠금 해제된 상태로) trust_level_1로 설정합니다.
  • “cats” 및 “dogs” 그룹을 생성하고, "cats"의 "멤버에게 자동으로 부여되는 신뢰 수준(Trust level automatically granted to members)"을 2로 설정합니다.
  • Steaky를 cats 그룹의 멤버로 만듭니다.
2개의 좋아요

이 문제를 추가로 더 살펴보셨나요?

1개의 좋아요

마지막 답변 이후로 해당 버그를 더 이상 조사하지 않고 있었지만, 작성해 주신 내용을 읽었고 정말 감사드립니다! 이렇게 깔끔한 로그를 남겨 주시다니 정말 놀랍네요. 아직 제 손에 남아 있는 작업이지만 곧 다시 살펴보겠습니다. 확인해 주셔서 감사합니다. :smiley:

3개의 좋아요