Comprender el almacenamiento de PII en Discourse

:bookmark: 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 puede minimizar la recopilación de PII utilizando DiscourseConnect.

:person_raising_hand: Nivel de usuario requerido: Administrador

Discourse almacena cierta información de identificación personal (PII) para apoyar funciones principales 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 privacidad y cumplimiento.

Resumen

Discourse almacena varios tipos de PII, incluidas direcciones IP, direcciones de correo electrónico y credenciales de inicio de sesión en redes sociales. 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 en su dispositivo móvil a las 11:00 a. m. y luego en su tableta a las 12:00 p. m., solo la dirección IP de la tableta se almacenará como la dirección IP “última utilizada”.

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 (puede desactivarse 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 que tenga 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 - No pueden ver las direcciones de correo electrónico por defecto (puede activarse con la configuración del sitio moderators_view_emails).
  • Administradores de bases de datos - Cualquiera 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 pueden proporcionarse de varias maneras:

  • Durante el registro - Los usuarios pueden ingresar su nombre completo durante el proceso de inscripción (dependiendo de la configuración).
  • Vía 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.
  • A través de la edición del perfil - Los usuarios pueden agregar o actualizar su nombre completo desde las preferencias de su perfil.
  • Desde inicios de sesión en redes sociales - Cuando los usuarios se autentican mediante proveedores sociales, su nombre de visualización a menudo se utiliza 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 bases de datos - Cualquiera con acceso directo a la base de datos.
  • Usuarios públicos - Pueden ver los nombres completos dependiendo de enable_names y la configuración de visualización relacionada.

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á activado, el nombre de su proveedor de autenticación externo (incluido SSO/DiscourseConnect y inicios de sesión en redes sociales) no puede ser cambiado por los usuarios.

    • Útil para mantener una identidad consistente en sus sistemas.
  • use_name_for_username_suggestions - Cuando está activado, Discourse utilizará el nombre completo al sugerir nombres de usuario durante el registro.

  • enable_names - Interruptor principal que muestra el nombre completo del usuario en su perfil, tarjeta de usuario y correos electrónicos. Desactívelo para ocultar el nombre completo en todas partes.

    • Valor predeterminado: activado

:information_source: Las siguientes configuraciones de visualización solo surten efecto cuando enable_names está activado:

  • display_name_on_posts - Muestra el nombre completo de un usuario en sus publicaciones además de su @nombredeusuario.
  • prioritize_username_in_ux - Controla si el nombre de usuario o el nombre completo aparece más prominentemente en la interfaz.
    • Valor predeterminado: activado (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á activado.

:information_source: 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), solo se mostrará uno para evitar redundancias. Puede desactivar este comportamiento utilizando el componente de tema Remove Name Suppression on Posts, que fuerza la visualización constante del nombre completo y el nombre de usuario en las publicaciones.

Información de inicio de sesión social federada

Cuando los usuarios se autentican a través de proveedores de inicio de sesión social (Google, Facebook, GitHub, etc.), Discourse almacena varias piezas de información:

  • Correo electrónico
  • ID de cuenta del proveedor
  • Nombre
  • Avatar
  • [Esta lista puede cambiar según el proveedor o con el tiempo]

Los datos específicos almacenados dependen del proveedor y de qué información compartan.

Ejemplo: Google OAuth2

Cuando un usuario inicia sesión con Google, Discourse retiene 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 censurado para el inicio de sesión en 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"
}

:information_source: Los campos específicos almacenados pueden cambiar según el 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 las preferencias de su usuario.

Minimizar el 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 la dirección de 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 cualquier conexión con inicios de sesión sociales federados de Discourse. 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 en su lado. Discourse solo sabe lo que el proveedor de inicio de sesión le indica.

MFA y autenticación externa

¿Se puede hacer cumplir la MFA sobre la autenticación externa?

:warning: Esta combinación no es actualmente compatible 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 externa como inicios de sesión en redes sociales. Cuando está activada, esto impedirá que los usuarios inicien sesión con métodos de autenticación externa si tienen la autenticación de dos factores habilitada.

Esta configuración obliga efectivamente a los usuarios a elegir entre:

  • Utilizar autenticación externa (inicios de sesión en redes sociales) sin 2FA en Discourse.
  • Utilizar inicio de sesión con nombre de usuario/contraseña con 2FA en Discourse.

:information_source: Para la configuración más segura con SSO, implemente MFA en su proveedor de identidad en lugar de dentro de Discourse.

Recursos adicionales

5 Me gusta