Ocultando provedores de autenticação padrão no SharePoint 2010
Artigo original publicado em 8 de maio de 2011, domingo
Uma situação que ocorre com bastante frequência no SharePoint 2010 é o uso de uma única zona para vários provedores de autenticação. Um dos motivos para que as pessoas façam isso é que elas querem usar um tipo de autenticação - como FBA ou SAML - mas também querem adicionar declarações do Windows para que a zona possa ser indexada pelo rastreador do SharePoint. O problema dessa abordagem apresenta dois desdobramentos:
- Os usuários veem uma página de seleção de logon, onde eles precisam escolher a autenticação Windows ou outro tipo de autenticação
- Quando usuários são adicionados a um site (ou qualquer operação que invoque o selecionador de pessoas é executada), eles veem usuários do Active Directory no selecionador de pessoas juntamente com usuários dos provedores de autenticação de reclamação em uso.
Nesse caso, o que pode ser feito? Bem, para resolver o primeiro problema, podemos escrever uma página personalizada de seleção de logon. Já abordei esse cenário na minha postagem em https://blogs.msdn.com/b/sharepoint_br/archive/2011/06/27/ignorando-a-p-225-gina-sele-231-227-o-de-provedor-de-autentica-231-227-o-m-250-ltipla-no-sharepoint-2010.aspx. Mas, e quanto ao segundo item - ocultando usuários AD, para que não sejam mostrados nos resultados de pesquisa do selecionador de pessoas? Na próxima atualização cumulativa de abril de 2011, para o resgate! <NOTA RÁPIDA: Você pode enfrentar alguns problemas com isso na atualização cumulativa de abril; a atualização cumulativa de junho terá uma versão atualizada.> Sua quilometragem pode varias, portanto, fique à vontade para testar. Depois de aplicada a atualização cumulativa de abril, você verá que SPClaimProviderDefinitions agora inclui uma nova propriedade chamada "IsVisible". Você pode simplesmente defini-la como falsa para o provedor do Active Directory e ele não mostrará mais quando você usar o selecionador de pessoas.
Aqui está um pequeno snippet do PowerShell que mostra como fazer isso:
$cpm = Get-SPClaimProviderManager
$ad = get-spclaimprovider -identity "AD"
$ad.IsVisible = $false
$cpm.Update()
Algumas observações:
- O comando Get-SPClaimProvider, do PowerShell, retorna efetivamente uma SPClaimProviderDefinition, então está tudo bem.
- A identidade "AD" é usada porque este é o nome interno do provedor do Active Directory.
No meu teste limitado, não precisei sequer fazer um IISRESET após essa alteração; eu pude simplesmente continuar e o Active Directory não apareceu mais na lista de provedores de autenticação, no painel esquerdo do selecionador de pessoas. Inversamente, quando alterei isso outra vez, ele começou a ser mostrado novamente e de imediato sem um IISRESET.
Nesse momento, a maior limitação do procedimento é que ele não aparece quando você impõe esse configuração na base de um por zona, o que poderia ser o ideal. Se eu descobrir outra maneira de fazer isso, atualizarei esta postagem.
Esta é uma postagem de blog localizada. O artigo original pode ser encontrado em Hiding Default Authentication Providers in SharePoint 2010