Problema: SAML, usuário anonimizado e bloqueado

Steps to reproduce:

  • User A, a SAML user exists
  • Admin want, that User A is no longer able to use discourse
  • Admin uses the “anonymize user” function for user A (all entries are no anonymized => thats good)
  • Admin want to block further access of user A and therefore want to block him (block user function)

Note: the user was not removed from SAML server and is still active

Expected:
Even that the user does still exist on SAML server, the user should not be able to log in because he/she is blocked.

Current behavior:
The user is able to log in.

Have you tried suspending the user account within Discourse?

sorry, Instead of “block” I mean “suspend”.
Yes, I tried this.

The issue is, that the user gets anonymized and therefore the username changes. I guess, saml doesn’t recognize this and adds a new user because saml can not find the user with its username (= because the user was anonymized before).

I guess, discourse-saml tries to find the user based on the username at https://github.com/discourse/discourse-saml/blob/230a58b2d86465ec8aa75fb755558d4fdda73773/lib/saml_authenticator.rb#L96

I think there need to be a way to match a anonymized user with the saml user data. Does someone know how and which attribute to validate?

Desculpe por reativar o tópico, mas estamos enfrentando exatamente este problema.

  • Os usuários só fazem login através do provedor sso.
  • O UsuárioA é bloqueado do fórum, mas não do sso.
  • O UsuárioA solicita a exclusão de dados do usuário, então anonimizamos a conta.
  • O UsuárioA consegue criar uma nova conta usando o login sso.

Existe alguma maneira de suspender manualmente um e-mail sem uma conta?

Apenas suspenda a nova conta?

1 curtida

Sim, você não quer que o usuário tenha a chance de interagir com o fórum, e você não quer monitorar constantemente quem são os novos usuários.

Deveria haver uma maneira de suspender e-mails, da mesma forma que você pode bloquear IPs.

Parece que você não entende como lidar com exclusões solicitadas pelo usuário e quando/onde isso não se aplica.

Quando um usuário se inscreve em seu site, você tem o direito de processar as informações fornecidas (e-mail e nome de usuário) para fins de registro. Esse processamento não termina quando eles são suspensos e tentam sair, levando seus brinquedos com eles.

Você não é obrigado a remover o e-mail de um usuário banido ou suspenso. O direito ao esquecimento não se sobrepõe ao propósito do processamento.

E como isso é compatível com o GDPR e o direito dos usuários de solicitar a exclusão de seus dados?

Se você mantiver a conta deles, isso ainda estará associado aos dados deles e você manterá as informações deles mesmo quando eles solicitarem a exclusão de dados do usuário.

Sinceramente, não sou especialista em direito.

O usuário pode retirar seu consentimento para o processamento de dados pessoais, mas o consentimento é apenas um dos fundamentos que podem tornar o processamento de dados legal sob o GDPR.

Outro fundamento pode ser o interesse legítimo do controlador (artigo 6.1, f: o processamento é necessário para os fins dos interesses legítimos perseguidos pelo controlador). Tal interesse legítimo pode ser garantir que o usuário não possa criar uma nova conta. Caso contrário, o usuário poderia abusar do GDPR para ter todos os registros apagados, incluindo o fato de que ele se comportou mal.

Artigo 17 do GDPR, ênfase minha.

  1. O titular dos dados terá o direito de obter do controlador a eliminação dos dados pessoais que lhe digam respeito sem demora injustificada e o controlador terá a obrigação de apagar os dados pessoais sem demora injustificada sempre que se aplique um dos seguintes fundamentos: (…)
    o titular dos dados retira o consentimento em que se baseia o processamento (…) e quando não houver outro fundamento jurídico para o processamento;

O que basicamente significa: sim, o fórum tem que remover os dados do usuário mediante solicitação, mas como o fórum suspendeu o usuário, eles precisam de uma maneira de garantir que o usuário não crie uma nova conta, então eles têm um bom motivo para manter o endereço de e-mail do usuário suspenso em arquivo, apesar da solicitação do usuário.

Uma maneira de fazer isso no Discourse é anonimizar o usuário (já suspenso) e, em seguida, alterar o endereço de e-mail anonimizado de volta para o endereço de e-mail real. Você também pode querer manter o IP de registro deles, com base no mesmo fundamento, e adicioná-lo à lista de bloqueio.