Acho que sei a resposta, mas gostaria de confirmar se isso é esperado e não um bug de qualquer tipo (acho que é esperado).
Versão resumida: nosso site usa SSO. O site principal controla o registro e autoriza uma conta no Discourse via SSO. Agora, garantimos que passamos o endereço IP do usuário em nossa configuração e podemos confirmar isso ao verificar a página de Administração de cada usuário. No entanto, ao adicionar um endereço IP à lista de Bloqueados em IPs Filtrados, ele não bloqueia futuras tentativas de criar ou autorizar uma conta.
Minha suposição é que o SSO ignora essa verificação. Isso está correto e é o resultado esperado?
Histórico:
A razão pela qual pergunto é que nossa equipe de moderação está fazendo trabalho extra agora, garantindo que endereços IP sejam adicionados à lista de bloqueados para contas extremamente disruptivas/abusivas, e notaram que isso não parece fazer diferença. Com isso dito, eles querem que eu investigue se precisam continuar dando esses passos ou se podem simplesmente ignorá-los (caso a lista de IPs filtrados não sirva para configurações de SSO).
Se o SSO estiver controlando quem faz login no seu site, o Discourse não controla e nem pode controlar. Tenho quase certeza de que não há benefício em bloquear IPs no lado do Discourse, já que outro servidor controla os logins.
Acabei de testar isso no meu próprio site. Após adicionar meu endereço IP à lista de IPs Filtrados e definir sua ação para “Bloquear”, os usuários não conseguem criar novas contas a partir desse endereço IP ao fazer login via SSO. Isso é por design. Você pode ver onde isso ocorre no código aqui: discourse/app/controllers/session_controller.rb at main · discourse/discourse · GitHub.
Interessante… pois temos definitivamente uma conta recente cujo IP de registro foi bloqueado em 20 de agosto, mas eles conseguiram criar uma conta em 15 de setembro.
Editado:
Mas então também encontrei isso nos logs, então parece que funciona ocasionalmente?
Log detalhado do SSO: O endereço IP está bloqueado [ip_address_redacted]
add_groups:
admin:
moderator:
avatar_force_update:
...
Ah, acho que entendi o que está acontecendo. Temos um campo SSO personalizado chamado ‘IP de registro’, que claramente mostra o endereço IP bloqueado, mas o ‘Último IP’ listado no Discourse é diferente. Minha suposição — e é apenas um palpite, que pode explicar o uso de VPN — é que não sei por que nosso campo de registro recebeu o endereço bloqueado enquanto o Discourse recebeu outro.