재귀적 사칭

안녕하세요 여러분,

클라이언트를 위해 Discourse 서버를 설정하고 SSO가 도입되면 결국 사용되지 않게 될 테스트 계정을 만들도록 했습니다. 관리자 계정 A를 사용하여 모든 것을 설정하고, 테마를 커스터마이즈했으며, 모든 카테고리의 설명을 작성했습니다.

DiscourseConnect(유일한 가입 옵션)를 설정한 후, 다른 시스템에서 관리자 계정으로 로그인하여 해당 계정 B에 관리자 권한을 부여했습니다. 이후로는 더 이상 A 계정으로 로그인할 수 없었기 때문에 모든 작업을 B 계정으로 수행했습니다.

그런 다음 “대리(impersonate)” 버튼을 발견하고 호기심이 생겼습니다. 카테고리 설명, FAQ 등을 편집할 때 A 계정을 삭제하지 않고 대신 A를 대리할 수 있다면 좋겠다는 생각이 들었습니다. 그래서 B로 A를 대리하여 테스트를 위해 여러 편집을 해 보았고, 모든 것이 잘 작동했습니다.

그런데 포럼의 봇 계정도 대리할 수 있을지 궁금해졌습니다. 마침 A(관리자)를 대리하고 있던 상태에서 C를 대리하기로 결정했습니다. 성공했고, 정말 좋았으며, 성실하게 로그아웃한 후 일상으로 돌아갔습니다.

이제 B 계정으로 로그인했을 때 A나 C를 더 이상 대리할 수 없습니다(다른 사용자는 정상입니다). 버튼이 표시되어야 할 위치에는 "관리자와 модератор는 삭제할 수 없습니다"라고만 표시됩니다.
로그에는 "B가 A를 대리했습니다"와 "A가 C를 대리했습니다"라고 기록되어 있습니다.

현재 제 단계를 재현할 방법이 없기 때문에 이것이 버그 리포트에 해당할지, 아니면 쉽게 해결할 방법이 있는지 확신이 서지 않습니다.

미리 감사드립니다.
Flo

플로, 커뮤니티에 오신 것을 환영합니다 :waving_hand:t2:

가짜 ID(임포네이트) 버튼은 여전히 남아 있고, 최신 빌드를 사용하고 있습니다.

이메일로 로그인하기 위해 /users/admin-login을 사용하여 Admin A 계정에 로그인할 수 있을까요? 그렇게 하면 문제를 해결할 수 있을지도 모릅니다.

게이빈님,

인터페이스를 통해 현재 사용 중인 버전을 어떻게 확인할 수 있나요? 대시보드에는 8월 3일에 마지막으로 업데이트되었다고 표시되어 있지만, 버전 번호를 찾을 수 없습니다.

감사합니다.

JammyDoger님, 안녕하세요!

이 경로가 있다는 걸 몰랐어요! DiscourseConnect를 우회하는 문제를 확실히 해결해 주긴 하지만, 비유하자면 아직 매듭을 풀지는 못했어요. 그런데 A 사용자에게는 위장(Impersonate) 버튼이 표시되네요. 그렇다면 현재 아무도 위장하지 않는 상태인가요?

소스를 볼 수 있습니다. 찾는 데 어렵지 않습니다.

/u/admin-login 페이지를 방문하여 관리자 계정 이메일을 SSO로 로그인할 수 있는 주소로 변경할 수 있습니다. 또한 Rails 콘솔을 통해 주소를 변경할 수도 있습니다.

제이, 안녕하세요.

관리자에게 정보를 의도적으로 숨기는 경우라면 그 정보가 공개되지 않을 것이라고 잘못 가정했습니다. 2.8.0.beta4로 진행하겠습니다.

두 번째 제안에 대해서는, 다른 시스템에 사용자 A에 해당하는 계정이 없기 때문에 그렇게 하기를 원하지 않습니다. 다만, 모든 사용자는 포럼에 계정을 가질 수 있습니다.

Admin A 계정으로 로그아웃하여 관리자 계정으로 초기화되었는지, 다른 사용자를 사칭하고 있지 않은지 확인해 주시겠습니까?

(혹시 모르니 Admin B도 로그아웃해 주세요 :slightly_smiling_face:)

JammyDodger님,

네, 둘 다 로그아웃했다가 B에 다시 로그인해 봤는데 안 되네요 :upside_down_face:

당신의 것은 이런 모습인가요?

제 지식의 한계가 여기까지네요. :slightly_smiling_face: 관리자도 다른 관리자를 사칭할 수 있는지 확실하지 않았어요 (개발자만 가능하다고 생각했거든요). 관리자 B를 이 목록에서 제거하셨나요?

더 깊은 지식을 가진 누군가가 더 적절한 답변을 덧붙여 주길 바라요. :slightly_smiling_face::crossed_fingers:

가빈, 안녕하세요.

아니요, 버전 섹션을 찾지 못하겠습니다.

그렇다면 해당 계정은 Admin이 아닙니다.

@JammyDodger님이 언급한 대로, 앱의 yml 파일에서 Dev 섹션에 계정 B를 추가하는 것을 권장합니다.

  ## TODO: List of comma delimited emails that will be made admin and developer
  ## on initial signup example 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'gavin@truecode.co.za'

결국 올바른 방향이었던 것 같네요. 감사합니다!
귀하의 의견에 깊이 감사드립니다 ˆˆ

해결됐어요! 임페르소네이트 버튼이 다시 나타났네요! 감사합니다, 가빈 ˆˆ

다만 대시보드의 버전 섹션은 여전히 보이지 않고, 애초에 왜 누군가를 임페르소네이트할 수 있었는지는 여전히 불분명합니다..