Clock Skew


Quando construímos um serviço WCF, basicamente criamos o serviço e os clientes que o acessam. Fazemos a distribuição dos clientes, sem nos preocuparmos com uma configuração que, as vezes, podem resultar em possíveis erros durante a execução.

Ao expor um serviço através de um binding que já traz segurança integrada (como é o caso do WSHttpBinding), há um comportamento especial em que ao enviar a mensagem do cliente para o serviço, a data/hora atual são incluídos dentro da requisição. Quando a mensagem chegar para o serviço, ele analisará essa data/hora antes de efetivamente executar o pedido. Para evitar possíveis ataques de replay, o WCF verifica se a data/hora de criação é maior ou menor que o permitido (o padrão é 5 minutos de tolerancia para mais ou para menos) e, caso seja, a requisição será rejeitada.

Para customizar esse valor, podemos recorrer a propriedade MaxClockSkew que aceita um TimeSpan que especifica a tolerancia máxima permitida. Para os bindings pré-definidos essa configuração não está acessível, tendo que fazer o uso de um customBinding caso necessitamos mudar a configuração padrão que, dificilmente será necessário, a menos que a sincronização dos relógios das duas ou mais máquinas envolvidas não seja possível.

Anúncios

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s