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 dos metadados da federação com todas as minhas partes confiáveis; tentar clicar com o botão direito do mouse e selecionar "Atualizar de Metadados da Federação..." (ou ir para propriedades, monitoramento, URL de teste) 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 há nenhum servidor proxy necessário e nenhum servidor proxy definido. Posso navegar até o URL de metadados da federação perfeitamente 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 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 os metadados. Tentar adicionar uma nova confiança de terceira parte confiável dá o mesmo erro.
Executei o diagnóstico do ADFS e test-adfsserverhealth apresenta um erro que considero fundamental, mas não sei para onde ir a seguir.
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 :
Parece que você está tendo problemas em https://blogs.technet.microsoft.com/pie/2016/10/23/adfs-2016-cannot-addupdate-relying-party-from-the-gui-from-metadata- arquivos/
Eu também tive esse problema até descobrir que as configurações de TLS entre os dois sistemas estavam em conflito. O servidor que hospeda os metadados foi definido para usar apenas TLS 1.2, enquanto o servidor ADFS em execução no Windows Server 2016 foi definido com as configurações padrão de TLS. Quando mudei o servidor ADFS para usar apenas TLS 1.2, o problema foi resolvido.