계정이 비활성화되었는데, 이유를 알고 싶습니다

안녕하세요,

API를 통해 다양한 작업을 수행하는 봇 사용자를 하나 운영하고 있습니다. 이 사용자는 신뢰할 수 있는 사용자(trusted user)이자 관리자(admin) 권한을 가지고 있는데, 이번 주에 두 번이나 이유 없이 비활성화되었습니다. 스태프 작업 로그나 에러 로그를 확인해 보았지만, 사용자가 비활성화된 원인에 대한 단서를 찾을 수 없습니다.

어떤 로그를 확인해야 하는지에 대한 정보나, 시스템이 사용자를 비활성화하는 가능한 원인에 대해 도움을 주실 수 있을까요?

감사합니다.
Pekka

InvalidateInactiveAdmins 스크립트 때문인 것 같습니다. 로그 항목이 생성되지 않는 것 같은데, 소스 코드 세부 사항에 익숙하지 않아서 확인해 주실 수 있나요?

네, 맞습니다. 해당 부분에 대한 로그를 추가하는 것을 분명히 살펴봐야 할 것 같아요. 이 기능을 모르고 계신다면 매우 혼란스러울 수 있거든요. 할 일 목록에 추가해 두겠습니다.

최신 버전의 Discourse를 사용 중이시라면, 관리자 계정을 비활성화하기 전에 몇 가지 추가 확인 항목을 최근 추가했습니다:

해당 사용자가 게시물을 작성했거나 최근 사용된 API 키가 연결되어 있는 경우 비활성화되지 않습니다. API 키는 반드시 해당 사용자에게 구체적으로 연결되어 있어야 하며, “모든 사용자” 키는 아닙니다.

네, 확인했습니다. 불행히도 저는 이전 버전을 사용 중입니다.

업데이트를 권장하지만, 업데이트가 불가능하다면 다음과 같은 옵션이 있습니다:

  • 계정을 ‘Impersonate’(대리)하여 1년 동안 비활성화되지 않도록 설정합니다.

  • invalidate_inactive_admin_email_after_days 값을 더 큰 숫자로 설정하거나, 0으로 설정하여 비활성화를 해제합니다

우리는 두 번째 방법을 선택했고, 몇일 동안 지켜보며 재발 여부를 확인했습니다. 그 결과, 원인이 잘못 파악되었던 것으로 드러났습니다.

지난 업데이트 당시 플래깅 방식과 관련하여 많은 문제가 발생했기 때문에, 다른 선택지가 없는 한 업데이트를 진행하지 않을 것입니다.

보안 취약점을 좋아하신다면 좋겠네요 :rofl:

업데이트를 적용하지 않는 것에는 문제가 있다는 점을 인지하고 있습니다. 또한, 우리의 Discourse 사용 방식은 표준이 아니며, 실제 Discourse 서버는 사용자가 직접 접근하지 않고 백엔드로만 사용되고 있습니다. 따라서 현재로서는 괜찮다고 생각합니다.
더 큰 문제는, 행동이 변경되었기 때문에 사용자가 화가 나 있고, 팀이 레거시 행동에 대한 옵션을 추가하기를 원하지 않아 변경 사항을 되돌릴 수 없다는 점입니다.

FEATURE: Add message to log when admins are automatically deactivated · discourse/discourse@a9d0d55 · GitHub 에 따라 완료했습니다.