ArchivosExperience CloudSeguridad de datos

Archivos y usuarios guest / Experience Cloud: riesgos de exposición

Cómo los archivos se vuelven visibles para usuarios guest y de Experience Cloud en Salesforce: Visibility, uso compartido y los errores que filtran datos.

AgentForceAccess 3 min de lectura
Un archivo dentro de un anillo que delimita la organización, con haces que cruzan hacia usuarios guest externos y un globo terráqueo

El acceso a archivos ya es bastante difícil de por sí a nivel interno. Añade usuarios de Experience Cloud (comunidad) y guest y se complica en ambas direcciones: los archivos que quieres que vean los usuarios externos a veces no aparecen, y los que no quieres a veces se filtran al público. Ambos casos se reducen al mismo pequeño conjunto de ajustes. Veamos cómo configurarlos bien.

Los usuarios externos usan el mismo modelo, con una barrera adicional

Los usuarios de comunidad y guest ven los archivos a través del mismo modelo ContentDocumentLink que todos los demás. Pero hay una barrera adicional con la que los usuarios internos rara vez topan: el campo Visibility del enlace.

VisibilityA quién incluye
AllUsersUsuarios internos y externos/de comunidad
InternalUsersSolo usuarios internos
SharedUsersSolo usuarios con los que se ha compartido explícitamente

Para que un usuario de Experience Cloud vea un archivo adjunto a un registro, deben cumplirse dos condiciones a la vez: que pueda acceder al registro y que la Visibility del enlace del archivo incluya a los usuarios externos (normalmente AllUsers).

Por eso “el usuario de la comunidad ve el registro pero no su archivo” es una incidencia tan habitual: el acceso al registro es correcto, pero la Visibility es InternalUsers.

Modo de fallo 1: archivos que deberían mostrarse y no lo hacen

La versión benigna. Un usuario de la comunidad puede abrir un caso pero faltan sus adjuntos. La solución es casi siempre la Visibility del ContentDocumentLink del archivo, y asegurarse de que los archivos subidos dentro de la comunidad hereden la visibilidad correcta. Revisa el enlace, no el uso compartido del registro.

Modo de fallo 2: archivos que no deberían mostrarse y sí lo hacen

La versión peligrosa, y la razón por la que este tema importa para la seguridad.

Los usuarios guest no están autenticados. Son visitantes anónimos de tu sitio público. Así que cualquier cosa que exponga la configuración de un usuario guest queda prácticamente disponible para toda Internet:

  • Un enlace público (sin inicio de sesión, por diseño) sobre un archivo sensible.
  • Archivos adjuntos a registros a los que puede llegar el perfil del usuario guest, con visibilidad AllUsers.
  • Sharing sets / sharing rules demasiado amplios que conceden a la audiencia guest o externa más registros de los previstos, y por tanto más archivos.

El acceso guest demasiado permisivo está entre los problemas de exposición de datos de Salesforce que se reportan con más frecuencia. Los archivos viajan junto a cualquier registro que hayas expuesto por accidente.

Las dos barreras que auditar, juntas

Como el acceso externo a archivos depende del acceso al registro Y de la Visibility del archivo, tienes que comprobar ambas como un par:

  1. Qué registros pueden alcanzar los usuarios guest y externos. (Modelo de uso compartido de la comunidad, sharing sets, sharing rules.)
  2. Cuál es la Visibility de los archivos adjuntos a esos registros.
  3. ¿Hay algún enlace público sobre archivos sensibles?

El estado final buscado: que exactamente los archivos que pretendías publicar sean accesibles para la audiencia externa, y nada más. Llegar ahí es la misma pregunta de fondo que el resto del modelo de acceso a registros, solo que con la audiencia más arriesgada posible.

Saber qué puede alcanzar realmente el público

La combinación —acceso externo a registros por la Visibility del archivo más cualquier enlace público— es justo lo que hace que la exposición a usuarios guest sea fácil de juzgar mal y difícil de verificar a mano. AgentForceAccess la evalúa igual que evalúa el acceso interno: pregunta qué puede ver un usuario guest o de comunidad, y rastrea los registros que alcanza y los archivos que esos registros exponen, de modo que “¿se está filtrando algo al público?” pasa a ser una pregunta que de verdad puedes responder.

Preguntas frecuentes

¿Por qué mi usuario de la comunidad no puede ver un archivo de un registro al que tiene acceso?

Lo más habitual es que la Visibility del ContentDocumentLink esté en InternalUsers, lo que excluye a los usuarios externos aunque el acceso al registro sea correcto. Para exponer el archivo a los usuarios de la comunidad normalmente necesita Visibility = AllUsers. El acceso al registro por sí solo no basta si Visibility excluye a esa audiencia.

¿Cuál es el riesgo con los usuarios guest y los archivos?

Los usuarios guest son visitantes no autenticados. Cualquier archivo que exponga su configuración de uso compartido o un enlace público queda prácticamente disponible para la Internet pública. Un acceso guest demasiado amplio, o un enlace público olvidado, es uno de los hallazgos de exposición de datos más comunes en Salesforce.

¿Cómo se relaciona la visibilidad de archivos con el uso compartido de registros en una comunidad?

Son dos barreras independientes. El usuario necesita acceso al registro (a través del modelo de uso compartido de la comunidad, los sharing sets o las sharing rules) Y la Visibility del enlace del archivo debe incluir a los usuarios externos. Ambas deben coincidir, y por eso el acceso a archivos en comunidades es un tema frecuente de soporte y seguridad.

¿Qué debo comprobar antes de exponer archivos en una comunidad?

Confirma a qué registros pueden llegar los usuarios guest y externos, y luego confirma la Visibility de los archivos adjuntos a esos registros. Audita cualquier enlace público. El objetivo es que exactamente los archivos previstos, y ningún otro, sean accesibles para la audiencia externa.

Míralo en tu propia organización

AgentForceAccess explica, en lenguaje claro, por qué cualquier usuario puede ver cualquier registro o archivo, recorriendo todos los mecanismos de colaboración de Salesforce.

Solicitar acceso anticipado