Eu não sei se alguém já viu esse problema ou tem alguma ideia?
Recentemente, migramos o ADFS do ADFS 2.1 no W2008r2 para o ADFS 4.0 no W2016.
A funcionalidade básica parece boa, mas estou vendo um problema com a atualização de metadados de federação com todas as minhas confianças confiáveis. tentar clicar com o botão direito do mouse e selecionar "Atualizar de metadados de federação ..." (ou ir para propriedades, monitorar, testar URL) dá o seguinte erro:
"An error occurred during an attempt to read the federation metadata. Verify that the specified URL or host name is a valid metadata endpoint".
A mensagem de erro associada é
Method not found: 'Microsoft.identitymodel.protocols.WSFederation.Metadata.MetadataBase Microsoft.Identity.Model.Protocols.WSFederation.Metadata.MetadataSerializer.ReadMetadata(System.IO.Stream)'.
Não é necessário nenhum servidor proxy e nenhum servidor proxy é definido. Eu posso navegar para o URL de metadados de federação muito bem no IE no servidor ADFS e obter a página XML esperada. Verifiquei se os certificados estão definidos corretamente, se a conta do serviço do ADFS tem acesso de leitura a eles, etc.
Não há mensagens de erro no log de eventos no início do serviço ou ao tentar testar / atualizar metadados. Tentar adicionar uma nova confiança da terceira parte confiável dá o mesmo erro.
Eu executei o diagnóstico do ADFS e o teste-adfsserverhealth fornece um erro que considero fundamental, mas não sei para onde ir em seguida.
Name : PingFederationMetadata
Result : Fail
Detail : System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a
send. ---> System.IO.IOException: Unable to read data from the transport connection: An existing
connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An
existing connection was forcibly closed by the remote host
at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags
socketFlags)
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
--- End of inner exception stack trace ---
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.FixedSizeReader.ReadPacket(Byte[] buffer, Int32 offset, Int32 count)
at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest
asyncRequest)
at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer,
AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext,
ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback
callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback
callback, Object state)
at System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result)
at System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.ConnectStream.WriteHeaders(Boolean async)
--- End of inner exception stack trace ---
at System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request)
at System.Net.WebClient.DownloadData(Uri address)
at CallSite.Target(Closure , CallSite , Object , Object )
Output : {PingFedmetadataException}
ExceptionMessage :