Ukázka kódu v jazyku JavaScript pro načtení ID klienta, jeho ověření a následné vrácení v hlavičce odpovědi
Webhook je uživatelem definované zpětné volání protokolu HTTPS, které je aktivováno, když se na zdrojovém webu vyskytne určitá událost (v tomto případě Adobe Acrobat Sign).
Webhook ve skutečnosti není nic jiného než webová služba, která přijímá požadavky HTTPS POST ze zdroje. Webhook je tedy služba REST, která přijímá data nebo proud dat.
Webhooky slouží ke komunikaci mezi službami v modelu doručování bez vyžádání.
Když nastane aktivační událost, služba Acrobat Sign vytvoří požadavek HTTPS POST s tělem JSON a doručí jej na stanovenou adresu URL.
Webhooky nabízejí oproti předchozí metodě zpětného volání několik výhod, mezi které mimo jiné patří:
Tento dokument je primárně zaměřen na uživatelské rozhraní pro webhooky ve webové aplikaci Acrobat Sign (dříve Adobe Sign).
Vývojáři, kteří hledají podrobné informace o rozhraní API, je mohou nalézt zde:
Správci budou muset nejprve disponovat službou webhooku, která bude připravena přijímat příchozí nabídky ze služby Acrobat Sign. V tomto ohledu existuje mnoho možností, a dokud služba dokáže přijímat požadavky POST a GET, bude webhook úspěšný.
Jakmile je služba zavedena, může správce služby Acrobat Sign vytvořit nový webhook z rozhraní Webhook v nabídce Účet na webu služby Acrobat Sign.
Správci mohou nakonfigurovat webhook pro aktivaci událostí Dohoda, Webový formulář nebo Hromadné odeslání.
Rozsah webhooku může zahrnovat celý účet nebo jednotlivé skupiny prostřednictvím rozhraní správce. Rozsahy Uživatel a Zdroj je také možné používat prostřednictvím rozhraní API
Typ dat, která jsou odesílána na adresu URL, je konfigurovatelný a může zahrnovat položky, jako jsou Informace o dohodě, Informace o účastníkovi, Podepsaný dokument atd.
Jakmile je webhook nakonfigurován a uložen, služba Acrobat Sign odešle nový objekt JSON na definovanou adresu URL pokaždé, když dojde k zachycení aktivační události. Pokud nechcete změnit aktivační kritéria události nebo datovou část JSON, není vyžadována žádná průběžná manipulace s webhookem.
Před úspěšnou registrací webhooku služba Acrobat Sign ověří, zda adresa URL webhooku, která je uvedena v žádosti o registraci, skutečně zamýšlí přijímat oznámení, nebo nikoli. Za tímto účelem služba Acrobat Sign při obdržení nového požadavku na registraci webhooku nejprve požádá o ověření adresy URL webhooku. Tato žádost o ověření je odeslána na adresu URL webhooku ve formě požadavku HTTPS GET. Tento požadavek má vlastní hlavičku HTTP X-AdobeSign-ClientId. Hodnota v této hlavičce je nastavena na ID klienta (ID aplikace) aplikace API, která požaduje vytvoření/registraci webhooku. K dosažení úspěšné registrace webhooku musí adresa URL webhooku odpovědět na požadavek o ověření kódem odpovědi 2XX A navíc MUSÍ odeslat zpět stejnou hodnotu ID klienta jedním z následujících dvou způsobů:
Webhook bude úspěšně zaregistrován pouze při úspěšné odpovědi (kódu odpovědi 2XX) a ověření ID klienta buď v hlavičce, nebo v těle odpovědi. Účelem této žádosti o ověření je prokázat, že adresa URL webhooku chce skutečně přijímat oznámení na této adrese URL. Pokud byste omylem zadali nesprávnou adresu URL, adresa URL by neodpověděla správně na požadavek ověření záměru a služba Acrobat Sign by na tuto adresu URL nezasílala žádná oznámení. Kromě toho může adresa URL webhooku také potvrdit, že bude přijímat oznámení pouze prostřednictvím webhooků, které jsou registrovány konkrétní aplikací. To lze provést ověřením ID klienta aplikace předaného v hlavičce X-AdobeSign-ClientId. Pokud adresa URL webhooku nerozpozná toto ID klienta, NESMÍ odpovědět kódem úspěšné odpovědi a služba Acrobat Sign zajistí, aby tato adresa URL nebyla zaregistrována jako webhook.
Ověření volání adresy URL webhooku se provede v následujících situacích:
Služba Acrobat Sign provádí implicitní ověření záměru v každém požadavku na oznámení webhooku, který je odeslán na adresu URL webhooku. Každý požadavek HTTPS na oznámení webhooku proto obsahuje také vlastní hlavičku HTTP s názvem X-AdobeSign-ClientId. Hodnotou této hlavičky je ID klienta (ID aplikace) aplikace, která webhook vytvořila. Oznámení webhooku bude považováno za úspěšně doručené pouze v případě, že bude vrácena úspěšná odpověď (kód odpovědi 2XX) a bude odesláno ID klienta buď v hlavičce HTTP (X-AdobeSign-ClientId), nebo v těle odpovědi JSON pomocí klíče xAdobeSignClientId, přičemž bude shodné s ID klienta z požadavku, jinak se budeme snažit doručit oznámení na adresu URL webhooku až do vyčerpání přípustného počtu opakování.
Jak bylo uvedeno výše pro hlavičku X-AdobeSign-ClientId, která je obsažena v každém požadavku na oznámení ze služby Sign, hodnota této hlavičky (ID klienta) by měla být v odpovědi zopakována jedním ze dvou způsobů:
|
Ukázka kódu v jazyku JavaScript pro načtení ID klienta, jeho ověření a následné vrácení v hlavičce odpovědi |
|---|
|
// Fetch client id var clientid = request.headers['X-ADOBESIGN-CLIENTID'];
//Validate it if (clientid ==="BGBQIIE7H253K6") //Replace 'BGBQIIE7H253K6' with the client id of the application using which the webhook is created { //Return it in response header response.headers['X-AdobeSign-ClientId'] = clientid; response.status = 200; // default value } |
|
Ukázka kódu PHP pro načtení ID klienta, jeho ověření a následné vrácení v hlavičce odpovědi |
|---|
|
<?php // Fetch client id $clientid = $_SERVER['HTTP_X_ADOBESIGN_CLIENTID']; //Validate it if($clientid == "BGBQIIE7H253K6") //Replace 'BGBQIIE7H253K6' with the client id of the application using which the webhook is created { //Return it in response header header("X-AdobeSign-ClientId:$clientid"); header("HTTP/1.1 200 OK"); // default value } ?>
|
|
Ukázka kódu v jazyku JavaScript pro načtení ID klienta, jeho ověření a následné vrácení v těle odpovědi |
|---|
|
// Fetch client id var clientid = request.headers['X-ADOBESIGN-CLIENTID'];
//Validate it if (clientid ==="BGBQIIE7H253K6") //Replace 'BGBQIIE7H253K6' with the client id of the application using which the webhook is created { var responseBody = { "xAdobeSignClientId" : clientid // Return Client Id in the body }; response.headers['Content-Type'] = 'application/json'; response.body = responseBody; response.status = 200; } |
|
Ukázka kódu PHP pro načtení ID klienta, jeho ověření a následné vrácení v těle odpovědi |
|---|
|
<?php // Fetch client id $clientid = $_SERVER['HTTP_X_ADOBESIGN_CLIENTID']; //Validate it if($clientid == "BGBQIIE7H253K6") //Replace 'BGBQIIE7H253K6' with the client id of the application using which the webhook is created { //Return it in response body header("Content-Type: application/json"); $body = array('xAdobeSignClientId' => $clientid); echo json_encode($body); header("HTTP/1.1 200 OK"); // default value } ?> |
|
Ukázka těla odpovědi JSON |
|---|
|
{ "xAdobeSignClientId": "BGBQIIE7H253K6" } |
Budete potřebovat:
Vytvoření funkce Aktivační událost HTTP v jazyku JavaScript:
1. Přihlaste se prostřednictvím účtu Microsoft https://portal.azure.com/
2. Otevřete aplikaci Azure Function zobrazenou na kartě Aplikace funkcí.
Tím otevřete seznam aplikací Azure Function:
3. Vyberte aplikaci, ve které chcete vytvořit tuto novou funkci
4. Klikněte na tlačítko Vytvořit (+) a vytvořte novou funkci Azure
5. Vyberte možnost Webhook + API jako scénář a možnost JavaScript jako jazyk
6. Klikněte na tlačítko Vytvořit tuto funkci
Vytvoří se nová funkce, která dokáže zpracovat příchozí požadavek rozhraní API.
Před úspěšnou registrací webhooku služba Acrobat Sign ověří, zda adresa URL webhooku, která je uvedena v žádosti o registraci, skutečně zamýšlí přijímat oznámení, nebo nikoli. Za tímto účelem služba Acrobat Sign při obdržení nového požadavku na registraci webhooku nejprve požádá o ověření adresy URL webhooku. Tato žádost o ověření je odeslána na adresu URL webhooku ve formě požadavku HTTPS GET s vlastní hlavičkou HTTP X-AdobeSign-ClientId. Hodnota v tomto záhlaví je nastavena na ID klienta aplikace, která požaduje vytvoření/registraci webhooku. K dosažení úspěšné registrace webhooku musí adresa URL webhooku odpovědět na požadavek o ověření kódem odpovědi 2XX A navíc musí odeslat zpět stejnou hodnotu ID klienta jedním z následujících dvou způsobů.
K dispozici jsou dvě možnosti, jak můžete pokračovat:
Předejte X-AdobeSign-ClientId v hlavičce odpovědi. Jedná se o stejnou hlavičku, která byla předána v požadavku, a musí být vrácena v odpovědi.
Nahraďte kód souboru Index.js následujícím kódem:
module.exports = function (context, req) {
var clientId = req.headers['x-adobesign-clientid'];
// Validate that the incoming ClientID is genuine
if (clientId === '123XXX456') {
context.res = {
// status: 200, /* Defaults to 200 */ // any 2XX response is acceptable
body: "Notification Accepted",
headers : {
'x-adobesign-clientid' : req.headers['x-adobesign-clientid']
}
};
}
else {
context.res = {
status: 400,
body: "Opps!! Illegitimate Call identified"
};
}
context.done();
};
Vyzkoušejte chování napodobením požadavku:
1. Klikněte na tlačítko Test v pravém rohu
2. Vytvořte fiktivní požadavek
Hlavičky odpovědí se sice výše nezobrazují, ale můžete je sledovat prostřednictvím napodobování pomocí aplikace Postman, DHC nebo nebo jiné služby.
Předejte ID klienta v těle odpovědi JSON pomocí klíče xAdobeSignClientId, jehož hodnota se shoduje s ID klienta, které bylo zasláno v hlavičce požadavku.
Nahraďte kód souboru Index.js následujícím kódem:
module.exports = function (context, req) {
var clientId = req.headers['x-adobesign-clientid'];
// Validate that the incoming ClientID is genuine
if (clientId === '123XXX456') {
context.res = {
// status: 200, /* Defaults to 200 */ // any 2XX response is acceptable
body: {
'xAdobeSignClientId' : clientId
},
headers : {
'Content-Type' : 'application/json'
}
};
}
else {
context.res = {
status: 400,
body: "Opps!! Illegitimate Call identified"
};
}
context.done();
};
Vyzkoušejte chování napodobením požadavku
1. Klikněte na tlačítko Test v pravém rohu
2. Vytvořte fiktivní požadavek
Všimněte si také, že stejné chování pro ID klienta je očekáváno, když adresa URL webhooku přijme oznámení POST.
Po ověření chování je adresa URL webhooku funkční podle standardů služby Acrobat Sign. Dále můžete aktualizovat vlastní logiku podle svých požadavků.
Získání adresy URL funkce
Zkopírujte adresu URL a použijte ji k vytvoření webhooků ve službě Acrobat Sign.
Chcete-li vytvořit funkci AWS Lambda, přihlaste se do konzoly pro správu AWS a v seznamu služeb vyberte službu AWS Lambda.
Před úspěšnou registrací webhooku služba Acrobat Sign ověří, zda adresa URL webhooku, která je uvedena v žádosti o registraci, skutečně zamýšlí přijímat oznámení, nebo nikoli. Za tímto účelem služba Acrobat Sign při obdržení nového požadavku na registraci webhooku nejprve požádá o ověření adresy URL webhooku. Tato žádost o ověření je odeslána na adresu URL webhooku ve formě požadavku HTTPS GET s vlastní hlavičkou HTTP X-AdobeSign-ClientId. Hodnota v tomto záhlaví je nastavena na ID klienta aplikace, která požaduje vytvoření/registraci webhooku. K dosažení úspěšné registrace webhooku musí adresa URL webhooku odpovědět na požadavek o ověření kódem odpovědi 2XX A navíc musí odeslat zpět stejnou hodnotu ID klienta jedním z následujících dvou způsobů. Všimněte si také, že stejné chování pro ID klienta je očekáváno, když adresa URL webhooku přijme oznámení POST.
Postupujte podle jednoho z těchto dvou případů:
|
Ukázka kódu JS uzlu pro načtení ID klienta, jeho ověření a následné vrácení v hlavičce odpovědi |
|---|
|
exports.handler = function index(event, context, callback) { // Fetch client id var clientid = event.headers['X-AdobeSign-ClientId'];
//Validate it if (clientid =="BGBQIIE7H253K6") //Replace 'BGBQIIE7H253K6' with the client id of the application using which the webhook is created { var response = { statusCode: 200, headers: { "X-AdobeSign-ClientId": clientid } }; callback(null,response); } else { callback("Oops!! illegitimate call"); } } |
Předejte ID klienta v těle odpovědi JSON pomocí klíče xAdobeSignClientId, jehož hodnota se shoduje s ID klienta, které bylo zasláno v hlavičce požadavku.
Fragment kódu
Nahraďte kód souboru Index.js následujícím kódem:
|
Ukázka kódu JS uzlu pro načtení ID klienta, jeho ověření a následné vrácení v hlavičce odpovědi |
|---|
|
exports.handler = function index(event, context, callback) { // Fetch client id var clientid = event.headers['X-AdobeSign-ClientId'];
//Validate it if (clientid =="BGBQIIE7H253K6") //Replace 'BGBQIIE7H253K6' with the client id of the application using which the webhook is created { var responseBody = { xAdobeSignClientId : clientid };
var response = { statusCode: 200, body: JSON.stringify(responseBody) };
callback(null,response); } else { callback("Opps!! illegitimate call"); } } |
Pokud má být tato funkce Lambda veřejně přístupná prostřednictvím metody HTTP, je nutné nakonfigurovat bránu AWS API pomocí naší funkce (vytvořené výše) jako backend pro rozhraní API.
V konzole pro správu AWS vyberte ze seznamu služeb AWS možnost Brána API a poté klikněte na tlačítko Vytvořit rozhraní API
Pokud všechny výše uvedené kroky proběhnou úspěšně, zobrazí se podobná obrazovka, jako je tato:
Dalším krokem je nasazení tohoto rozhraní API, aby bylo připraveno k použití.
Rozhraní API je nyní připraveno k použití a adresu URL pro vyvolání najdete v modrém poli, jak je zobrazeno níže:
Poznamenejte si tuto adresu URL, protože ji budete muset zadat jako adresu URL webhooku v reálném čase.
Je to hotovo. Použijte výše uvedenou adresu URL doplněnou o řetězec „/{nodeJSfunctionName}“ jako adresu URL webhooku v rozhraní API POST /webhooky. Po ověření chování je adresa URL webhooku funkční podle
standardů služby Acrobat Sign. Dále můžete aktualizovat nebo přidat vlastní logiku podle svých požadavků.
Konfigurace webhooku vyžaduje definování pěti prvků, kterými jsou:
Jakmile bude webhook plně definován, klikněte na tlačítko Uložit a nový webhook začne okamžitě reagovat na aktivační události.
Nakonfigurujte adresu URL webhooku tak, aby reagovala na požadavky na ověření webhooku a na oznámení webhooku podle výše vysvětleného ověřovacího protokolu. ID klienta (ID aplikace), které bude odesíláno webhookům vytvořeným z webové aplikace Acrobat Sign, bude – UB7E5BXCXY.
Adresa URL webhooku je server, jenž naslouchá příchozím oznamovacím zprávám HTTPS POST, které jsou aktivovány při výskytu událostí.
Tuto adresu URL potřebujete k přihlášení webhooku k odběru událostí.
Níže jsou uvedeny události, které mohou aktivovat odeslání na adresu URL webhooku, seskupené podle objektu.
Každá událost má šablonu datové části JSON, kterou lze doručit. (Kliknutím na název události zobrazíte detaily příslušné datové části):
Parametry upozornění umožňují přizpůsobit datovou část JSON pouze určitým prvkům události.
Například v případě události Účastník dohody nahrazen můžete chtít pouze informace o dohodě a informace o účastníkovi, zatímco informace o dokumentu můžete chtít vynechat, aby se snížil celkový objem dat pro adresu URL webhooku
Obousměrný protokol SSL, často označovaný jako protokol SSL nebo oboustranný protokol TLS na straně klienta, je režim protokolu SSL, v němž server i klient (webový prohlížeč) předkládají certifikáty pro svou identifikaci.
Správci účtu mohou konfigurovat certifikát na straně klienta na stránce Nastavení zabezpečení.
Služba Acrobat Sign ověřuje certifikáty SSL při doručování datových částí na adresu URL webhooku. Webhooky, které neuspějí při ověřování certifikátu SSL, nedoručí úspěšně datovou část JSON.
K ověření klienta (Acrobat Sign) a naslouchající služby použijte obousměrný protokol SSL, abyste zajistili, že přístup k adrese URL webhooku získá pouze služba Acrobat Sign.
Pokud byl webhook vytvořen partnerskou aplikací, použije webhook k identifikaci při zpětných voláních webhooku klientský certifikát (je-li k dispozici) z účtu partnerské aplikace.
Níže jsou nejčastější otázky týkající procesu ověřování webového serveru a ověřování certifikace klienta.
Během registrace webhooku služba Acrobat Sign ověřuje adresu URL serveru webhooku.
Zákazníci nebudou moci webhook zaregistrovat, pokud nelze ze služby Acrobat Sign dokončit zpětné volání adresy URL webhooku.
Ne.
Zpětné volání adresy URL webhooku může být pouze protokol HTTPS na portu 443.
Služba Acrobat Sign blokuje odchozí datové přenosy HTTPS do všech ostatních portů.
Dobrý způsob, jak ověřit certifikát serveru, je použít nástroj DigiCert® SSL Installation Diagnostics Tool.
Stačí zadat pouze název hostitele, např.: www.digicert.com
K běžným problémům patří:
Náprava: Pro server zpětného volání webhooku použijte certifikát SSL vydaný veřejnou certifikační autoritou.
Náprava: Nainstalujte zprostředkující certifikáty na server zpětného volání webhooku.
Viz webová stránka https://www.digicert.com/kb/ssl-certificate-installation.htm, kde najdete podrobné informace.
Aby bylo možné nastavit obousměrný protokol SSL pro webhook, vyžadujeme aby správce nahrál soubor .p12 (nebo .pfx), který obsahuje pouze soukromý klíč. Soubor je bezpečně uložen v účtu zákazníka a správce má nad ním plnou kontrolu a může jej kdykoli odebrat.
V konfiguraci obousměrného webhooku je služba Acrobat Sign volající/klient a potřebuje soukromý klíč jako důkaz, že volání pochází ze služby Acrobat Sign jménem účtu zákazníka.
Ověření, že je povolený obousměrný protokol SSL
Na serveru zpětného volání webhooku musí být povolený obousměrný protokol SSL.
Pomocí libovolného webového prohlížeče se připojte k adrese URL zpětného volání webhooku. Měla by se zobrazit zpráva:
400 Špatný požadavek Nebyl odeslán požadovaný certifikát SSL
To znamená, že server očekává od klienta zaslání klientských certifikátů (tj. na serveru je povolený obousměrný protokol SSL).
Pokud se vám výše uvedená zpráva nezobrazí, pak obousměrný protokol SSL povolený není.
K vyžádání adresy URL zpětného volání webhooku můžete použít aplikaci Postman a provést požadavek POST. Výsledek by měl být podobný.
Ověřovací údaje klienta může tvořit buď certifikát s vlastním podpisem, nebo certifikát vydaný certifikační autoritou. Musí však splňovat minimálně tyto přípony X.509 v3:
|
přípona X.509 v3 |
Hodnota |
|---|---|
|
ExtendedKeyUsage |
clientAuth (OID: 1.3.6.1.5.5.7.3.2) |
|
KeyUsage |
digitalSignature |
Klientský certifikát musí být soubor PKCS12 s příponou .p12 nebo .pfx, a musí obsahovat jak klientský certifikát (aby mohl server ověřit identitu klienta), tak klientův soukromý klíč (aby mohl klient digitálně podepisovat zprávy pro server pro účely ověření během procesu SSL handshake).
Použijte příkaz openssl k ověření souboru p12 (pfx):
openssl pkcs12 -info -in outfile.p12
Mělo by být vyžádáno heslo pro soukromý klíč. Výstup by měl obsahovat oba certifikáty i šifrovaný soukromý klíč, jako je například:
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-----
Certifikáty by měly obsahovat přinejmenším certifikát koncového subjektu a zprostředkující certifikáty. V ideálním případě budou zahrnovat také certifikát kořenové certifikační autority.
Ujistěte se, že je soubor .p12 nebo .pfx chráněn heslem.
Vytvořte klientský certifikát s vlastním podpisem (volitelné)
Klientské certifikáty mohou být vydané certifikační autoritou nebo certifikáty s vlastním podpisem, podle vašich potřeb.
Chcete-li generovat klientský certifikát s vlastním podpisem, použijte následující příkaz openssl :
openssl req -newkey rsa:4096 -keyform PEM -keyout ca.key -x509 -days 3650 -outform PEM -out ca.cer
Výsledné soubory uchovávejte v tajnosti, protože se jedná o vaše certifikáty certifikační autority (CA) s vlastním podpisem.
V dalším kroku vygenerujte klientský soubor .p12:
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
Jakmile je konfigurace hotova, odešlete požadavek POST na adresu URL zpětného volání webhooku.
Měli byste dostat odpověď 200.
Proč služba Acrobat Sign odmítá můj soubor PFX i po ověření pomocí aplikace Postman?
Pokud jste dodrželi výše uvedený proces ověření souboru pfx a služba Acrobat Sign přesto odmítá soubor pfx, byl pravděpodobně generován pomocí nástroje Microsoft, který může vytvořit nestandardní soubor PKCS12.
V takovém případě použijte níže uvedené příkazy openssl k extrahování certifikátů a soukromého klíče ze souboru pfx a poté vygenerujte správně naformátovaný soubor PKCS12:
// Extrahujte certifikáty a soukromý klíč ze souboru pfx 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 // Vytvořte nový soubor PKCS12 openssl pkcs12 -export -inkey clientcert.key -in clientcert.crt -out clientcert.pfx
Přístup k funkci Webhooky je ve výchozím nastavení povolen pro účty s podnikovým plánem.
Správci na úrovni skupiny mohou vytvářet a ovládat webhooky, které fungují pouze v rámci jejich skupiny.
Přístup ke stránce Webhooky získáte na levé liště nabídky Správce: Účet > Webhooky
První webhook je vytvořen ve stavu Aktivní.
Na stránce Webhooky ve službě Acrobat Sign se při výchozím nastavení zobrazí aktivní webhooky.
Aktivace neaktivního webhooku:
Aktivní webhook začne odesílat data na cílovou adresu URL, jakmile dojde k aktivaci další události.
Deaktivace webhooku vyžaduje, abyste provedli pouze následující kroky:
Webhooky lze kdykoli upravit a uložit, přičemž po uložení nové konfigurace se změny projeví okamžitě.
Upravit lze pouze položky Události a Parametry oznámení.
Pokud je potřebné změnit nastavení položek Název, Rozsah a Adresa URL, bude nutné vytvořit nový webhook.
Úprava parametrů webhooku:
Webhook lze kdykoli odstranit.
Odstraněním webhooku dojde k jeho zničení v systému, takže odstraněný webhook nelze obnovit.
Webhooky není nutné nejprve deaktivovat.
Odstranění webhooku:
Pokud například potřebujete zpracovat a následně uložit podepsané dokumenty. Chcete-li mít jistotu, že vždy dokážete odpovědět do deseti sekund, měli byste práci vždy provádět v samostatném vlákně nebo asynchronně pomocí fronty.
1. Jaká data chcete vracet v datové části?
2. Kdo bude přistupovat k těmto informacím?
3. Jaká rozhodnutí nebo hlášení budou generována?
Přestože je zcela přijatelné při vytváření webhooku pouze vybrat možnost Podepsaný dokument dohody, můžete zvážit použití rozhraní API služby Acrobat Sign k načtení dokumentů při přijetí aktivační události (jako je stav dohody Dokončeno).
Velikost datové části JSON je omezena na 10 MB.
Pokud událost vygeneruje větší datovou část, webhook bude aktivován, ale atributy podmíněného parametru, pokud se v požadavku vyskytují, budou odebrány, aby se zmenšila velikost datové části.
Pokud k tomu dojde, bude v odpovědi vrácen objekt „ConditionalParametersTrimmed“, který klienta upozorní na odebrání informací conditionalParameters .
„conditionalParametersTrimmed“ je objekt typu pole obsahující informace o oříznutých klíčích.
Zkrácení bude provedeno v následujícím pořadí:
Zkráceny budou nejprve podepsané dokumenty, poté informace o účastníkovi, informace o dokumentu, a nakonec podrobné informace.
K tomu může dojít například při události dokončení dohody, pokud obsahuje také podepsaný dokument (v kódu base 64), nebo u dohody s více poli formuláře
Webhooky služby Acrobat Sign poskytují oznámení, která se vztahují na všechny účastníky dohody, pokud je webhook nakonfigurován pro daného uživatele, jeho skupinu nebo účet.
Události dohody jsou zpracovávány tak, že pokud je pro příslušného účastníka dané události nakonfigurován webhook, je oznámení odesláno na adresu URL tohoto webhooku. Jinými slovy, webhooky jsou aktivovány pro události ve všech platných dohodách, včetně těch, které nejsou součástí skupiny nebo účtu, ve kterém je webhook nakonfigurován.
Oznámení jsou doručována pouze pro ty události, do kterých je účastník zapojen. Například odesílatel dohody obdrží téměř každé oznámení, zatímco příjemci budou dostávat oznámení pouze od začátku své účasti na dohodě a pouze pro události, kterých se účastní.
Oznámení webhooku se řídí současným modelem ověřování a viditelnosti samotné služby Acrobat Sign, takže uživatelé budou mít přístup k dohodě až po zahájení své účasti na této dohodě.
Odesílatel odešle dohodu k podpisu třem podepisujícím.
Odesílatel odešle dohodu: webhook X aktivuje události „Dohoda vytvořena“ a „Dohoda odeslána“, zatímco Webhook Y aktivuje událost „Dohoda odeslána“.
Podepisující 1 podepíše: webhook X aktivuje události „Účastník dohody dokončil“ a „Dohoda odeslána“, webhook Y aktivuje událost „Účastník dohody dokončil“ a webhook Z aktivuje událost „Dohoda odeslána“.
Podepisující 2 podepíše: webhook X aktivuje události „Účastník dohody dokončil“ a „Dohoda odeslána“, zatímco webhook Z odešle oznámení pro „Účastník dohody dokončil“.
Podepisující 3 podepíše: webhook X aktivuje události „Účastník dohody dokončil“ a „Pracovní postup dohody dokončen“, webhook Y aktivuje událost „Pracovní postup dohody dokončen“ a webhook Z aktivuje událost „Pracovní postup dohody dokončen“.
Pokud je cílová adresa URL webhooku z jakéhokoli důvodu nefunkční, služba Acrobat Sign zařadí objekt JSON do fronty a opakuje pokus o odeslání v postupném cyklu po dobu 72 hodin.
Nedoručené události zůstanou ve frontě opětovných pokusů a v následujících 72 hodinách bude vynaloženo maximální úsilí na doručení oznámení v pořadí, v jakém k nim došlo.
Strategie opakování doručení upozornění spočívá ve zdvojnásobování prodlevy mezi jednotlivými pokusy. Začíná se minutovým intervalem, který se postupně zvyšuje na 12 hodin, ve výsledku tedy 15 opakování za 72 hodin.
Pokud přijímač webhooku neodpoví do 72 hodin a v posledních sedmi dnech nedošlo k žádnému úspěšnému doručení oznámení, bude webhook deaktivován. Na tuto adresu URL nebudou zasílána žádná oznámení, dokud nebude webhook znovu aktivován.
Všechna oznámení v době mezi deaktivací webhooku a jeho následnou opětovnou aktivací budou ztracena.
Přihlaste se ke svému účtu.