Configuración del sitio para desactivar los registros locales

Hola,

Estoy buscando una configuración del sitio que deshabilite los registros locales, pero mantenga los registros de nuevas cuentas mediante OpenID Connect.

Al revisar los informes de usuarios de enero, la mayoría señalaban un texto del sitio: “Este fue el mensaje de error: Los registros de nuevas cuentas no están permitidos en este momento”, lo que me habría llevado a habilitar Allow_new_registrations.

Al revisar todas las configuraciones disponibles, no veo una opción explícita que permita registros mediante OIDC pero no los del sitio local.

Sin embargo, he utilizado una consulta de Data Explorer para verificar si hay usuarios (actuando, por supuesto, en contra de los Términos de Servicio) que usaron sus DevTools para mostrar el botón de registro o deshabilitar selectivamente una redirección de 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

Entiendo que el usuario que actúa en contra de mi política aún necesitaría verificar su dirección de correo electrónico; simplemente no quiero que se registren usuarios que podrían no tener una cuenta en la institución que me proporciona mis necesidades de OIDC.

Se podría delimitar must_approve_users con must_approve_local_users

pero esto eliminaría la posibilidad de desactivar la página inicial que redirige a /login como efecto secundario de resolver esta vulnerabilidad de seguridad.

Desmarca enable local logins. Esto seguirá permitiendo registros/inicios de sesión a través de métodos externos, como un proveedor de OpenID.

El principal problema de desmarcar eso es que mi foro se redirige directamente a Entra, lo que hace que mi foro parezca gestionado por una institución (cuando no lo es).

¿Tu sitio requiere inicio de sesión? Si es así, consulta esta configuración:

Sí, eso está habilitado. Esa es la configuración para la que envié una solicitud de extracción: eliminar la palabra “externo” de la descripción de la configuración.

Por lo tanto, si deseas mostrar una pantalla de bienvenida en el sitio pero con OIDC habilitado como único método de inicio de sesión, debes:

  • Desmarcar enable local logins (habilitar inicios de sesión locales)
  • Desmarcar auth immediately (autenticar inmediatamente)
  • Tener habilitado un método de inicio de sesión externo

Una vez que se cumplan estas condiciones, los usuarios verán una pantalla que indica que se requiere inicio de sesión, similar a esta:

Ambos botones aquí (registrarse / iniciar sesión) llevarán a tu único método de inicio de sesión externo.

Sí, eso es exactamente lo que hice en https://physicswithethan.discourse.diy

También desactivé mi componente personalizado “anulaciones de registro”

1 me gusta

¡Así que ya estás listo, o te falta el botón de Registro? Ahora puedes permitir nuevos registros, solo habilitará el registro mediante OIDC.

¿Desactivar auth immediately impide que los usuarios creen una nueva cuenta a través del flujo de inicio de sesión OIDC?

No, solo controla si se muestra el splash o si los usuarios son redirigidos directamente a la puerta de enlace de inicio de sesión.

Okay, he ajustado tanto login_required.welcome_message como site_description, y eso ha hecho que la pantalla de inicio se vea mucho más personalizada.

También he desactivado Auto_skip_create_confirm para que mi login_required.welcome_message sea precisa respecto a la elección del nombre de usuario.

2 Me gusta

¿Es posible desactivar el botón Registrarse en la pantalla de bienvenida sin usar CSS? (habilitar inicios de sesión locales ACTIVADO en lugar de DESACTIVADO)

Por lo tanto, los usuarios deberán registrarse mediante un enlace de invitación para la configuración local. Sin embargo, me preocupa que activar la configuración Solo por invitación pueda causar problemas después de OIDC-create_confirm.

ask.discourse.com me dice

Esta combinación sería una solución al problema descrito en mi publicación anterior, si funciona.

Creo que encontró esta información en Invite Only and Auth skip create confirm settings show signup popup when using together

Sin embargo, noto que el informe de error es para Oauth2, no para el plugin de OpenID Connect.