Discourse에서 다른 계정으로 오접속/연결되는 문제

최근 WordPress 사용자들이 Discourse에서 잘못된 사용자로 연결되는 사례가 16건 발생했습니다.

관리자로 사용자 프로필에 접근하면 SSO 기록에 잘못된 사용자의 정보가 표시되는 것을 확인할 수 있습니다. 해당 기록을 삭제하면, 사용자가 다음에 WordPress를 통해 로그인할 때 Discourse에서 올바른 사용자 프로필에 접근할 수 있습니다.

이전에 비슷한 문제를 경험하신 분 계신가요?

제이크, 안녕하세요.

이 문제는 이전에 해결되지 않았던 이전 이슈와 관련이 있는 것 같습니다.

해당 사례에서는 SSO 상세 정보의 이메일 주소와 로그인 로그의 이메일 주소 사이에 차이가 있었던 것으로 보입니다.

해당 사례가 시사했던 내용과 동일한 문제일 가능성이 있습니다.

문제는 SSO 페이로드에서 require_activation이 true로 설정되어 있기 때문일 것으로 추정됩니다.

상세 정보가 잘못되었다는 것을 어떻게 아시나요? 의심을 하는 것이 아니라, 문제가 어디서 발생하고 있는지 정확히 파악하려고 합니다. 공개적으로 공유하기 꺼려지신다면 세부 정보를 개인 메시지(PM)로 보내주시면 됩니다.

Angus 씨,

다시 한번 도와주셔서 감사합니다. 같은 문제인 것 같습니다.

상세 정보가 잘못된 것을 어떻게 아셨나요?

사용자 프로필의 사용자 이메일 주소:

그리고 SSO 기록의 사용자 이메일 주소:

가 서로 다른 프로필로 이동한(crossed over) 사용자들의 경우 일치하지 않았기 때문입니다. 사용자 ID와 이메일 주소는 로그인한 사람의 것이었지만, 잘못된 프로필에 연결되어 있었습니다.

제이크, 늦게 답장 드려서 죄송합니다.

여기서 가능한 원인은 워드프레스 인스턴스에서 단일 이메일 주소가 여러 사용자 계정에 연결되어 있을 수 있다는 점입니다. 그런 가능성이 있다고 생각하시나요?

예를 들어, 워드프레스에서 사용자 이메일 확인 없이 로그인할 수 있는 사용자 등록 프로세스를 사용한 적이 있거나, 특정 시점에 사용자 임포트를 수행한 적이 있나요?

이 문제가 지속적으로 발생하고 있나요, 아니면 일부 사용자에 한해서만 그런가요? 해당 사용자 계정은 오래된 것인가요, 아니면 새로 생성된 것인가요?

걱정 마, 앵거스! 너의 주의를 기대하지 않아!

사용자 계정은 WooCommerce에서 구매가 이루어질 때 생성됩니다. Woo는 원래 서브사이트에 있었지만, 사이트들이 통합되었습니다. 두 사이트가 사용자 테이블을 공유했으므로, 적어도 이론적으로는 ID가 변하지 않았어야 합니다.

나보다 이전에는 웹사이트 접근이 MemberMouse를 통해 관리되었습니다. 그 후 약 5년 전부터는 iMember360으로 관리되었고, 최근에는 Memberium으로 교체되었습니다. 이 둘은 기본적으로 동일한 플러그인으로, InfusionSoft라는 CRM과 통합되어 CRM의 데이터에 기반하여 다양한 페이지에 대한 접근을 허용합니다.

이러한 플러그인의 작동 방식은 고유한 이메일 주소를 요구하므로, 동일한 이메일 주소를 여러 사용자가 사용할 수 없습니다.

이것은 계속되는 문제이지만, 매우 소수의 사용자에게만 제한적으로 발생하는 것으로 보입니다. 기존 ‘오래된’ 사용자 두 명에게 발생했고, 최근에는 5일 된 계정도 해당 문제가 발생했으므로, 신규 사용자만의 문제가 아닙니다.

이 문제는 좀 까다롭습니다. require_activation이 설정에서 true로 설정되어 이 문제를 일으키는 방법에 대해 몇 가지 추측이 있지만, 선택지가 몇 개 있습니다.

현재 WP Discourse 플러그인에 대한 새로운 테스트 스위트를 마무리하고 있으며, SSO 기능에 로깅을 추가하고 있습니다. 이 문제의 원인을 파악할 수 있는 추가 로깅을 작성하고 있습니다. 이 작업은 다음 달에 플러그인에 포함될 예정이므로, 곧 더 명확한 답변을 드릴 수 있을 것입니다.