Ao usar requisições HTTP como método de callback, adicione parâmetros de autenticação aos cabeçalhos da requisição HTTP para que o servidor receptor verifique as assinaturas e rejeite solicitações não autorizadas ou inválidas.
Notas de uso
A autenticação de callback é opcional, mas recomendada. Ativar ou desativar esse recurso não afeta as funcionalidades existentes. Quando ativada, as requisições de callback incluem informações de autenticação que o servidor receptor usa para filtrar acessos não autorizados e aumentar a segurança.
Parâmetros de autenticação
Se você usar requisições HTTP como método de callback, adicione os seguintes parâmetros de autenticação aos cabeçalhos da requisição HTTP.
|
Parâmetro |
Descrição |
|
X-ICE-TIMESTAMP |
Momento em que a requisição HTTP foi iniciada. O valor é um timestamp UNIX. |
|
X-ICE-SIGNATURE |
String de assinatura composta por um valor MD5 de 32 caracteres. Para obter mais detalhes sobre como calcular esse parâmetro, consulte a seção "Cálculo da assinatura" deste tópico. |
Cálculo da assinatura
O valor de X-ICE-SIGNATURE é calculado com base nos parâmetros a seguir.
|
Parâmetro |
Descrição |
Exemplo |
|
Callback URL |
URL de callback da requisição HTTP. |
https://www.example.com/your/callback |
|
X-ICE-TIMESTAMP |
Momento em que a requisição HTTP foi iniciada. O valor é um timestamp UNIX. |
1519375990 |
|
Authentication Key |
Chave de assinatura definida pelo usuário. Pode ter até 32 caracteres e deve conter letras maiúsculas, minúsculas e dígitos. |
Test123 |
Concatene os três parâmetros com barras verticais (|) e calcule o hash MD5 da string resultante. Código de exemplo:
MD5Content = Callback URL|X-ICE-TIMESTAMP|Authentication Key
X-ICE-SIGNATURE = md5sum(MD5Content)
Exemplo de cálculo do X-ICE-SIGNATURE:
X-ICE-SIGNATURE = md5sum(https://www.example.com/your/callback|1519375990|Test123) = c72b60894140fa98920f1279219b****
Regras de autenticação no servidor receptor de mensagens de callback
O servidor receptor concatena a URL de callback, o X-ICE-TIMESTAMP e a chave de autenticação, calcula o hash MD5 e compara o resultado com o valor de X-ICE-SIGNATURE. Se os valores divergirem, a requisição será considerada inválida.
O servidor receptor também verifique se a diferença entre o horário atual e o valor de X-ICE-TIMESTAMP ultrapassa um limiar definido, como 5 minutos. Nesse caso, a requisição é tratada como inválida.
Troca da chave de autenticação
Para substituir a chave de autenticação sem interromper o serviço de callback, o servidor receptor deve aceitar temporariamente tanto a chave antiga quanto a nova. Siga estas etapas:
Defina uma nova chave de autenticação.
Atualize o servidor receptor de mensagens de callback para oferecer suporte à autenticação com as chaves antiga e nova simultaneamente.
Configure a nova chave de autenticação para callbacks no console IMS.
Após um período de transição, remova o suporte à chave antiga do servidor receptor de mensagens de callback.