Passer à la navigation

Signature XAdES

Afficher en Markdown

Exemple de requête réalisant une signature XAdES sur un document

Création de la requête provisionnée

L’application demandeuse initie une demande de signature :

POST /api/requests HTTP/1.1
Authorization: ApiKey 5xVpCQPEYdncwHXwCDf5sqyfN9GPrio5
Content-Type: application/json
Content-Length: 142
{
"params" : {
"signerEmail" : "john.doe@my-idp.com"
},
"profiles" : {
"default" : {
"signatureType" : "xades"
}
}
}

Un objet demande est renvoyé :

{
"clientId" : "01",
"created" : 1787667780884,
"id" : "req_01_7rt8ZAjrA5eGHCvSS9jrrsfK",
"params" : {
"bypassViewer" : "false",
"signerEmail" : "john.doe@my-idp.com"
},
"profiles" : {
"default" : {
"forceScrollDocument" : "false",
"signatureType" : "xades"
}
},
"status" : "created",
"updated" : 1787667780884
}

Téléversement du document à signer

L’application demandeuse téléverse le contenu du document (un message ISO 20022 au format XML) :

POST /api/requests/req_01_7rt8ZAjrA5eGHCvSS9jrrsfK/profiles/default/documents HTTP/1.1
Authorization: ApiKey 5xVpCQPEYdncwHXwCDf5sqyfN9GPrio5
Content-Type: application/xml
<?xml version="1.0" encoding="UTF-8"?><Document xmlns="urn:iso:std:iso:20022:tech:xsd:acmt.007.001.01">
<AcctOpngReq>
<Refs>
<MsgId>
<Id>ABC/090928/CCT001</Id>
<CreDtTm>2010-09-28T14:07:00</CreDtTm>
</MsgId>
...
</Refs>
<Acct>...</Acct>
<Org>
<FullLglNm>ABC Corporation</FullLglNm>
...
</Org>
<DgtlSgntr>
<Pty><Nm>Carlo</Nm></Pty>
<Sgntr/>
</DgtlSgntr>
</AcctOpngReq>
</Document>

Un objet document est renvoyé :

{
"created" : 1787667780905,
"displayedParts" : [ {
"contentType" : "application/xml",
"filename" : "Document",
"hash" : "DQEgUi1bh9sQS8t0j1B6mo7oCWJ4idcv2MbhyJX9LKw=",
"name" : "data",
"profileId" : "default",
"size" : 2759
} ],
"id" : "doc_EAZ4upQccujH3HnHsttfiwNt",
"parts" : [ {
"contentType" : "application/xml",
"filename" : "Document",
"hash" : "DQEgUi1bh9sQS8t0j1B6mo7oCWJ4idcv2MbhyJX9LKw=",
"name" : "data",
"profileId" : "default",
"size" : 2759
} ],
"profileId" : "default",
"requestId" : "req_01_7rt8ZAjrA5eGHCvSS9jrrsfK",
"workflowIdx" : 0
}

Lancement de la requête provisionnée

L’application demandeuse passe le statut de la demande de signature à started :

POST /api/requests/req_01_7rt8ZAjrA5eGHCvSS9jrrsfK/start HTTP/1.1
Authorization: ApiKey 5xVpCQPEYdncwHXwCDf5sqyfN9GPrio5

L’URL de la page de consentement est renvoyée :

{
"consentPageUrl" : "https://evidence-manager.lex-persona.com/?requestToken=eyJhbGciOiJIUzI1NiJ9.eyJjbGllbnRJZCI6IjAxIiwiY29uc2VudFZlcnNpb24iOiJWMiIsInNhbHQiOiJtcFlXYTlRZCIsInJtVmVyc2...#requestId=req_01_N3dyiSG5QVYoP8ugnE7zNmKC"
}

Récupération des documents signés et des preuves

L’application demandeuse liste les documents signés :

GET /api/requests/req_01_7rt8ZAjrA5eGHCvSS9jrrsfK/signedDocuments HTTP/1.1
Authorization: ApiKey 5xVpCQPEYdncwHXwCDf5sqyfN9GPrio5

Une liste d’objets document est renvoyée (le document signé, lié au document d’origine par linkedDocumentId) :

[ {
"created" : 1789468061200,
"displayedParts" : [ {
"contentType" : "text/xml",
"filename" : "Document",
"hash" : "SqvVZ7g8PSYxWgkMqBZm9Gp292nEekC++RKyy1LR5z4=",
"isOriginal" : false,
"name" : "data",
"profileId" : "default",
"size" : 29443
} ],
"id" : "doc_2eaQhAQ1pLJaGkPzty2fakdE",
"linkedDocumentId" : "doc_KYv5z7y6tioLHv8UXmqg3S8z",
"parts" : [ {
"contentType" : "text/xml",
"filename" : "Document",
"hash" : "SqvVZ7g8PSYxWgkMqBZm9Gp292nEekC++RKyy1LR5z4=",
"isOriginal" : false,
"name" : "data",
"profileId" : "default",
"size" : 29443
} ],
"profileId" : "default",
"requestId" : "req_01_N3dyiSG5QVYoP8ugnE7zNmKC",
"workflowIdx" : 0
} ]

