Esta guía explica qué información de identificación personal (PII) almacena Discourse por defecto, dónde se almacena, quién puede acceder a ella y cómo puedes minimizar la recopilación de PII utilizando DiscourseConnect.
Nivel de usuario requerido: Administrador
Discourse almacena cierta información de identificación personal (PII) para respaldar la funcionalidad principal, como la moderación, la gestión de cuentas y la autenticación de usuarios. Comprender qué datos se recopilan y cómo se almacenan le ayuda a tomar decisiones informadas sobre la privacidad y el cumplimiento.
Resumen
Discourse almacena varios tipos de PII, incluidas direcciones IP, direcciones de correo electrónico y credenciales de inicio de sesión social. Esta información se utiliza principalmente para la moderación, la detección de cuentas duplicadas y la autenticación de usuarios. Los administradores del sitio pueden minimizar el almacenamiento de PII implementando DiscourseConnect (SSO), lo que le permite controlar qué información se pasa a Discourse.
¿Qué PII almacena Discourse?
Direcciones IP
Discourse almacena las siguientes direcciones IP para cada usuario para ayudar a su equipo de moderación a detectar cuentas duplicadas:
- Dirección IP de registro: La dirección IP utilizada cuando se creó la cuenta
- Última dirección IP utilizada: La dirección IP más reciente desde la que el usuario accedió al sitio
Por ejemplo, si visita su sitio desde su dispositivo móvil a las 11:00 a. m. y luego desde su tableta a las 12:00 p. m., solo se almacenará la dirección IP de la tableta como la dirección IP de “último uso”.
¿Quién puede acceder a las direcciones IP?
- Administradores: Acceso completo a toda la información de IP
- Moderadores: Pueden ver las direcciones IP por defecto (se puede deshabilitar con la configuración del sitio
moderators_view_ips) - El sistema: Utiliza las direcciones IP internamente para la detección de spam y la identificación de cuentas duplicadas
Direcciones de correo electrónico
Las direcciones de correo electrónico se almacenan como texto plano en la base de datos, visibles para cualquiera con acceso a la base de datos. Esto incluye:
¿Quién puede acceder a las direcciones de correo electrónico?
- Administradores: Acceso completo a todas las direcciones de correo electrónico
- Moderadores: Pueden ver las direcciones de correo electrónico por defecto (se puede deshabilitar con la configuración del sitio
moderators_view_emails) - Administradores de la base de datos: Cualquier persona con acceso directo a la base de datos
Nombres completos (nombres reales)
Discourse puede recopilar y almacenar los nombres completos de los usuarios (también denominados “nombres reales”), que son distintos de sus nombres de usuario. Los nombres completos se almacenan como texto plano en la base de datos junto con otra información del usuario.
¿Cómo se recopilan los nombres completos?
Los nombres completos se pueden proporcionar de varias maneras:
- Durante el registro: Los usuarios pueden introducir su nombre completo durante el proceso de registro (dependiendo de la configuración)
- A través de SSO/DiscourseConnect: El proveedor de autenticación externo puede pasar el nombre completo (campo
name) al crear o actualizar un usuario, y puede anular el nombre local si está configurado. - Mediante la edición del perfil: Los usuarios pueden añadir o actualizar su nombre completo desde sus preferencias de perfil
- Desde inicios de sesión sociales: Cuando los usuarios se autentican a través de proveedores sociales, su nombre para mostrar se utiliza a menudo como nombre completo
¿Quién puede acceder a los nombres completos?
Los nombres completos se almacenan como texto plano en la columna name de la tabla users en la base de datos y pueden ser accedidos por:
- Administradores: Acceso completo a todos los nombres completos
- Moderadores: Pueden ver los nombres completos por defecto (controlado por los mismos permisos que el acceso al correo electrónico)
- Administradores de la base de datos: Cualquier persona con acceso directo a la base de datos.
- Usuarios públicos: Pueden ver los nombres completos dependiendo de la configuración de visualización
enable_namesy relacionadas
Opciones de configuración
Los administradores pueden controlar cómo se recopilan y muestran los nombres completos utilizando estas configuraciones del sitio:
-
full_name_requirement: Controla si el campo de nombre completo aparece durante el registro y si es obligatorio -
auth_overrides_name: Cuando está habilitado, el nombre del proveedor de SSO/DiscourseConnect no puede ser cambiado por los usuarios- Útil para mantener una identidad consistente en sus sistemas
-
use_name_for_username_suggestions: Cuando está habilitado, Discourse utilizará el nombre completo al sugerir nombres de usuario durante el registro -
enable_names: Interruptor maestro que muestra el nombre completo del usuario en su perfil, tarjeta de usuario y correos electrónicos. Deshabilítelo para ocultar el nombre completo en todas partes- Por defecto: habilitado
La siguiente configuración de visualización solo tiene efecto cuando enable_names está habilitado:
display_name_on_posts: Muestra el nombre completo de un usuario en sus publicaciones además de su @nombredeusuarioprioritize_username_in_ux: Controla si el nombre de usuario o el nombre completo aparecen de manera más prominente en la interfaz- Por defecto: habilitado (el nombre de usuario tiene prioridad)
display_name_on_email_from: Utiliza el nombre completo en los campos “De” en las notificaciones por correo electrónico, si está habilitado.
Discourse tiene una deduplicación inteligente; si el nombre completo y el nombre de usuario de un usuario son muy similares (ignorando espacios, guiones bajos y mayúsculas/minúsculas), solo se mostrará uno para evitar redundancia. Puede deshabilitar este comportamiento utilizando el componente de tema Remove Name Suppression on Posts, que fuerza a que tanto el nombre completo como el nombre de usuario se muestren siempre en las publicaciones.
Información de inicio de sesión social federado
Cuando los usuarios se autentican a través de proveedores de inicio de sesión social (Google, Facebook, GitHub, etc.), Discourse almacena varios datos:
- Correo electrónico
- ID de cuenta del proveedor
- Nombre
- Avatar
- [Esta lista puede cambiar dependiendo del proveedor o con el tiempo]
Los datos específicos almacenados dependen del proveedor y de la información que compartan.
Ejemplo: Google OAuth2
Cuando un usuario inicia sesión con Google, Discourse conserva la siguiente información en la base de datos:
provider_name: "google_oauth2",
provider_uid: "11791234567812345",
info: {
"name"=>"Bilbo Baggins",
"email"=>"bilbo.baggins@gmail.com",
"image"=>"https://lh3.googleusercontent.com/a/ACg8ocJD5vR-JuZZ16mGf51uYH0KyKGoKXF36U3inbh4Bzne0CpuTlH23g=s96-c",
"last_name"=>"Baggins",
"first_name"=>"Bilbo",
"email_verified"=>true,
"unverified_email"=>"bilbo.baggins@gmail.com"
}
Ejemplo: Facebook OAuth
Un ejemplo redactado para el inicio de sesión de Facebook muestra:
provider_name: "facebook",
provider_uid: "123456789",
info: {
"name"=>"Bilbo Baggins",
"email"=>"bbaggins@shire.net",
"image"=>"https://graph.facebook.com/v5.0/123456789/picture?access_token=swordfish&width=480&height=480",
"last_name"=>"Baggins",
"first_name"=>"Bilbo"
}
Los campos específicos almacenados pueden cambiar dependiendo del proveedor o con el tiempo a medida que evolucionan los protocolos de autenticación.
¿Quién puede acceder a la información de inicio de sesión social?
- Administradores: Acceso completo a la información de la cuenta asociada a través del panel de administración y la base de datos
- Moderadores: Pueden tener acceso limitado dependiendo de la configuración del sitio
- Usuarios individuales: Pueden ver y gestionar sus propias cuentas asociadas desde sus preferencias de usuario
Minimización del almacenamiento de PII con DiscourseConnect
Para evitar almacenar cierta información de identificación personal en Discourse, puede utilizar DiscourseConnect para gestionar el proceso de inicio de sesión de sus usuarios por completo.
Cómo DiscourseConnect reduce la exposición de PII
Con DiscourseConnect, usted controla completamente la información del usuario que se devuelve a Discourse. Dado que usted gestiona la implementación, puede crear alternativas centradas en la privacidad a los identificadores tradicionales.
Enfoque de ejemplo: En lugar de proporcionar a Discourse el correo electrónico real del usuario, puede crear una dirección de correo electrónico única pero libre de PII.
Por ejemplo, si el ID único interno de un usuario es U123456, podría devolver una dirección de correo electrónico como:
user-U123456@example.com
Beneficios adicionales de privacidad
El uso de DiscourseConnect también oculta a Discourse cualquier conexión con inicios de sesión sociales federados. Desde la perspectiva de Discourse, el tipo de inicio de sesión que utiliza el usuario (social, móvil, etc.) es irrelevante, ya que eso se gestiona por su parte. Discourse solo sabe lo que le dice el proveedor de inicio de sesión.
MFA y autenticación externa
¿Se puede aplicar MFA además de la autenticación externa?
Esta combinación no es compatible actualmente de la manera esperada.
Discourse tiene la configuración del sitio enforce_second_factor_on_external_auth, que impide que los usuarios con MFA habilitado utilicen métodos de autenticación externos como los inicios de sesión sociales. Cuando está habilitada, esto impedirá que los usuarios inicien sesión con métodos de autenticación externos si tienen habilitada la autenticación de dos factores.
Esta configuración hace que los usuarios elijan efectivamente entre:
- Usar autenticación externa (inicios de sesión sociales) sin 2FA en Discourse
- Usar inicio de sesión con nombre de usuario/contraseña con 2FA en Discourse
Para la configuración más segura con SSO, implemente MFA en su proveedor de identidad en lugar de dentro de Discourse.
