Voorbeeld van Javascript-code voor het ophalen, valideren en retourneren van de client-ID naar de koptekst van het antwoord
Een webhook is een door de gebruiker gedefinieerde HTTPS-callback die wordt geactiveerd wanneer een bepaalde gebeurtenis plaatsvindt op de bronsite (in dit geval Adobe Acrobat Sign).
In feite is een webhook niets anders dan een webservice die HTTPS-POST-verzoeken accepteert van een bron. Een webhook is dus een REST-service die gegevens of een gegevensstroom accepteert.
Webhooks zijn bedoeld voor service-to-service communicatie in een Push-model.
Wanneer zich een activerende gebeurtenis voordoet, construeert Acrobat Sign een HTTPS-POST met een JSON-body en levert deze aan de opgegeven URL.
Het gebruik van webhooks biedt een aantal voordelen in vergelijking met de voorgaande Callback-methode, zoals:
Dit document is voornamelijk gericht op de webhooks-UI in de Acrobat Sign-internettoepassing (voorheen Adobe Sign).
Ontwikkelaars die meer willen weten over API kunnen hier de gewenste informatie vinden:
Beheerders moeten eerst een webhookservice hebben waarmee binnenkomende pushmeldingen van Acrobat Sign worden geaccepteerd. Er zijn in dit opzicht veel opties en zolang de service POST- en GET-verzoeken kan accepteren, zal de webhook succesvol zijn.
Zodra de service is ingesteld, kan een Acrobat Sign-beheerder een nieuwe webhook maken via de Webhook-interface in het menu Account van de Acrobat Sign-site.
Beheerders kunnen de webhook zodanig configureren dat deze wordt geactiveerd voor afspraken, webformulieren of 'In bulk verzenden'-gebeurtenissen.
Het bereik van webhook een heel account of afzonderlijke groepen omvatten. Dit gebeurt via de beheerinterface. De bereiken Gebruiker en Bron kunnen ook worden ingesteld via de API
Het type gegevens dat via een pushmelding naar de URL wordt gestuurd, kan worden geconfigureerd en kan bijvoorbeeld informatie bevatten over de overeenkomst, de deelnemer, het ondertekende document, enzovoort.
Nadat de webhook is geconfigureerd en opgeslagen, zal Acrobat Sign telkens een nieuw JSON-object naar de gedefinieerde URL sturen via een pushmelding. Dit gebeurt telkens wanneer de triggergebeurtenis plaatsvindt. U hoeft de webhook niet voortdurend te bewerken of te controleren, tenzij u de criteria voor triggergebeurtenissen of de JSON-payload wilt wijzigen.
Voordat een webhook kan worden geregistreerd, controleert Acrobat Sign of de webhook-URL in de registratieaanvraag daadwerkelijk is bedoeld om meldingen te ontvangen. Wanneer Acrobat Sign een nieuwe aanvraag voor webhookregistratie ontvangt, wordt dan ook eerst een verificatieaanvraag gestuurd naar de webhook-URL. Dit verificatieverzoek is een HTTPS GET-aanvraag die naar de webhook-URL is verzonden. Deze aanvraag heeft een aangepaste HTTP-header X-AdobeSign-ClientId. De waarde in deze header is ingesteld op de client-ID (applicatie-ID) van de API-applicatie die de aanvraag voor het maken/registreren van de webhook indient. Voordat een webhook kan worden geregistreerd, moet de webhook-URL aan dit verzoek voldoen met een 2XX-responscode. Bovendien moet dezelfde waarde voor de client-ID worden teruggestuurd op een van de volgende twee manieren.
De webhook wordt alleen geregistreerd bij een succesvolle respons (2XX-responscode) en validatie van de client-ID in de kop- of hoofdtekst van de respons. Het doel van deze verificatieaanvraag is om aan te tonen dat uw webhook-URL ook daadwerkelijk meldingen wil ontvangen op de desbetreffende URL. Als u per ongeluk een verkeerde URL hebt ingevoerd, reageert de URL niet correct op de verificatieaanvraag en stuurt Acrobat Sign geen meldingen meer naar die URL. Daarnaast kan de webhook-URL ook bevestigen dat de URL alleen meldingen ontvangt via de webhooks die zijn geregistreerd bij een bepaalde toepassing. Hiervoor moet u de client-ID van de toepassing valideren die wordt doorgegeven in de X-AdobeSign-ClientId-header. Als deze client-ID niet wordt herkend door de webhook-URL, MOET deze NIET reageren met de antwoordcode voor succes. Acrobat Sign zal er in dat geval voor zorgen dat de URL niet als webhook wordt geregistreerd.
Verificatie van de webhook-URL-aanroep wordt in de volgende gevallen uitgevoerd:
Acrobat Sign voert een impliciete verificatie van de intentie uit in elk webhookmeldingsverzoek dat naar de webhook-URL wordt verzonden. Zo bevat elk webhookmeldings-HTTPS-verzoek ook de aangepaste HTTP header genaamd X-AdobeSign-ClientId. De waarde van deze header is de client-ID (Application ID) van de toepassing waarmee de webhook is gemaakt De levering van de webhookmelding is alleen succesvol als het antwoord voor succesvolle levering (2XX antwoordcode) wordt geretourneerd en de client-ID wordt verzonden in de HTTP header (X-AdobeSign-ClientId) of in een JSON-antwoordtekst met sleutel als xAdobeSignClientId en waarde als dezelfde client-ID, anders proberen we de melding opnieuw naar de webhook-URL te sturen totdat de nieuwe pogingen zijn uitgeput.
Zoals hierboven vermeld, moet de waarde van de client-ID in de koptekst 'X-AdobeSign-ClientId' die is opgenomen in elke meldingsaanvraag van Sign, op een van de volgende twee manieren worden 'teruggekaatst':
|
Voorbeeld van Javascript-code voor het ophalen, valideren en retourneren van de client-ID naar de koptekst van het antwoord |
|---|
|
//Client-ID ophalen var clientid = request.headers['X-ADOBESIGN-CLIENTID'];
//Valideren if (clientid ==="BGBQIIE7H253K6") //Vervang de waarde 'BGBQIIE7H253K6' door de client-ID van de toepassing waarmee de webhook is gemaakt { //Retourneren in de koptekst van de respons response.headers['X-AdobeSign-ClientId'] = clientid; response.status = 200; // standaardwaarde } |
|
Voorbeeld van PHP-code voor het ophalen, valideren en retourneren van de client-ID naar de koptekst van het antwoord |
|---|
|
<?php //Client-ID ophalen $clientid = $_SERVER['HTTP_X_ADOBESIGN_CLIENTID']; //Valideren if($clientid == "BGBQIIE7H253K6") //Vervang de waarde 'BGBQIIE7H253K6' door de client-ID van de toepassing waarmee de webhook is gemaakt { //Retourneren in de koptekst van de respons header("X-AdobeSign-ClientId:$clientid"); header("HTTP/1.1 200 OK"); // standaardwaarde } ?>
|
|
Voorbeeld van Javascript-code voor het ophalen, valideren en retourneren van de client-ID naar de hoofdtekst van hat antwoord |
|---|
|
//Client-ID ophalen var clientid = request.headers['X-ADOBESIGN-CLIENTID'];
//Valideren if (clientid ==="BGBQIIE7H253K6") //Vervang de waarde 'BGBQIIE7H253K6' door de client-ID van de toepassing waarmee de webhook is gemaakt { var responseBody = { "xAdobeSignClientId" : clientid // Client-ID retourneren in de hoofdtekst van de respons }; response.headers['Content-Type'] = 'application/json'; response.body = responseBody; response.status = 200; } |
|
Voorbeeld van PHP-code voor het ophalen, valideren en retourneren van de client-ID naar de hoofdtekst van de respons |
|---|
|
<?php //Client-ID ophalen $clientid = $_SERVER['HTTP_X_ADOBESIGN_CLIENTID']; //Valideren if($clientid == "BGBQIIE7H253K6") //Vervang de waarde 'BGBQIIE7H253K6' door de client-ID van de toepassing waarmee de webhook is gemaakt { //Retourneren in de hoofdtekst van de respons header("Content-Type: application/json"); $body = array('xAdobeSignClientId' => $clientid); echo json_encode($body); header("HTTP/1.1 200 OK"); // standaardwaarde } ?> |
|
Voorbeeld van JSON-hoofdtekst van de respons |
|---|
|
{ "xAdobeSignClientId": "BGBQIIE7H253K6" } |
U hebt het volgende nodig:
Een Javascript HTTP-triggerfunctie maken:
1. Meld u aan via uw Microsoft-account https://portal.azure.com/
2. Open de Azure Functie-applicatie die wordt weergegeven op het tabblad Functie-apps.
Hiermee wordt uw lijst met Azure Function-toepassingen geopend:
3. Kies de toepassing waarin u deze nieuwe functie wilt maken
4. Klik op de knop Maken (+) om een nieuwe Azure-functie te maken
5. Selecteer Webhook + API als scenario en Javascript als taal
6. Klik op Deze functie maken
Er wordt een nieuwe functie gemaakt waarmee een binnenkomende API-aanvraag kan worden verwerkt.
Voordat een webhook kan worden geregistreerd, controleert Acrobat Sign of de webhook-URL in de registratieaanvraag daadwerkelijk is bedoeld om meldingen te ontvangen. Wanneer Acrobat Sign een nieuwe aanvraag voor webhookregistratie ontvangt, wordt dan ook eerst een verificatieaanvraag gestuurd naar de webhook-URL. Hierbij gaat het om een HTTPS GET-aanvraag die naar de webhook-URL wordt gestuurd met de aangepaste HTTP-header X-AdobeSign-ClientId. De waarde in deze header is ingesteld op de client-ID van de toepassing die de aanvraag voor het maken/registreren van de webhook indient. Voordat een webhook kan worden geregistreerd, moet de webhook-URL aan dit verzoek voldoen met een 2XX-responscode. Bovendien moet dezelfde waarde voor de client-ID worden teruggestuurd op een van de volgende twee manieren.
U hebt twee opties:
Geef de X-AdobeSign-ClientId door in de koptekst van de respons. Dit is dezelfde koptekst die was doorgegeven in de oorspronkelijke aanvraag en die in de respons moet worden 'teruggekaatst'.
Vervang het bestand Index.js door het volgende:
module.exports = function (context, req) {
var clientId = req.headers['x-adobesign-clientid'];
// Bevestigen dat de binnenkomende ClientID ook echt is
if (clientId === '123XXX456') {
context.res = {
// status: 200, /* Defaults to 200 */ // elke 2XX-respons is acceptabel
body: "Melding geaccepteerd",
headers : {
'x-adobesign-clientid' : req.headers['x-adobesign-clientid']
}
};
}
else {
context.res = {
status: 400,
body: "Oeps!! Ongeldige aanroep geïdentificeerd"
};
}
context.done();
};
Test het gedrag door de aanvraag na te bootsen:
1. Klik op de knop Test in de rechterhoek
2. Boots de aanvraag na
Hoewel antwoordheaders hierboven niet worden weergegeven, kunt u het bekijken door nabootsing via postman/DHC of een andere dienst.
In de JSON-hoofdtekst van de respons met de sleutel xAdobeSignClientId en de waarde die gelijk is aan de client-ID die in de koptekst van de aanvraag was verzonden.
Vervang het bestand Index.js door het volgende:
module.exports = function (context, req) {
var clientId = req.headers['x-adobesign-clientid'];
// Bevestigen dat de binnenkomende ClientID ook echt is
if (clientId === '123XXX456') {
context.res = {
// status: 200, /* Defaults to 200 */ // elke 2XX-respons is acceptabel
body: {
'xAdobeSignClientId' : clientId
},
headers : {
'Content-Type' : 'application/json'
}
};
}
else {
context.res = {
status: 400,
body: "Oeps!! Ongeldige aanroep geïdentificeerd"
};
}
context.done();
};
Test het gedrag door de aanvraag na te bootsen
1. Klik op de knop Test in de rechterhoek
2. Boots de aanvraag na
Merk op dat hetzelfde gedrag voor clientID wordt verwacht wanneer de webhook-URL een POST-melding ontvangt.
Nadat u het gedrag hebt geverifieerd, is de webhook-URL functioneel volgens de Acrobat Sign-normen. U kunt de aangepaste logica verder bijwerken op basis van uw vereisten.
De functie-URL ophalen
Kopieer de URL en gebruik deze om webhooks te maken in Acrobat Sign.
Om een AWS Lambda-functie te maken meldt u zich aan bij uw AWS Management Console en selecteert u de AWS Lambda-service in de lijst met services.
Voordat een webhook kan worden geregistreerd, controleert Acrobat Sign of de webhook-URL in de registratieaanvraag daadwerkelijk is bedoeld om meldingen te ontvangen. Wanneer Acrobat Sign een nieuwe aanvraag voor webhookregistratie ontvangt, wordt dan ook eerst een verificatieaanvraag gestuurd naar de webhook-URL. Hierbij gaat het om een HTTPS GET-aanvraag die naar de webhook-URL wordt gestuurd met de aangepaste HTTP-header X-AdobeSign-ClientId. De waarde in deze header is ingesteld op de client-ID van de toepassing die de aanvraag voor het maken/registreren van de webhook indient. Voordat een webhook kan worden geregistreerd, moet de webhook-URL aan dit verzoek voldoen met een 2XX-responscode. Bovendien moet dezelfde waarde voor de client-ID worden teruggestuurd op een van de volgende twee manieren. Merk op dat hetzelfde gedrag voor clientID wordt verwacht wanneer de webhook-URL een POST-melding ontvangt.
Volg een van de twee gevallen:
|
Voorbeeld van de JS-code van de node om de client-ID op te halen, deze te valideren en vervolgens terug te sturen naar de koptekst van de respons |
|---|
|
exports.handler = function index(event, context, callback) { // Client-ID ophalen var clientid = event.headers['X-AdobeSign-ClientId'];
//Valideren if (clientid =="BGBQIIE7H253K6") //Vervang 'BGBQIIE7H253K6' door de client-ID van de toepassing waarmee de webhook is gemaakt { var response = { statusCode: 200, headers: { "X-AdobeSign-ClientId": clientid } }; callback(null,response); } else { callback("Oops!! illegitimate call"); } } |
In de JSON-hoofdtekst van de respons met de sleutel xAdobeSignClientId en de waarde die gelijk is aan de client-ID die in de koptekst van de aanvraag was verzonden.
Codefragment
Vervang het bestand Index.js door het volgende:
|
Voorbeeld van de JS-code van de node om de client-ID op te halen, deze te valideren en vervolgens terug te sturen naar de koptekst van de respons |
|---|
|
exports.handler = function index(event, context, callback) { // Client-ID ophalen var clientid = event.headers['X-AdobeSign-ClientId'];
//Valideren if (clientid =="BGBQIIE7H253K6") //Vervang 'BGBQIIE7H253K6' door de client-ID van de applicatie waarmee de webhook is gemaakt { var responseBody = { xAdobeSignClientId : clientid };
var response = { statusCode: 200, body: JSON.stringify(responseBody) };
callback(null,response); } else { callback("Opps!! illegitimate call"); } } |
Om deze Lambda openbaar toegankelijk te maken via een HTTP-methode moeten we de AWS API Gateway configureren met onze functie (hierboven gemaakt) als de back-end voor de API.
Selecteer in de AWS Management Console de API-gateway van de AWS-services en klik op de knop API maken
Als alle bovenstaande stappen correct zijn uitgevoerd, ziet u zoiets als dit:
De volgende stap is het implementeren van deze API, zodat deze klaar is voor gebruik.
API is nu klaar voor gebruik en u kunt de aanroep-URL vinden in het blauwe vak, zoals hieronder weergegeven:
Let op deze URL, want u moet deze invoeren als uw realtimewebhook-URL.
Het is gereed. Gebruik deze bovenstaande URL met "/{nodeJSfunctionName}" toegevoegd als webhook-url in POST /webhooks API-verzoek. Nadat u het gedrag hebt geverifieerd, is de webhook-URL functioneel volgens de
Acrobat Sign-normen. U kunt de aangepaste logica verder bijwerken/toevoegen volgens uw vereisten.
Bij de configuratie van de webhook moet u vijf elementen definiëren:
Zodra de webhook volledig is gedefinieerd, klikt u op Opslaan, waarna de webhook direct kan reageren op activeringsgebeurtenissen.
Configureer uw webhook-URL om te reageren op de webhookverificatie en webhookmeldingsverzoeken volgens het verificatieprotocol dat hierboven is uitgelegd. De client-ID (toepassings-ID) die wordt verzonden naar webhooks die zijn gemaakt met de Acrobat Sign-webtoepassing, is - UB7E5BXCXY
Een webhook-URL is een server die luistert naar binnenkomende HTTPS POST-meldingen die worden geactiveerd wanneer bepaalde gebeurtenissen plaatsvinden.
U hebt deze URL nodig om uw webhook bij gebeurtenissen aan te melden.
Hieronder staan de gebeurtenissen die een pushmelding aan de webhook-URL kunnen activeren, gegroepeerd per object.
Elke gebeurtenis heeft een sjabloon met de JSON-lading die kan worden geleverd. (Klik op de naam van de gebeurtenis om de lading weer te geven):
Met meldingsparamters kunt u de JSON-lading aanpassen aan de specifieke elementen van de gebeurtenis.
Bij de gebeurtenis Overeenkomstdeelnemer vervangen wilt u bijvoorbeeld misschien alleen de elementen Overeenkomstgegevens en Deelnemersgegevens opnemen, en niet Documentgegevens. Zo houdt u ook de totale inhoud van uw webhook-URL beperkt
Tweerichtings-SSL, vaak Client-Side SSL of wederzijdse TLS genoemd, is een SSL-modus waarbij zowel de server als de client (webbrowser) certificaten presenteren om zichzelf te identificeren.
Accountbeheerders kunnen een 'client-side'-certificaat configureren op de pagina Beveiligingsinstellingen.
Acrobat Sign verifieert de SSL-certificaten bij het leveren van payloads aan de webhook-URL. Als een webhook de SSL-certificaatverificatie niet doorstaat, wordt er geen JSON-lading geleverd.
Gebruik tweezijdige SSL-verificatie om de client (Acrobat Sign) te verifiëren en als listening-service om er zeker van te zijn dat uw webhook-URL alleen bereikbaar is voor Acrobat Sign.
Als de webhook is gemaakt door een partnerapplicatie, gebruikt de webhook een clientcertificaat (indien beschikbaar) van het account van de partnerapplicatie om zichzelf te identificeren bij het maken van webhook-oproepen.
Hieronder vindt u de meest voorkomende vragen voor zowel het verificatieproces van de webserver als de verificatie van de clientcertificering.
Tijdens de registratie van een webhook verifieert Acrobat Sign de URL van de webhookserver.
Klanten kunnen de webhook niet registreren als de verbinding met de terugbel-URL van de webhook niet kan worden voltooid met Acrobat Sign.
Nee.
De webhookcallback-URL kan alleen HTTPS zijn op poort 443.
Acrobat Sign blokkeert het uitgaande HTTPS-verkeer naar alle andere poorten.
Een goede manier om het servercertificaat te verifiëren is door de DigiCert® SSL-installatiediagnosetool te gebruiken.
Voer alleen de hostnaam in, bijvoorbeeld: www.digicert.com
Veelvoorkomende problemen zijn:
Oplossing: gebruik een openbaar door CA uitgegeven SSL-certificaat voor de webhookcallback-server.
Oplossing: installeer de tussenliggende certificaten op de webhookcallback-server.
Zie https://www.digicert.com/kb/ssl-certificate-installation.htm voor meer informatie.
Om een tweerichtings-SSL in te stellen voor een webhook vragen we de beheerder een p12- (of pfx)-bestand met de privésleutel te uploaden. Het bestand wordt veilig opgeslagen in het klantaccount en de beheerder heeft volledige controle om het op elk moment te verwijderen.
In een tweerichtingswebhookconfiguratie is Acrobat Sign de beller/client en heeft de privésleutel nodig om te bewijzen dat de aanroep is gedaan door Acrobat Sign namens de klantaccount.
Controleren of SSL in twee richtingen is ingeschakeld
SSL in twee richtingen moet zijn ingeschakeld op de webhookcallback-server.
Maak via elke webbrowser verbinding met de webhookcallback-URL. U zou het volgende moeten krijgen:
400 Bad Request Geen vereist SSL-certificaat verzonden
Dit betekent dat de server verwacht dat de client clientcertificaten verzendt (d.w.z.: tweerichtings-SSL is ingeschakeld voor de server).
Als het bovenstaande bericht niet wordt weergegeven, is tweerichtings-SSL niet ingeschakeld.
U kunt Postman gebruiken en een POST-verzoek doen naar de webhookcallback-URL. U zou een vergelijkbaar resultaat moeten krijgen.
De aanmeldingsgegevens van de klant kunnen een zelfondertekend certificaat of een door CA uitgegeven certificaat zijn. Ze moeten echter minimaal voldoen aan de volgende X.509 v3-uitbreidingen:
|
X.509 v3-uitbreiding |
Waarde |
|---|---|
|
ExtendedKeyUsage |
clientAuth (OID: 1.3.6.1.5.5.7.3.2) |
|
KeyUsage |
digitalSignature |
Het clientcertificaat moet een PKCS12-bestand zijn met de extensie .p12 of .pfx, en het moet zowel het clientcertificaat bevatten (zodat de server de identiteit van de client kan verifiëren) als de persoonlijke sleutel van de client ( zodat de client berichten digitaal kan ondertekenen voor de server om te verifiëren tijdens de SSL-handshake).
Gebruik de opdracht openssl om het p12- (pfx)-bestand te verifiëren:
openssl pkcs12 -info -in outfile.p12
De wachtwoordzin voor de privésleutel moet worden aangevraagd. De uitvoer moet zowel certificaten als een versleutelde privésleutel bevatten, zoals:
Bag Attributes
localKeyID: 9D BD 22 80 E7 B2 B7 58 9E AE C8 42 71 F0 39 E1 E7 2B 57 DB
subject=/C=US/ST=California/L=San Jose/O=Adobe Inc./CN=sp.adobesignpreview.com
issuer=/C=US/O=DigiCert Inc/CN=DigiCert TLS RSA SHA256 2020 CA1
-----BEGIN CERTIFICATE-----
MIIGwDCCBaigAwIBAgIQAhJSKDdyQZjlbYO5MJAYOTANBgkqhkiG9w0BAQsFADBP
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMSkwJwYDVQQDEyBE
...
JAKQLQ==
-----END CERTIFICATE-----
Bag Attributes: <No Attributes>
subject=/C=US/O=DigiCert Inc/CN=DigiCert TLS RSA SHA256 2020 CA1
issuer=/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root CA
-----BEGIN CERTIFICATE-----
MIIEvjCCA6agAwIBAgIQBtjZBNVYQ0b2ii+nVCJ+xDANBgkqhkiG9w0BAQsFADBh
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
...
-----END CERTIFICATE-----
Bag Attributes
localKeyID: 9D BD 22 80 E7 B2 B7 58 9E AE C8 42 71 F0 39 E1 E7 2B 57 DB
Key Attributes: <No Attributes>
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQI7eNh2qlsLPkCAggA
...
FHE=
-----END ENCRYPTED PRIVATE KEY-----
De certificaten moeten ten minste het certificaat van de eindentiteit en de tussentijdse certificaten bevatten. Idealiter bevat het ook het CA-rootcertificaat.
Zorg ervoor dat het p12- of pfx-bestand beveiligd is met een wachtwoordzin.
Een zelfondertekend clientcertificaat maken (optioneel)
Clientcertificaten kunnen door een CA worden uitgegeven of zelfondertekend zijn, afhankelijk van uw wensen.
Gebruik de opdracht openssl om een zelfondertekend clientcertificaat te genereren:
openssl req -newkey rsa:4096 -keyform PEM -keyout ca.key -x509 -days 3650 -outform PEM -out ca.cer
Houd de resulterende bestanden geheim, aangezien dit uw zelfondertekende CA-certificaten zijn.
Genereer vervolgens het p12-klantbestand:
openssl genrsa -out client.key 2048
openssl req -new -key client.key -out client.req
openssl x509 -req -in client.req -CA ca.cer -CAkey ca.key -set_serial 101 -extensions client -days 365 -outform PEM -out client.cer
openssl pkcs12 -export -inkey client.key -in client.cer -out client.p12
rm client.key client.cer client.req
Eenmaal geconfigureerd stuurt u een POST-verzoek naar de webhook callback-URL.
U zou een 200-reactie moeten krijgen.
Waarom weigert Acrobat Sign mijn PFX-bestand, zelfs nadat ik het met Postman heb geverifieerd?
Als u het bovenstaande proces voor pfx-bestandsverificatie hebt gevolgd en Acrobat Sign het pfx-bestand nog steeds weigert, dan is het bestand waarschijnlijk gegenereerd door een Microsoft-tool die een niet-standaard PKCS12-bestand kan produceren.
Gebruik in dat geval de onderstaande openssl-opdrachten om de certificaten en de persoonlijke sleutel uit het pfx-bestand te extraheren en genereer vervolgens een PKCS12-bestand met de juiste indeling:
// Certificaten en privésleutel extraheren uit pfx-bestand openssl pkcs12 -info -in microsoftclientssl.pfx -passin pass:"" -out clientcert.crt -nokeys openssl pkcs12 -info -in microsoftclientssl.pfx -passin pass:"" -out clientcert.key -nodes -nocerts // Nieuw PKCS12-bestand maken openssl pkcs12 -export -inkey clientcert.key -in clientcert.crt -out clientcert.pfx
Toegang tot de webhookfunctie is standaard ingeschakeld voor accounts op ondernemingsniveau.
Beheerders op groepniveau kunnen webhooks maken/controleren die alleen binnen de groep functioneren.
Als u de pagina Webhooks wilt openen, gaat u naar de linkerkant van het menu Beheer: Account > Webhooks
Wanneer een webhook voor de eerste keer wordt gemaakt, is de status voor de webhook Actief.
Op de pagina Webhooks in Acrobat Sign worden standaard de actieve webhooks getoond.
Een niet-actieve webhook activeren:
Zodra de volgende gebeurtenis wordt geactiveerd, start de actieve webhook begint met het verzenden van gegevens naar de doel-URL.
Om een webhook uit te schakelen, hoeft u alleen maar de volgende stappen uit te voeren
U kunt webhooks altijd bewerken en opslaan, en als u een nieuwe configuratie opslaat, is de wijziging direct van kracht.
Alleen Gebeurtenissen en Meldingsparameters kunnen worden bewerkt.
Als u Naam, Bereik of URL wilt wijzigen, moet u een nieuwe webhook maken.
De parameters van een webhook bewerken:
Een webhook kan altijd worden verwijderd.
Als u een webhook verwijdert, wordt deze in het systeem vernietigd. U kunt een verwijderde webhook dus niet herstellen of terugzetten.
Webhooks hoeven niet eerst te worden gedeactiveerd.
Een webhook verwijderen:
Als u bijvoorbeeld dan ondertekende documenten verwerken en moet opslaan. Om ervoor te zorgen, kunt u altijd binnen tien seconden reageren, moet u uw werk op een aparte verbinding altijd doen of asynchroon een wachtrij gebruiken.
1. Welke gegevens wilt u retourneren in de payload?
2. Wie heeft toegang tot deze informatie?
3. Welke beslissing of rapport wordt hierdoor gegenereerd?
Hoewel het volkomen acceptabel is om gewoon de optie Overeenkomst van ondertekend document te selecteren tijdens het maken van een webhook, kunt u overwegen de Acrobat Sign-API te gebruiken om de documenten op te halen wanneer een activerende gebeurtenis (zoals de overeenkomststatus Voltooid) is ontvangen.
De grootte van de JSON-lading is beperkt tot 10 MB.
Als een gebeurtenis een grotere payload genereert, wordt een webhook geactiveerd, maar de attributen van voorwaardelijke parameters, als die aanwezig zijn in het verzoek, worden verwijderd om de payload te verkleinen.
"ConditionalParametersTrimmed " wordt in de respons geretourneerd wanneer de client hierdoor wordt geïnformeerd dat de conditionalParameters -informatie is verwijderd.
“conditionalParametersTrimmed” is een array-object met informatie over de sleutels die zijn afgekapt.
De afkapping vindt plaats in de onderstaande volgorde:
De ondertekende documenten worden eerst worden afgekapt, gevolgd door deelnemerinformatie op, documentgegevens en de uiteindelijke gedetailleerde informatie.
Dit kan bijvoorbeeld op een gebeurtenis ook gebeuren als het agreement ondertekend document (versleutelde grondtal 64) of voor een agreement met meerdere formuliervelden bevat
Acrobat Sign-webhooks leveren meldingen die van toepassing zijn op alle deelnemers aan een overeenkomst als er een webhook is geconfigureerd voor die gebruiker, hun groep of hun account.
Overeenkomstgebeurtenissen worden zo verwerkt dat als er een webhook is geconfigureerd voor de betreffende deelnemer van die gebeurtenis, er een melding naar die webhook-URL wordt verzonden. Met andere woorden, webhooks worden geactiveerd voor gebeurtenissen in alle toepasselijke overeenkomsten, zelfs die buiten de groep of account waarin de webhook is geconfigureerd.
Meldingen worden alleen geleverd voor die gebeurtenissen waarbij de deelnemer betrokken is. De afzender van een overeenkomst ontvangt bijvoorbeeld bijna elke melding, terwijl ontvangers alleen meldingen ontvangen vanaf het begin van hun betrokkenheid bij de overeenkomst, en alleen voor die evenementen waarin ze betrokken zijn.
Webhookmeldingen volgen het huidige verificatie- en zichtbaarheidsmodel van Acrobat Sign zelf, wat betekent dat gebruikers pas toegang hebben tot de overeenkomst wanneer de deelname van de gebruiker aan een overeenkomst is begonnen.
De afzender stuurt een overeenkomst ter ondertekening naar drie ondertekenaars.
De Afzender stuurt een overeenkomst: WebhookX activeert Overeenkomst gemaakt en Overeenkomst verzonden terwijl WebhookY Overeenkomst verzonden activeert.
Signer1 ondertekent: WebhookX activeert Overeenkomst deelnemer voltooid en Overeenkomst verzonden, WebhookY activeert Overeenkomst deelnemer voltooid en WebhookZ activeert Overeenkomst verzonden.
Signer2 ondertekent: WebhookX activeert Overeenkomst deelnemer voltooid en Overeenkomst verzonden, terwijl WebhookZ een melding verzendt voor Overeenkomst deelnemer voltooid.
Signer3 ondertekent: WebhookX activeert Overeenkomst deelnemer voltooid en Overeenkomst workflow voltooid, WebhookY activeert Overeenkomst workflow voltooid en WebhookZ activeert Overeenkomst workflow voltooid.
Als de doel-URL voor de webhook om welke reden dan ook niet beschikbaar is, zal Acrobat Sign de JSON in de wachtrij plaatsen en de push opnieuw proberen in een progressieve cyclus van 72 uur.
De niet-afgeleverde gebeurtenissen worden bewaard in een wachtrij voor opnieuw proberen en er wordt de komende 72 uur alles aan gedaan om de meldingen af te leveren in de volgorde waarin ze zijn opgetreden.
De strategie voor het opnieuw proberen van de levering van meldingen is een verdubbeling van de tijd tussen pogingen, beginnend met een interval van 1 minuut oplopend tot elke 12 uur, wat resulteert in 15 nieuwe pogingen in een tijdsbestek van 72 uur.
Als de webhookontvanger niet binnen 72 uur reageert en er in de afgelopen zeven dagen geen succesvolle leveringen van meldingen zijn geweest, wordt de webhook uitgeschakeld. Geen meldingen worden naar dit URL opnieuw verzonden tot webhook wordt geactiveerd.
Alle meldingen webhook tussen het moment is uitgeschakeld en het later opnieuw ingeschakeld, zullen verloren gaan.
Aanmelden bij je account