Устранение проблемы пустых страниц ответов при использовании федерации с ACS и Facebook

Дата публикации исходной статьи: вторник, 12 июля 2011 г.

Такая ситуация возникала у меня несколько раз, когда я прорабатывал различные сценарии федерации. Эти случаи всегда связаны с использованием Facebook в качестве источника для входа oAuth или Azure AppFabric ACS в качестве федеративного поставщика удостоверений. Общее поведение заключается либо в выполнении каких-либо интерактивных действий через браузер, либо в программном выполнении операции POST для ACS. В обоих случаях вы получаете в ответ ошибку, но ошибка, как правило, не описывается. Например, при использовании функции Facebook oAuth происходит перенаправление на их сайт для входа, вы вводите учетные данные и вас перенаправляют обратно в ваше приложение. Однако в большинстве случаев при такой ошибке браузер просто выдает сообщение об ошибке сервера с кодом 400. Вот и все. То же самое происходит при программной отправке в ACS — при ошибке вы часто получаете ответ с кодом 400 и сообщением "страница не найдена" или что-то подобное. Чем это может помочь? Ничем!

К сожалению, лучшее, что мне удалось придумать, — использовать при появлении этих страниц Fiddler (www.fiddler2.com). В ответе Fiddler можно найти гораздо больше информации, чем в ответе браузера. Например, при одной из ошибок ACS Fiddler показал, что в ответе были сведения о неправильном формате сообщения POST. Да, это гораздо полезнее, чем сообщение "страница не найдена", с которого бессмысленно начинать. В случае с Facebook мы обнаружили, что в ответе Fiddler фактически говорилось об обратном перенаправлении на недействительный или ненадежный URI. Да, это гораздо полезней, чем просто сообщение об ошибке с кодом 400 и неправильном запросе.

Итак, вот в чем суть: когда вы попадаете в такие явные тупики, запускайте Fiddler и просматривайте данные его ответов, чтобы попытаться найти действительно полезные сведения о том, что произошло. 

Это локализованная запись блога. Исходная статья доступна по адресу Troubleshooting Blank Response Pages When Using Federation with ACS and Facebook