Permissão para busca em listas do SharePoint com acesso anônimo

Um problema recente que tivemos com um portal baseado em SharePoint foi a falta de retorno de registros do mecanismo de busca nativo para usuários anônimos. Haviam listas personalizadas que continham informações e que quando um usuário autenticado fazia a busca, esses dados eram trazidos como resultado. Já quando a busca era feita por um usuário anônimo (no caso, na parte do portal exposta na Internet), esses dados não vinham.

Após uma análise do log, descobriu-se que esses resultados eram removidos na hora de validar a segurança, ou seja, o SharePoint via que o usuário anônimo não tinha permissão para visualizar os dados dessas listas.

Para resolver este problema, foi necessário quebrar a herança de permissão das listas e dar o acesso faltante para o usuário anônimo poder visualizar os dados na busca. Para isto, foi utilizado o script PowerShell abaixo.

$web = Get-SPWeb "http://urldosite"
$list = $web.TryGetList("nome da lista")
$list.BreakRoleInheritance($true)
$list.AnonymousPermMask64= $list.AnonymousPermMask64 -bor ([int][Microsoft.SharePoint.SPBasePermissions]::AnonymousSearchAccessList)
$list.Update()


Depois de executar, foi necessário pedir para o SharePoint reindexar a lista e executar o processo de crawling incremental. Esta permissão AnonymousSearchAccessList, como o nome diz, faz com que os dados de determinada lista fiquem disponíveis para o processo da busca. Outras permissões que podem ser associadas à objetos no SharePoint podem ser encontradas neste link do MSDN: https://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spbasepermissions.aspx

[]'s

Comentários

Postagens mais visitadas deste blog

Trocando configurações padrão do Live TIM

Testes automatizados em sistemas autenticados com certificados digitais, usando Selenium e PhantomJS

Uma proposta de Clean Architecure com Modelo de Atores