/ / WCF Falha InvalidSecurity devido a diferenças de tempo - wcf, tempo, diferença

Erro WCF InvalidSecurity devido a diferenças de tempo - wcf, hora, diferença

Eu encontrei um erro que ocorre devido atempo diferente entre cliente e servidor. A comunicação é protegida e, portanto, o erro ocorre na chamada System.IdentityModel.Tokens.SecurityToken DoNegotiation (System.TimeSpan) (a partir do targetSite).

Eu posso reproduzir esse erro simplesmente alterando o tempo do computador do cliente.

Existe a possibilidade de detectar exatamente esse caso?

Devo fazer uma verificação de tempo sozinho?

Ou devo preparar uma mensagem de erro apontando as diferenças de horário como uma possível causa?

Obrigado, Lothar

Respostas:

0 para resposta № 1

O canal seguro é criptografado com PKI pluso carimbo de data e hora e a inclinação padrão é de 5 minutos. Ou seja, a diferença entre cliente e servidor não deve ser superior a 5 minutos. Para mais detalhes de como isso funciona, o google "wcf clock skew".

O Windows desde o Win2k veio com um recurso integrado para sincronizar o relógio com um servidor NTP, portanto, certifique-se de que esse recurso esteja ativado no servidor e no cliente.

Geralmente, os aplicativos de negócios não devem verificara precisão do relógio, uma vez que a precisão é um problema do sistema do qual muitas funções de rede podem depender. Se o ambiente do sistema não estiver íntegro, muitos outros aplicativos na mesma máquina também falharão. O problema do sistema deve ser resolvido por meio do sistema, neste caso, certifique-se de que o relógio seja preciso por meio da função de sincronização de tempo embutida do Windows.