Partilhar via


Solucionar problemas de validações de assinatura da Grade de Eventos do Azure

Durante a criação da assinatura do evento, se você estiver vendo uma mensagem de erro como The attempt to validate the provided endpoint https://your-endpoint-here failed. For more details, visit https://aka.ms/esvalidation, isso indica que há uma falha no handshake de validação. Para resolver esse erro, verifique os seguintes aspetos:

  • Faça um HTTP POST para sua url de webhook com um corpo de solicitação SubscriptionValidationEvent de exemplo usando curl ou ferramenta semelhante.
  • Se o webhook estiver implementando o mecanismo de handshake de validação síncrona, verifique se o ValidationCode é retornado como parte da resposta.
  • Se o webhook estiver implementando um mecanismo de handshake de validação assíncrona, verifique se você é o HTTP POST está retornando 200 OK.
  • Se o webhook estiver retornando 403 (Forbidden) na resposta, verifique se o webhook está atrás de um Gateway de Aplicativo do Azure ou de um Firewall de Aplicativo Web. Se for, então você precisa desativar essas regras de firewall e fazer um HTTP POST novamente:
    • 920300 (Pedido em falta um cabeçalho de aceitação)
    • 942430 (Deteção de anomalia de caracteres SQL restritos (args): # de caracteres especiais excedidos (12))
    • 920230 (Codificação de URL múltipla detetada)
    • 942130 (Ataque de injeção de SQL: tautologia SQL detetada.)
    • 931130 (Possível ataque de inclusão remota de ficheiros (RFI) = Referência/ligação fora do domínio)

Importante

Para obter informações detalhadas sobre a validação de ponto de extremidade para webhooks, consulte Entrega de eventos Webhook.

Aqui está um exemplo de JSON SubscriptionValidationEvent que você pode enviar usando uma ferramenta como CURL:

[
  {
    "id": "2d1781af-3a4c-4d7c-bd0c-e34b19da4e66",
    "topic": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "subject": "",
    "data": {
      "validationCode": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
    },
    "eventType": "Microsoft.EventGrid.SubscriptionValidationEvent",
    "eventTime": "2018-01-25T22:12:19.4556811Z",
    "metadataVersion": "1",
    "dataVersion": "1"
  }
]

Aqui está o exemplo de resposta bem-sucedida:

{
  "validationResponse": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
}

Validar a assinatura de eventos da Grade de Eventos usando o Curl

Aqui está o comando Curl de exemplo para validar uma assinatura webhook de um evento Event Grid:

curl -X POST -d '[{"id": "2d1781af-3a4c-4d7c-bd0c-e34b19da4e66","topic": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","subject": "","data": {"validationCode": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"},"eventType": "Microsoft.EventGrid.SubscriptionValidationEvent","eventTime": "2018-01-25T22:12:19.4556811Z", "metadataVersion": "1","dataVersion": "1"}]' -H 'Content-Type: application/json' https://{your-webhook-url.com}

Para saber mais sobre a validação de eventos da Grade de Eventos para webhooks, consulte Validação de ponto de extremidade com eventos de grade de eventos.

Validar subscrição de eventos na nuvem

Use o método HTTP OPTIONS para validação com eventos na nuvem. Para saber mais sobre a validação de eventos na nuvem para webhooks, consulte Validação de ponto de extremidade com eventos na nuvem.

Solucionar problemas de validação de assinatura de evento

Próximos passos

Se precisar de mais ajuda, publique seu problema no fórum Stack Overflow ou abra um tíquete de suporte.