El Servicio de Búsqueda de SharePoint indexa el contenido siempre atendiendo al contexto de seguridad del usuario, esto es, si un usuario no tiene permisos en un elemento de lista o documento, no podrá obtener ese resultado en una búsqueda. Cuando hablamos de usuarios anónimos, se cumple perfectamente esta regla y nos permite tener contenido público y contenido privado sin mucho esfuerzo.
Cuando creamos una lista o biblioteca de documentos, los usuarios anónimos heredan los permisos de seguridad del sitio y se les concede permisos de «Ver elementos» en la biblioteca.
Esta configuración de seguridad permite que los usuarios anónimos puedan acceder directamente a los documentos, mediante la URL de acceso, por ejemplo: http://www.compartimoss.com/BannerHome/banner_compartimoss.jpg, sin embargo, el rastreador del servicio de búsqueda no puede indexarlo ya que los usuarios anónimos no tienen acceso a la página que contiene las columnas o metadatos del documento.
Por motivos de seguridad, los usuarios anónimos no tienen acceso a los formularios de las listas porque se encuentra habilitada la característica «ViewFormPagesLockDown». Si la desactivamos, cosa que os recomiendo salvo contadas excepciones, pondrías a disposición de los usuarios anónimos estos documentos y formularios de listas.
La solución es bastante simple, romper la herencia de permisos de esta biblioteca y asignarle el nivel de permiso «Ver páginas de aplicaciones» a los usuarios anónimos.
$web = get-spweb «http://www.compartimos.com/banners»
$list = $web.Lists[«Banners«]
$list.BreakRoleInheritance($true)
$list.AnonymousPermMask = $list.AnonymousPermMask -bor ([int][Microsoft.SharePoint.SPBasePermissions]::ViewFormPages)
$list.Update()
Para comprobar que funciona, esperamos a que el buscador rastree el contenido o ejecutamos un rastreo manual, en una página añadimos un Web Part de Consulta de Contenido o Content Search Web Part, definimos la consulta de búsqueda, por ejemplo, URL:http://www.compartimoss.com/banners y publicamos. Recuerda comprobar sin autenticarte para asegurarte que eres un usuario anónimo y que obtienes un resultado tal como la imagen siguiente.
Básicamente, habilitamos el acceso a los formularios sólo para aquellas listas o bibliotecas que lo requieran y no para todo el sitio, con lo que reducimos la posible superficie de ataque en nuestra web.
Saludos a todos…