Estou fazendo autenticação ADFS para SharePoint Online usando o protocolo WS-Federation da Microsoft online.
Uma parte realmente confusa do processo é a operação "wasignin" para o protocolo WS-Federation, que é uma postagem de formulário HTTP parahttps://login.microsoftonline.com/login.srf.
É confuso por causa dos parâmetros codificados no wctx
parâmetro.
É wctx
uma sequência codificada de parâmetros de formulário. E os parâmetros são internos à implementação do WS-Federation, neste caso a Microsoft. O wctx da Microsoft parece conter dois parâmetros:
estsredirect
= algum número inteiro. Ou seja2
estsrequest
= alguma string codificada em base64
Mas o que eles fazem? Eles não estão documentados em nenhum lugar que eu possa encontrar.
Verhttps://blogs.technet.microsoft.com/askpfeplat/2014/11/02/adfs-deep-dive-comparing-ws-fed-saml-and-oauth/para obter mais informações sobre WS-Federation durante handshakes ADFS.
Mais informações:https://msdn.microsoft.com/en-us/library/system.identitymodel.services.wsfederationauthenticationmodule.createsigninrequest(v=vs.110).aspx
Anteriormente abri isso emhttps://security.stackexchange.com/questions/180629/during-microsoft-ws-federation-protocol-help-describe-the-parameters-given-to-tmas foi-me dito para reabri-lo aqui, pois não é realmente uma questão de segurança, é mais uma questão de implementação da Microsoft.
Responder1
Ele armazena o contexto da federação.
Existe um cmdlet:
Definir AdfsWebConfig -ContextCookieEnabled
que armazena isso como um cookie para persistir e adiciona-o à string.
por exemplo, imagine um cenário:
Aplicativo -> ADFS -> algum outro IDP
O outro PDI precisa tomar uma decisão com base em qual aplicativo fez a chamada. Isso é o que é armazenado no contexto. É passado ao longo da cadeia.