Я выполняю аутентификацию 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.
Он хранит контекст федерации.
Существует командлет:
Set AdfsWebConfig -ContextCookieEnabled
, который сохраняет это как файл cookie для сохранения и добавляет его в строку.
например. представьте себе сценарий:
Приложение -> ADFS -> другой IDP
Другой IDP должен принять решение на основе того, какое приложение сделало вызов. Это то, что хранится в контексте. Он проходит по цепочке.