Como usar o parâmetro de WHR com o SharePoint 2010 e a autenticação de SAML
Artigo original publicado em 15 de setembro de 2011, quinta-feira.
Tenho visto muitas questões e confusões (e fiquei um pouco perdido) sobre reparos no SharePoint 2010 SP1 + CU de Junho para permitir o uso do parâmetro de WHR. Ele está funcionando agora, mas precisa de algumas coisas:
- Configure o SPTrustedIdentityTokenIssuer
O SPTrustedIdentityTokenIssuer tem uma propriedade agora chamada UseWHomeRealmParameter, que deve ser configurada para se adequar a fim de que o SharePoint passe o parâmetro de WHR junto com o IdP. Aí vai um trecho de powershell que usei para fazer isso:
$ap = get-sptrustedidentitytokenissuer -identity "ADFS with Roles"
$ap.UseWHomeRealmParameter = $true
$ap.Update()
Bem simples - agora o SharePoint enviará junto qualquer parâmetro de WHR que encontrar.
- Escreva ou faça "algo" para anexar o parâmetro de WHR
No meu caso, escrevi HttpModule para anexar o parâmetro de WHR. Foi assim que fiz, especificamente:
- Na substituição da inicialização, adicionei um manipulador para o evento de BeginRequest
- No código para o evento de BeginRequest, eu olhei para ver se:
- O pedido está direcionado para _trust/default.aspx
- E o pedido ainda NÃO tem um parâmetro de WHR incluído
- Se o pedido atende os dois critérios descritos acima, eu crio um redirecionamento para o _trust/default.aspx. Quando faço isso, eu:
- Adiciono cada parâmetro de sequência de consulta que existia ali antes
- Anexo meu parâmetro de WHR até o fim
- Defino a Response.Redirect de volta ao _trust/default.aspx
E foi assim. Fiz o teste usando uma sessão de navegador InPrivate no IE porque ele não usará os cookies de autenticação que poderia, por outro lado, livrar-nos dos resultados do teste. Até agora, todos os testes funcionaram conforme o esperado - também verifiquei no Fiddler que o parâmetro de WHR agora está fluindo para o ADFS (no meu caso) como desejado. Anexei o código-fonte do meu simples e pequeno projeto nesta postagem para ajudar você a começar.
Esta é uma postagem de blog traduzida. Veja o artigo original em Using the WHR Parameter with SharePoint 2010 and SAML Auth