Usar Fiddler con SAML y SharePoint para superar las tres solicitudes de autenticación

Artículo original publicado el lunes 3 de diciembre de 2012

Eric Lawrence trata este tema en una de sus entradas de blog sobre Fiddler, pero a menos que sepa del asunto, cuesta seguirlo, por lo que hablaremos de este giro de SharePoint aquí. Con frecuencia, recomendamos a los compañeros que usen Fiddler para que se hagan una idea de qué es lo que sucede cuando tienen problemas con sus sitios web. Esta herramienta es valiosa, especialmente con SAML, para entender los problemas de autenticación. La cuestión aquí, sin embargo, es que los cambios que hemos hecho en 2010 sobre el modo en que se abordan los enlaces de autenticación convierten esta tarea en algo imposible de realizar en principio. En consecuencia, si ejecuta Fiddler e intenta autenticarse con SAML en un sitio de SharePoint, simplemente aparecen tres mensajes en los que se le piden las credenciales y, tras ellos, se muestra una página de error en IIS.

Para poner fin a esto, hay que agregar algo de script a Fiddler. Para ello, abra Fiddler (yo estoy usando la versión 4.4.1.1; las versiones cambian con bastante frecuencia, así que puede que su interfaz de usuario sea algo distinta). Vaya a Rules (Reglas)... menú Customize Rules (Personalizar reglas); desplácese hacia abajo por el script hasta encontrar la función OnPeekAtResponseHeaders. Ahí, puede agregar algo de código que permita superar este problema de autenticación. Empecemos antes de nada por el código que hay que agregar:

if (oSession.isHTTPS && oSession.responseCode == 401)
{
// Para utilizar credenciales de inicio de sesión que no sean de Windows,
// defina X-AutoAuth como "domain\\username:password"
oSession["X-AutoAuth"] = "default";
oSession["ui-backcolor"] = "pink";
}

Lo que hay que tener en cuenta aquí principalmente es que lo que se va a hacer es tratar de usar las credenciales de Windows en la solicitud de autenticación. También se va a establecer en rosa el color de fondo de la ventana de solicitud de autenticación de Fiddler, aunque esto se puede cambiar o quitar, evidentemente. En caso de que quiera usar otras credenciales durante la autenticación, puede especificar domain\\username en lugar de "default", como se describe en el script. Si bien esto no es la panacea, al menos funciona para ADFS y es muchísimo más útil que no tener absolutamente ningún tipo de traza de Fiddler.

Si quiere obtener información más detallada sobre este tema, puede visitar la entrada de blog de Eric, en 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 entrada de blog es una traducción. Puede encontrar el artículo original en Using Fiddler With SAML and SharePoint to Get Past the Three Authentication Prompts