Usando o Fiddler com SAML e SharePoint para passar dos três prompts de autenticação

Artigo original publicado na segunda-feira, 3 de dezembro de 2012

Eric Lawrence aborda este tópico em um de seus posts sobre o Fiddler. Porém, a menos que você saiba o que está procurando, pode ser difícil realizar o rastreamento. Por isso, darei um toque de SharePoint ao assunto. Muitas vezes, orientamos as pessoas a usarem o Fiddler para ter uma ideia do que está ocorrendo quando elas têm problemas em seus sites. Ele pode ser uma boa ferramenta para ajudar a compreender problemas de autenticação, especialmente com autenticação SAML. Porém, o problema é que as mudanças feitas em 2010 relativas à manipulação de associações de autenticação impossibilitaram imediatamente essa tarefa. Como resultado, se você executar o Fiddler e tentar realizar autenticação com SAML em um site do SharePoint, serão exibidos três prompts solicitando as credenciais e, em seguida, uma página de erro no IIS.

Para solucionar esse problema, é necessário adicionar alguns scripts ao Fiddler. Para isso, abra o Fiddler (estou usando a versão 4.4.1.1; ela muda com frequência, então é possível que sua interface do usuário seja um pouco diferente). Acesse o menu Rules...Customize Rules. Role o script para baixo até encontrar a função OnPeekAtResponseHeaders. Nela, você poderá adicionar um código para contornar esse problema de autenticação. Primeiro, deixe-me mostrar o código a ser adicionado:

if (oSession.isHTTPS && oSession.responseCode == 401)
{
// Para usar credenciais que não sejam as de logon no Windows,
// defina X-AutoAuth como "domínio\\nome_de_usuário:senha"
oSession["X-AutoAuth"] = "default";
oSession["ui-backcolor"] = "pink";
}

O principal aspecto a ser levado em consideração é que o script tentará usar as credenciais do Windows na solicitação de autenticação. Ele também definirá a cor de fundo dos prompts de autenticação como rosa na janela do Fiddler, mas você obviamente pode mudar ou remover essa parte. Caso deseje usar um conjunto diferente de credenciais para autenticação, insira domínio\\nome_de_usuário em vez de "default", conforme explicado no script. Não é perfeito, mas funciona com ADFS e é muito mais útil do que simplesmente não executar o rastreamento do Fiddler.

Caso queira obter mais detalhes, visite o post do Eric sobre esse tópico em https://blogs.msdn.com/b/fiddler/archive/2011/09/04/fiddler-http-401-authentication-workaround-to-support-channel-binding-tokens-removing-endless-prompts.aspx.

Esta é uma postagem de blog traduzida. Consulte o artigo original em Using Fiddler With SAML and SharePoint to Get Past the Three Authentication Prompts