Я выполняю аутентификацию ADFS для SharePoint Online с использованием протокола WS-Federation от Microsoft Online.
Одна действительно запутывающая часть процесса - это операция wasignin для протокола WS-Federation, который представляет собой сообщение HTTP-формы для https://login.microsoftonline.com/login.srf.
Это сбивает с толку из-за параметров, закодированных в wctx
параметр.
В wctx
- закодированная строка параметров формы. И параметры являются внутренними для реализации WS-Federation в данном случае microsoft. Wctx от Microsoft, похоже, содержит два параметра:
estsredirect
= некоторое целое число. Т.е. 2
estsrequest
= некоторая строка в кодировке base64
Но что они делают? Они нигде не задокументированы, что я могу найти.
Видеть https://blogs.technet.microsoft.com/askpfeplat/2014/11/02/adfs-deep-dive-comparing-ws-fed-saml-and-oauth/ для получения дополнительной информации о WS-Federation во время рукопожатий ADFS.
Больше информации: https://msdn.microsoft.com/en-us/library/system.identitymodel.services.wsfederationauthenticationmodule.createsigninrequest(v=vs.110).aspx
Ранее открывал это на https://security.stackexchange.com/questions/180629/during-microsoft-ws-federation-protocol-help-describe-the-parameters-given-to-t но мне сказали снова открыть его здесь, так как это на самом деле не вопрос безопасности, скорее вопрос реализации Microsoft.
Он хранит контекст федерации.
Есть командлет:
Установите AdfsWebConfig -ContextCookieEnabled
который сохраняет это как файл cookie для сохранения и добавляет его в строку.
например представьте себе сценарий:
Приложение -> ADFS -> другой IDP
Другой IDP должен принять решение на основе того, из какого приложения был сделан звонок. Это то, что хранится в контексте. Его передают по цепочке.