Использование Fiddler совместно с SAML и SharePoint для прохождения трех запросов проверки подлинности

Исходная статья опубликована в понедельник, 3 декабря 2012 г.

Эрик Лоренс затронул эту тему в одной из своих предыдущих записей блога Fiddler, но, если вы не знаете, что именно следует искать, найти нужные сведения бывает нелегко, поэтому я добавлю сюда соответствующие сведения о SharePoint. Мы часто советуем пользователям использовать Fiddler для получения информации о том, что происходит при возникновении проблем с веб-сайтами. При совместном использовании с проверкой подлинности SAML это средство хорошо подходит для выявления проблем проверки подлинности. Трудность заключается в том, что изменения обработки привязок проверки подлинности, внесенные в 2010 году, не позволяют представить готовое решение для данной задачи. В результате, когда вы запускаете Fiddler и пытаетесь пройти проверку подлинности с помощью SAML на сайте SharePoint, трижды выводится запрос на ввод учетных данных, а затем отображается страница ошибки в IIS.

Чтобы обойти данную проблему, существует сценарий, который требуется добавить в Fiddler. Для этого откройте Fiddler (я использую версию 4.4.1.1, она обновляется достаточно часто, поэтому пользовательский интерфейс может выглядеть несколько иначе). Выберите Rules, меню Customize Rules и выполните прокрутку сценария вниз, пока не найдете функцию OnPeekAtResponseHeaders. В нее можно добавить немного кода, чтобы обойти проблему с проверкой подлинности. Давайте сначала приведем добавляемый код:

if (oSession.isHTTPS && oSession.responseCode == 401)
{
// Для использования учетных данных, отличных от учетных данных Windows,
// установите для X-AutoAuth значение "домен\\имя_пользователя:пароль"
oSession["X-AutoAuth"] = "default";
oSession["ui-backcolor"] = "pink";
}

Здесь важно отметить, что этот код пытается использовать ваши учетные данные Windows в качестве ответа на запрос проверки подлинности. Он также устанавливает розовый цвет фона запросов проверки подлинности в окне Fiddler, но вы можете изменить или удалить эту часть кода. Если вы хотите использовать другой набор учетных данных при прохождении проверки подлинности, можете указать домен\\имя_пользователя вместо значения default, как пояснено в самом сценарии. Это неидеальное решение, но оно работает для служб федерации Active Directory и приносит гораздо больше пользы по сравнению с недоступной трассировкой Fiddler.

Для получения дополнительных сведений по данной теме откройте соответствующую публикацию Эрика по адресу http://blogs.msdn.com/b/fiddler/archive/2011/09/04/fiddler-http-401-authentication-workaround-to-support-channel-binding-tokens-removing-endless-prompts.aspx.

Это локализованная запись блога. Оригинал находится на странице Using Fiddler With SAML and SharePoint to Get Past the Three Authentication Prompts