SSO가 차단된 IP 주소를 활용하여 가입을 차단하나요?

정답을 알고 있다고 생각하지만, 이것이 의도된 동작인지 버그가 아닌지 확인하고 싶었습니다(의도된 동작이라고 생각합니다).

정리하자면, 저희 사이트는 SSO를 사용하고 있습니다. 메인 웹사이트가 가입을 관리하고 SSO를 통해 Discourse에서 계정을 인증합니다. 저희 설정에서 사용자의 IP 주소를 전달하도록 조치했으며, 각 사용자의 관리자 페이지를 통해 이를 확인할 수 있습니다. 그러나 Screened IPs의 차단 목록에 IP 주소를 추가해도, 이후의 계정 생성/인증 시도는 차단되지 않습니다.

제 추측은 SSO가 해당 검사를 우회한다는 것입니다. 이것이 정확한 설명이며, 의도된 결과인가요?

배경 설명:
이 질문을 하는 이유는, 저희 모더레이션 팀이 현재 매우 심각한 문제를 일으키거나 악용하는 계정의 IP 주소를 차단 목록에 추가하는 추가 작업을 수행하고 있는데, 이것이 효과적이지 않은 것 같다는 점을 발견했기 때문입니다. 따라서, 이 절차를 계속 수행해야 하는지, 아니면 무시해도 되는지(즉, SSO 설정에서 screened IP 목록이 아무런 역할을 하지 않는 경우) 조사해 달라고 요청했습니다.

SSO가 사이트 로그인 여부를 제어하고 있다면, Discourse는 이를 제어하지도 못하고 제어할 수도 없습니다. 로그인은 다른 서버가 제어하므로 Discourse 측에서 IP를 차단하는 데는 이점이 없다고 확신합니다.

네, 제 생각과 인상도 비슷합니다. 그래서 저에게는 당연한 일로 보입니다.

저도 제 사이트에서 이 부분을 테스트해 보았습니다. Screened IPs 목록에 제 IP 주소를 추가하고 해당 작업을 "Block"으로 설정한 후, SSO로 로그인할 때 해당 IP 주소에서 새 계정을 생성할 수 없었습니다. 이는 의도된 동작입니다. 코드에서 해당 로직이 실행되는 위치를 여기에서 확인할 수 있습니다: discourse/app/controllers/session_controller.rb at main · discourse/discourse · GitHub.

흥미롭네요… 분명 8월 20일에 가입 IP가 차단되었는데, 9월 15일에 계정을 성공적으로 생성한 최근 계정이 하나 있습니다.

수정:
하지만 로그에서 이것도 발견했는데, 가끔은 정상적으로 작동하는 것 같습니다?

Verbose SSO log: IP address is blocked [ip_address_redacted]

add_groups: 
admin: 
moderator: 
avatar_force_update: 
...

VPN을 사용했거나 다른 컴퓨터/모바일 기기를 사용했을 수도 있나요?

그 시간 차이 때문에, IP 차단 우회를 하고 있다는 사실조차 눈치채지 못했을 가능성이 큽니다.

아, 무슨 일이 일어나고 있는지 파악이 되는 것 같습니다. 등록 IP라는 이름의 사용자 지정 SSO 필드가 있고, 이 필드에는 차단된 IP 주소가 명확히 표시되어 있습니다. 하지만 Discourse에 나열된 마지막 IP는 다릅니다. 제 추측이지만, 이는 VPN 사용을 설명할 수 있는 순수한 추측일 뿐이며, 왜 등록 필드에는 차단된 주소가 잡히고 Discourse에는 다른 주소가 잡혔는지는 저도 알 수 없습니다.