Webhook-verzoek authenticatie
Voor externe softwaresystemen die een eindpunt beschikbaar stellen waarop webhook-verzoeken gedaan kunnen worden is het belangrijk om te kunnen controleren dat binnenkomende webhook-verzoeken inderdaad afkomstig zijn van ReflexBlue. Wanneer dit niet zou kunnen, dan zou eenieder die het webadres (url) van het eindpunt kent, webhook-verzoeken ernaar toe kunnen sturen al dan niet met kwaadaardige payloads met alle nare gevolgen van dien.
Om het voor externe software systemen dus mogelijk te maken dat webhook-verzoeken vanuit ReflexBlue geauthentiseerd kunnen worden, voorziet ReflexBlue alle webhook-verzoeken van een hash-based message authentication code (HMAC) HTTP-header. De HMAC-waarde in deze header kan worden gebruikt om te controleren dat de payload in het webhook-verzoek daadwerkelijk afkomstig is van ReflexBlue.
Calculatie van de HMAC-waarde
Voor het calculeren van de HMAC-waarde van een webhook-verzoek is een Geheime sleutel nodig. Bij het aanmaken van een integratie in ReflexBlue, wordt er automatisch een Geheime sleutel aangemaakt. Deze sleutel kun je terug vinden door de integratie te openen via het Integraties overzichtsscherm.
De Geheime sleutel mag alleen bekend zijn bij ReflexBlue en het externe softwaresysteem. Het is dus belangrijk om uiterst zorgvuldig om te gaan met deze sleutel.
De Geheime sleutel wordt door ReflexBlue gebruikt om een HMAC-waarde te calculeren van de payload van het webhook-verzoek volgens de HMAC-SHA512 algoritme. De gecalculeerde HMAC-waarde wordt met het webhook-verzoek als HTTP-header meegestuurd onder de naam x-rng-webhook-hmac-sha512 naar het externe softwaresysteem.
Bij ontvangst van het webhook-verzoek vanuit ReflexBlue, kan het externe softwaresysteem met de Geheime sleutel de HMAC-waarde calculeren van de payload en die vergelijken met de waarde die in de x-rng-webhook-hmac-sha512 HTTP-header is meegestuurd. Indien deze twee waarden overeenkomen, dan is de payload succesvol geauthentiseerd als te zijn afkomstig van ReflexBlue.