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

Uma proposta de Clean Architecure com Modelo de Atores

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