Problema: SAML, utente anonimizzato e bloccato

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?

Mi dispiace per il riuppo, ma stiamo affrontando esattamente questo problema.

  • Gli utenti accedono solo tramite provider sso.
  • L’utenteA è bloccato dal forum, ma non dall’sso.
  • L’utenteA richiede la cancellazione dei dati utente, quindi anonimizziamo l’account.
  • L’utenteA è in grado di creare un nuovo account utilizzando l’accesso sso.

C’è un modo per sospendere manualmente un’e-mail senza un account?

Vuoi solo sospendere il nuovo account?

1 Mi Piace

Non vuoi che l’utente abbia la possibilità di interagire con il forum e non vuoi monitorare costantemente i nuovi utenti.

Dovrebbe esserci un modo per sospendere le email, allo stesso modo in cui puoi bloccare gli IP.

Sembra che tu non capisca come gestire le cancellazioni richieste dall’utente e quando/dove non si applicano.

Quando un utente si iscrive al tuo sito, hai il diritto di elaborare le informazioni fornite (email e nome utente) allo scopo della registrazione. Tale elaborazione non termina quando viene sospeso e cerca di andarsene, portando con sé i propri “giocattoli”.

Non sei obbligato a rimuovere l’email di un utente bannato o sospeso. Il diritto all’oblio non prevale sullo scopo dell’elaborazione.

E come è compatibile con il GDPR e il diritto degli utenti di richiedere la cancellazione dei propri dati?

Se conservi il loro account, questo è ancora associato ai loro dati e conservi le loro informazioni anche quando hanno richiesto la cancellazione dei dati dell’utente.

Chiedo sinceramente, non sono un esperto legale.

L’utente può revocare il proprio consenso al trattamento dei dati personali, ma il consenso è solo uno dei motivi che possono rendere lecito il trattamento dei dati ai sensi del GDPR.

Un altro motivo può essere il legittimo interesse del titolare del trattamento (articolo 6.1, f: il trattamento è necessario per il perseguimento del legittimo interesse del titolare del trattamento). Tale legittimo interesse può essere quello di garantire che l’utente non possa creare un nuovo account. Altrimenti l’utente potrebbe abusare del GDPR per far cancellare tutti i dati, compreso il fatto che si è comportato male.

Articolo 17 del GDPR, enfasi mia.

  1. L’interessato ha il diritto di ottenere dal titolare la cancellazione dei dati personali che lo riguardano senza ingiustificato ritardo e il titolare ha l’obbligo di cancellare i dati personali senza ingiustificato ritardo, laddove si applichi uno dei seguenti motivi: (…)
    ritira il consenso su cui si basa il trattamento (…) e laddove non sussista altro fondamento giuridico per il trattamento;

Ciò significa fondamentalmente: sì, il forum deve rimuovere i dati dell’utente su richiesta, ma poiché il forum ha sospeso l’utente, ha bisogno di un modo per assicurarsi che l’utente non crei un nuovo account, quindi ha una buona ragione per conservare l’indirizzo email dell’utente sospeso, nonostante la richiesta dell’utente.

Un modo per farlo in Discourse è anonimizzare l’utente (già sospeso) e quindi ripristinare l’indirizzo email anonimizzato al loro indirizzo email reale. Potrebbe anche essere opportuno conservare il loro IP di registrazione, basandosi sullo stesso motivo, e aggiungerlo alla lista di blocco.