L’application demandeuse télécharge le document signé, qui contient le message d’origine avec, cette fois, la signature XAdES insérée en tant qu’élément enveloppant ds:Signature :

GET /api/requests/req_01_7rt8ZAjrA5eGHCvSS9jrrsfK/signedDocuments/doc_LwYSnSz6pS9q5Qhn5B1kMunS HTTP/1.1
Authorization: ApiKey 5xVpCQPEYdncwHXwCDf5sqyfN9GPrio5
<?xml version="1.0" encoding="UTF-8"?><Document xmlns="urn:iso:std:iso:20022:tech:xsd:acmt.007.001.01">
<AcctOpngReq>
<Refs>
<MsgId>
<Id>ABC/090928/CCT001</Id>
<CreDtTm>2010-09-28T14:07:00</CreDtTm>
</MsgId>
...
</Refs>
<Acct>...</Acct>
<Org>
<FullLglNm>ABC Corporation</FullLglNm>
...
</Org>
<DgtlSgntr>
<Pty><Nm>Carlo</Nm></Pty>
<Sgntr/>
</DgtlSgntr>
</AcctOpngReq>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="id-19d717adf634fac53ef0596e15f1b57a">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
<ds:Reference Id="r-id-19d717adf634fac53ef0596e15f1b57a-1" URI="">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2002/06/xmldsig-filter2">
<dsig-filter2:XPath xmlns:dsig-filter2="http://www.w3.org/2002/06/xmldsig-filter2" Filter="subtract">/descendant::ds:Signature</dsig-filter2:XPath>
</ds:Transform>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
<ds:DigestValue>Vg7Q58yJ5bvV5D8TwGXmwGCbwaFrabQMmWrbwDaBe4Y=</ds:DigestValue>
</ds:Reference>
<ds:Reference Type="http://uri.etsi.org/01903#SignedProperties" URI="#xades-id-19d717adf634fac53ef0596e15f1b57a">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
<ds:DigestValue>M9iSrzYJoTLX9a/6XtXfruI2YHCwHSHj9W5g/EZ7I4E=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue Id="value-id-19d717adf634fac53ef0596e15f1b57a">YDfFoSGEZ6msZDb7bMjN5M6u72IilkFPw7HghiipPFX6eT3jYPa5SMFo9Q9S+f4UlL+5HoV16ASUFokOWkoRqss/HcVTGqAYU7JjcqWXc4Nomn9M+fUHUwCf...</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>MIIGVjCCBD6gAwIBAgIIJ/TRdsPRnnUwDQYJKoZIhvcNAQELBQAwgYMxKzApBgNVBAMMIlN1bm55c3RhbXAgTGVnYWwgUGVyc29ucyBDQSAoVEVTVCkxFzAV...</ds:X509Certificate>
<ds:X509Certificate>MIIHADCCBOigAwIBAgIIXZTNpYsvZKAwDQYJKoZIhvcNAQENBQAwdjEeMBwGA1UEAwwVU3VubnlzdGFtcCBSb290IENBIEcyMRcwFQYDVQQLDA4wMDAyIDQ4...</ds:X509Certificate>
<ds:X509Certificate>MIIF5DCCA8ygAwIBAgIIds3Y5/Vg0IYwDQYJKoZIhvcNAQELBQAwdjEeMBwGA1UEAwwVU3VubnlzdGFtcCBSb290IENBIEcyMRcwFQYDVQQLDA4wMDAyIDQ4...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<ds:Object>
<xades:QualifyingProperties xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" Target="#id-19d717adf634fac53ef0596e15f1b57a">
<xades:SignedProperties Id="xades-id-19d717adf634fac53ef0596e15f1b57a">
<xades:SignedSignatureProperties>
<xades:SigningTime>2026-09-15T10:27:40Z</xades:SigningTime>
<xades:SigningCertificateV2>
<xades:Cert>
<xades:CertDigest>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/>
<ds:DigestValue>dvKAtWkBOHkI5CyXkIrL6iuBpkAbHJeVuSkDnY9BTXFm/RJGLohuM1JHxkYR80ctoo7O+8abBuFWmxOHB1/PWw==</ds:DigestValue>
</xades:CertDigest>
<xades:IssuerSerialV2>MIGWMIGJpIGGMIGDMSswKQYDVQQDDCJTdW5ueXN0YW1wIExlZ2FsIFBlcnNvbnMgQ0EgKFRFU1QpMRcwFQYDVQQLDA4wMDAyIDQ4MDYyMjI1NzEYMBYGA1UE...</xades:IssuerSerialV2>
</xades:Cert>
</xades:SigningCertificateV2>
<xades:SignerRoleV2>
<xades:ClaimedRoles>
<xades:ClaimedRole>Finance</xades:ClaimedRole>
</xades:ClaimedRoles>
</xades:SignerRoleV2>
</xades:SignedSignatureProperties>
<xades:SignedDataObjectProperties>
<xades:DataObjectFormat ObjectReference="#r-id-19d717adf634fac53ef0596e15f1b57a-1">
<xades:MimeType>application/octet-stream</xades:MimeType>
</xades:DataObjectFormat>
</xades:SignedDataObjectProperties>
</xades:SignedProperties>
<xades:UnsignedProperties>
<xades:UnsignedSignatureProperties>
<xades:SignatureTimeStamp Id="ts-id-93397bae04664df1ec3ef2ba1302bfe64fb91d6c">
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<xades:EncapsulatedTimeStamp Id="ets-id-93397bae04664df1ec3ef2ba1302bfe64fb91d6c">MIITiwYJKoZIhvcNAQcCoIITfDCCE3gCAQMxDTALBglghkgBZQMEAgMwgZoGCyqGSIb3DQEJEAEEoIGKBIGHMIGEAgEBBgorBgEEAYGwDgMBME8wCwYJYIZI...</xades:EncapsulatedTimeStamp>
</xades:SignatureTimeStamp>
<xades:RevocationValues>
<xades:CRLValues>
<xades:EncapsulatedCRLValue>MIIC8DCB2QIBATANBgkqhkiG9w0BAQsFADB2MR4wHAYDVQQDDBVTdW5ueXN0YW1wIFJvb3QgQ0EgRzIxFzAVBgNVBAsMDjAwMDIgNDgwNjIyMjU3MRgwFgYD...</xades:EncapsulatedCRLValue>
<xades:EncapsulatedCRLValue>MIIC/zCB6AIBATANBgkqhkiG9w0BAQ0FADCBgzErMCkGA1UEAwwiU3VubnlzdGFtcCBMZWdhbCBQZXJzb25zIENBIChURVNUKTEXMBUGA1UECwwOMDAwMiA0...</xades:EncapsulatedCRLValue>
</xades:CRLValues>
</xades:RevocationValues>
<xades141:TimeStampValidationData xmlns:xades141="http://uri.etsi.org/01903/v1.4.1#" Id="tsvd-id-e8e6829ff2fc5788daac976f0eca8847f36b406b">
<xades:CertificateValues>
<xades:EncapsulatedX509Certificate>MIIFFjCCAv6gAwIBAgIIbsY5xAkSkX4wDQYJKoZIhvcNAQELBQAwYjEgMB4GA1UEAwwXU3VubnlzdGFtcCBSb290IENBIFRFU1QxFzAVBgNVBAsMDjAwMDIg...</xades:EncapsulatedX509Certificate>
<xades:EncapsulatedX509Certificate>MIIF7jCCA9agAwIBAgIIP8OEn2s6EfQwDQYJKoZIhvcNAQELBQAwYjEgMB4GA1UEAwwXU3VubnlzdGFtcCBSb290IENBIFRFU1QxFzAVBgNVBAsMDjAwMDIg...</xades:EncapsulatedX509Certificate>
<xades:EncapsulatedX509Certificate>MIIEgDCCA2igAwIBAgIIKLkhbHKSuWowDQYJKoZIhvcNAQELBQAwdzEqMCgGA1UEAwwhU3VubnlzdGFtcCBUcnVzdCBTZXJ2aWNlcyBURVNUIENBMRcwFQYD...</xades:EncapsulatedX509Certificate>
</xades:CertificateValues>
<xades:RevocationValues>
<xades:CRLValues>
<xades:EncapsulatedCRLValue>MIIC3TCBxgIBATANBgkqhkiG9w0BAQsFADBiMSAwHgYDVQQDDBdTdW5ueXN0YW1wIFJvb3QgQ0EgVEVTVDEXMBUGA1UECwwOMDAwMiA0ODA2MjIyNTcxGDAW...</xades:EncapsulatedCRLValue>
<xades:EncapsulatedCRLValue>MIIB8jCB2wIBATANBgkqhkiG9w0BAQsFADB3MSowKAYDVQQDDCFTdW5ueXN0YW1wIFRydXN0IFNlcnZpY2VzIFRFU1QgQ0ExFzAVBgNVBAsMDjAwMDIgNDgw...</xades:EncapsulatedCRLValue>
</xades:CRLValues>
</xades:RevocationValues>
</xades141:TimeStampValidationData>
</xades:UnsignedSignatureProperties>
</xades:UnsignedProperties>
</xades:QualifyingProperties>
</ds:Object>
</ds:Signature>
</Document>