问题:SAML、匿名用户和阻止

复现步骤:

  • 存在一个 SAML 用户 User A
  • 管理员希望 User A 不再能够使用 Discourse
  • 管理员对 User A 使用“匿名化用户”功能(所有条目均已匿名化 = 很好)
  • 管理员希望阻止 User A 的进一步访问,因此希望将其封禁(使用封禁用户功能)

注意:该用户并未从 SAML 服务器中移除,仍处于活跃状态

预期结果:
即使该用户仍存在于 SAML 服务器上,由于其已被封禁,应无法登录。

当前行为:
该用户可以登录。

您尝试过在 Discourse 中暂停用户账户吗?

抱歉,我指的“block”其实是“suspend”。
是的,我尝试过这个。

问题在于,用户被匿名化后,用户名会发生变化。我猜测 SAML 无法识别这一点,因此会创建一个新用户,因为它找不到具有该用户名(因为用户之前已被匿名化)的记录。

我认为 discourse-saml 是基于用户名来查找用户的,具体可以参考:discourse-saml/lib/saml_authenticator.rb at 230a58b2d86465ec8aa75fb755558d4fdda73773 · discourse/discourse-saml · GitHub

我觉得需要有一种方法将匿名化后的用户与 SAML 用户数据进行匹配。有人知道该如何操作以及应该验证哪个属性吗?

抱歉打扰,但我们遇到了完全相同的问题。

  • 用户只能通过 SSO 提供商登录。
  • 用户 A 被禁止访问论坛,但未被禁止访问 SSO。
  • 用户 A 请求删除用户数据,因此我们将其账户匿名化。
  • 用户 A 能够使用 SSO 登录创建新账户。

是否有办法手动暂停电子邮件而无需账户?

只需暂停新账户?

是的,您不希望用户有机会与论坛互动,也不希望您不断地监控谁是新用户。

应该有一种方法可以像阻止 IP 地址一样暂停电子邮件。

听起来您不明白如何处理用户请求的删除以及何时/何处不适用。\n\n当用户注册您的网站时,您有权出于注册目的处理其提供的信息(电子邮件和用户名)。该处理在用户被暂停并试图离开时并不会结束。\n\n您没有义务删除被禁止或暂停用户的电子邮件。被遗忘权不能取代处理目的。

这与GDPR以及用户要求删除其数据的权利如何兼容?

如果您保留他们的账户,这仍然与他们的数据相关联,并且即使在他们要求删除用户数据后,您仍然保留他们的信息。

老实说,我不是法律专家。

用户可以撤回其对个人数据处理的同意,但同意只是《通用数据保护条例》(GDPR)使数据处理合法的理由之一。

另一个理由可以是控制者的合法利益(第 6.1 条 f 款:处理对于控制者追求的合法利益是必要的)。这种合法利益可以是为了确保用户无法创建新帐户。否则,用户可能会滥用《通用数据保护条例》(GDPR)来删除所有记录,包括他们行为不端的记录。

《通用数据保护条例》(GDPR)第 17 条,重点是我自己。

  1. 数据主体有权要求控制者毫不延迟地删除与其相关的个人数据,并且在出现以下任一情况时,控制者有义务毫不延迟地删除个人数据:(…)
    数据主体撤回处理所依据的同意(…)并且在没有其他合法理由进行处理的情况下;

这基本上意味着:是的,论坛必须根据用户的要求删除用户数据,但由于论坛已暂停该用户,因此他们需要一种方法来确保该用户不会创建新帐户,因此他们有充分的理由在不顾用户要求的情况下,将已暂停用户的电子邮件地址保留在文件中。

在 Discourse 中,一种方法是匿名化(已暂停的)用户,然后将匿名化的电子邮件地址改回其真实电子邮件地址。您可能还希望基于同一理由保留其注册 IP 地址,并将其添加到阻止列表中。