Webhooks de notificação
Os webhooks de notificação são um recurso altamente versátil em IBM® Verify. Eles permitem que um administrador configure um terminal para receber um conjunto selecionado de dados de eventos em tempo real. Qualquer evento gerado no Verify pode ser propagado para o webhook configurado, o que permite que o Verify interaja com sistemas externos de maneira orientada a eventos.
- Rastreamento de tentativas de login de um usuário
- Manter um CRM externo ou diretório de usuários atualizado com as mudanças no Cloud Directory
- detectando novos dispositivos de Autenticação de diversos fatores
- Encaminhando eventos para um SIEM
Para obter informações sobre cargas úteis de eventos, consulte Tipos de eventos e cargas úteis.
O administrador pode configurar um webhook de notificação com um conjunto de interesses. Esse conjunto de interesses decide quais eventos são enviados de Verify para o sistema externo.
Os webhooks de notificação são de alto volume. Quando sob carga, o Verify publica muitos eventos. O sistema externo deve estar preparado para receber um nível de carga correspondente. Tempos de resposta rápidos dos terminais de webhook configurados pelo administrador são essenciais quando os webhooks de notificação são usados em fluxos de usuário.
Configurando
Consulte a documentação da API para obter a estrutura completa do objeto de configuração do webhook. Esta seção se concentra na parte de interesses de um webhook de notificação.
O arquivo JSON de configuração do webhook contém uma propriedade notification. Essa propriedade é um objeto JSON aninhado que contém todas as opções de configuração específicas da notificação. A propriedade interests é definida dentro deste objeto notification. Quando um evento é gerado, ele é verificado em relação a cada elemento na propriedade interests. Se algum elemento dentro da propriedade interests for avaliado como uma correspondência, o evento será enviado para o destino do webhook. Os interesses são verificados em ordem, portanto, em casos de uso de alto desempenho, colocar a correspondência mais ampla em primeiro lugar é o método mais eficiente.
name aliado e uma lista de clauses. Essas cláusulas decidem se o interesse é uma correspondência. Os clauses são unidos com uma operação AND e somente se todos corresponderem é que o interesse é atendido. Uma cláusula consiste em três campos:key- É usado para determinar onde inspecionar, no evento, para descobrir se esta cláusula corresponde. Ele deve ser um nome de propriedade JSON.
keypode ser usado para avaliar chaves de nível superior ou chaves dentro do objetodatade um evento. Ao referenciar o objetodata, a notação de ponto JSON é usada. Por exemplo,data.action. valueValueé o valor esperado do campo que está sendo inspecionado.operation- Indica se uma correspondência sobre esta cláusula faz com que o evento seja
includedouexcluded.
Key:event_type, Value:authentication, Operation:includeKey:data.subtype, Value:federation, Operation:exclude
Essas cláusulas se tornam a avaliação lógica.
event_type É authentication E data.subtype NÃO federation
Exemplos
O código a seguir é um exemplo completo da propriedade notification em uma configuração de webhook para atender a vários cenários.
- Todos os eventos de autenticação não federados
"notifications": { "interests": [ { "name": "Non-federation authentication events", "clauses": [ { "key": "event_type", "value": "authentication", "operation": "include" }, { "key": "data.subtype", "value": "federation", "operation": "exclude" } ] } ] }
Detecção de reprodução
O campoid de um evento permanece consistente para o tempo de vida daquele evento. Seja em uma chamada de webhook ou nos dados do evento que são recuperados da API de eventos. Este valor id também é usado como o valor no cabeçalho X-Webhook-ID para notificação webhooks.Correio de notificação não entregue
É possível configurar um webhook para registrar quando uma notificação não foi entregue com êxito ao webhook.
Um administrador pode reconciliar as entregas com falha usando a API de mensagens não entregues do webhook de notificação, juntamente com a API de eventos. Estas cartas mortas registradas contêm o ID da notificação não entregue e o momento da notificação. Para visualizar a notificação não entregue, um administrador pode utilizar o valor ID para consultar a API de eventos para um valor de evento único diretamente. Os timestamps de vários eventos podem ser usados para recuperar uma gama de eventos e, em seguida, usar os IDs para filtrá-los no cliente.
Reconciliação de carta morta
Um mecanismo automatizado existe que tenta a reentrega de cartas mortas para o webhook configurado. Essas tentativas de reconciliação são identificáveis pela presença do valor "deadletter":
true na carga útil.
- Manualmente, por uma chamada para a API de flush.
- Automaticamente, quando um webhook de notificação está mostrando um bom estado de saúde.
- Configure a configuração para especificar com que frequência ocorre essa reconciliação automatizada. Veja a documentação da API para obter detalhes.
- A API manual ainda pode ser usada para acionar uma reconciliação independentemente da configuração.
Se uma tentativa de reentrega de uma notificação falhar durante a reconciliação, então a reconciliação será encerrada. O limite de tempo duro nas reconciliações é de 2 horas. Se todas as cartas mortas não forem escancaradas dentro desse tempo, mais reconciliações devem ser executadas.