Problema: SAML, usuario anonimizado y bloqueado

Pasos para reproducir:

  • Existe un usuario A, que es un usuario SAML.
  • El administrador desea que el usuario A ya no pueda utilizar Discourse.
  • El administrador utiliza la función “anonymize user” (anonymizar usuario) para el usuario A (todas las entradas quedan anonimizadas => eso está bien).
  • El administrador desea bloquear el acceso futuro del usuario A y, por lo tanto, desea bloquearlo (función bloquear usuario).

Nota: el usuario no fue eliminado del servidor SAML y sigue activo.

Esperado:
Aunque el usuario todavía existe en el servidor SAML, no debería poder iniciar sesión porque está bloqueado.

Comportamiento actual:
El usuario puede iniciar sesión.

¿Has probado a suspender la cuenta de usuario dentro de Discourse?

Lo siento, en lugar de “bloquear” quiero decir “suspender”.
Sí, lo intenté.

El problema es que el usuario se anonimiza y, por lo tanto, cambia el nombre de usuario. Supongo que SAML no lo reconoce y añade un nuevo usuario porque no puede encontrar al usuario con su nombre de usuario (= porque el usuario ya había sido anonimizado antes).

Creo que discourse-saml intenta encontrar al usuario basándose en el nombre de usuario en discourse-saml/lib/saml_authenticator.rb at 230a58b2d86465ec8aa75fb755558d4fdda73773 · discourse/discourse-saml · GitHub

Creo que debe existir una forma de vincular un usuario anonimizado con los datos del usuario de SAML. ¿Alguien sabe cómo y qué atributo validar?

Disculpe por revivir el tema, pero estamos enfrentando exactamente este problema.

  • Los usuarios solo inician sesión a través del proveedor de SSO.
  • El UsuarioA está bloqueado del foro, pero no del SSO.
  • El UsuarioA solicita la eliminación de datos del usuario, por lo que anonimizamos la cuenta.
  • El UsuarioA puede crear una nueva cuenta usando el inicio de sesión de SSO.

¿Hay alguna forma de suspender manualmente un correo electrónico sin una cuenta?

¿Solo suspender la cuenta nueva?

No quieres que el usuario tenga la oportunidad de interactuar con el foro, y no quieres monitorizar constantemente quiénes son los nuevos usuarios.

Debería haber una forma de suspender correos electrónicos, de la misma manera que puedes bloquear IPs.

Parece que no entiendes cómo manejar las eliminaciones solicitadas por el usuario y cuándo/dónde no se aplica.

Cuando un usuario se registra en tu sitio, tienes el derecho de procesar la información que proporciona (correo electrónico y nombre de usuario) con el fin del registro. Ese procesamiento no termina cuando son suspendidos e intentan irse, llevándose sus juguetes con ellos.

No estás obligado a eliminar el correo electrónico de un usuario prohibido o suspendido. El derecho al olvido no anula el propósito del procesamiento.

¿Y cómo es eso compatible con el RGPD y el derecho de los usuarios a solicitar la eliminación de sus datos?

Si conservas su cuenta, esta sigue asociada a sus datos y conservas su información incluso cuando han solicitado la eliminación de datos de usuario.

Lo pregunto sinceramente, no soy un experto legal.

El usuario puede retirar su consentimiento para el procesamiento de datos personales, pero el consentimiento es solo uno de los motivos que pueden hacer que el procesamiento de datos sea legal según el RGPD.

Otro motivo puede ser el interés legítimo del responsable del tratamiento (artículo 6.1, f: el tratamiento es necesario para los fines de los intereses legítimos perseguidos por el responsable del tratamiento). Dicho interés legítimo puede ser asegurarse de que el usuario no pueda crear una nueva cuenta. De lo contrario, el usuario podría hacer un mal uso del RGPD para que se borren todos los registros, incluido el hecho de que se ha portado mal.

Artículo 17 del RGPD, énfasis mío.

  1. El interesado tendrá derecho, sin dilación indebida, a obtener del responsable del tratamiento la supresión de los datos personales que le conciernan, y este tendrá la obligación de proceder a su supresión sin dilación indebida cuando concurra alguna de las circunstancias siguientes: (…)
    retire el consentimiento en que se base el tratamiento (…) y esta no se base en otro fundamento jurídico para el tratamiento;

Lo que básicamente significa: sí, el foro tiene que eliminar los datos del usuario a petición de este, pero como el foro ha suspendido al usuario, necesita una forma de asegurarse de que el usuario no cree una nueva cuenta, por lo que tienen una buena razón para conservar la dirección de correo electrónico del usuario suspendido, a pesar de la solicitud del usuario.

Una forma de hacerlo en Discourse es anonimizar al usuario (ya suspendido) y luego cambiar la dirección de correo electrónico anonimizada de nuevo a su dirección de correo electrónico real. También puede que desee conservar su IP de registro, basándose en el mismo motivo, y añadirla a la lista de bloqueo.