站点设置:禁用本地注册

您好,

我正在寻找一个站点设置,该设置可以禁用本地注册,但保留通过 OpenID Connect 进行的新账户注册。

回顾一月份的用户报告,大多数报告指向一条站点文本:“错误消息:目前不允许新账户注册。”这可能会促使我启用 Allow_new_registrations 选项。

在浏览所有可用设置时,我没有看到任何明确允许通过 OIDC 注册但不允许通过“本地”站点注册的选项。

不过,我使用数据探索器查询检查了是否有任何用户(当然,这是违反服务条款的行为)利用开发者工具隐藏了注册按钮,或选择性禁用了 JS 重定向

SELECT
  u.id,
  u.username,
  u.name,
  ue.email,
  u.active,
  u.approved,
  u.created_at,
  u.last_seen_at
FROM users u
LEFT JOIN user_associated_accounts uaa
  ON uaa.user_id = u.id
LEFT JOIN user_emails ue
  ON ue.user_id = u.id
 AND ue.primary = true
WHERE uaa.user_id IS NULL
  AND u.staged = false
ORDER BY u.last_seen_at DESC NULLS LAST, u.created_at DESC

我理解即使用户违反了我的策略,他们仍然需要验证其电子邮件地址。我只是不希望有用户注册,而这些用户可能并不在提供我所需 OIDC 服务的机构中拥有账户。

也可以将 must_approve_users 的作用域限定为 must_approve_local_users

但这会附带导致无法 禁用初始页面重定向到 /login,从而消除解决此安全漏洞的一个副作用。