Bonjour la Communauté,
Je sèche sur la consommation d'un Webservice qui nécessite des signatures et je poste pour voir si une âme charitable (et aguerrie) peut m'orienter vers des pistes.
Toute la doc avec exemple et wdsl à cette adresse : https://www.socialsecurity.be/site_f...en_service.htm
NB : compte-tenu de la complexité et de l'expertise nécessaire pour consommer ce Webservice, je n'exclus pas de devoir sous-traiter le développement.
Toute proposition de services en ce sens peut m'être faite en MP.
Le Webservice semble correctement documenté et respecter certains standards.
J'ai suivi la procédure de vérification avec SoapUI 5.5, conformément à la doc du Webservice (https://www.socialsecurity.be/site_f...gistration.htm) :tout fonctionne parfaitement.
Voici le xml contenu dans la requête de SoapUi (pour la lisibilité du code, certains éléments ont été remplacés par $1, $2, $n) :
Mon souci réside dans les balises
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header> <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <wsse:BinarySecurityToken EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" wsu:Id="X509-E841846BFC65FFF2D616604853311272">$1</wsse:BinarySecurityToken> <wsu:Timestamp wsu:Id="TS-E841846BFC65FFF2D616604853311091"> <wsu:Created>$2</wsu:Created> <wsu:Expires>$3</wsu:Expires> </wsu:Timestamp> <ds:Signature Id="SIG-E841846BFC65FFF2D616604853312316" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:SignedInfo> <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> <ec:InclusiveNamespaces PrefixList="soap" xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"/> </ds:CanonicalizationMethod> <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/> <ds:Reference URI="#TS-E841846BFC65FFF2D616604853311091"> <ds:Transforms> <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> <ec:InclusiveNamespaces PrefixList="wsse soap" xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"/> </ds:Transform> </ds:Transforms> <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <ds:DigestValue>$4</ds:DigestValue> </ds:Reference> <ds:Reference URI="#id-E841846BFC65FFF2D616604853312085"> <ds:Transforms> <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> <ec:InclusiveNamespaces PrefixList="" xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"/> </ds:Transform> </ds:Transforms> <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <ds:DigestValue>$5=</ds:DigestValue> </ds:Reference> <ds:Reference URI="#X509-E841846BFC65FFF2D616604853311272"> <ds:Transforms> <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> <ec:InclusiveNamespaces PrefixList="" xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"/> </ds:Transform> </ds:Transforms> <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <ds:DigestValue>$6=</ds:DigestValue> </ds:Reference> </ds:SignedInfo> <ds:SignatureValue>$n</ds:SignatureValue> <ds:KeyInfo Id="KI-E841846BFC65FFF2D616604853312003"> <wsse:SecurityTokenReference wsu:Id="STR-E841846BFC65FFF2D616604853312034"> <wsse:Reference URI="#X509-E841846BFC65FFF2D616604853311272" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/> </wsse:SecurityTokenReference> </ds:KeyInfo> </ds:Signature> </wsse:Security> </soap:Header> <soap:Body wsu:Id="id-E841846BFC65FFF2D616604853312085" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <wst:RequestSecurityToken Context="abc" xmlns:wst="http://docs.oasis-open.org/ws-sx/ws-trust/200512"> <wst:TokenType>http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1</wst:TokenType> <wst:RequestType>http://docs.oasis-open.org/ws-sx/ws-trust/200512/Issue</wst:RequestType> <wst:Claims Dialect="http://schemas.xmlsoap.org/ws/2006/12/authorization/authclaims"> <auth:ClaimType Uri="urn:be:smals:expeditor:number" xmlns:auth="http://schemas.xmlsoap.org/ws/2006/12/authorization"> <auth:Value>112059</auth:Value> </auth:ClaimType> </wst:Claims> </wst:RequestSecurityToken> </soap:Body> </soap:Envelope>;
Code : Sélectionner tout - Visualiser dans une fenêtre à part wsse:security
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part wssu:timestamp
Ces balises sont générées par les paramètres de sécurité encodés dans SoapUI :
Code : Sélectionner tout - Visualiser dans une fenêtre à part ds:Signature
1/wssu:timestamp
Pièce jointe 623814
2/ ds:Signature
Pièce jointe 623815
Notez, que le wsse:security semble ajouté sans paramètres.
Donc, comment fais-je pour construire cette requête dans Windev ?
J'entrevois des éléments de réponses :
1/ SoapAjouteSignatureXML (https://doc.pcsoft.fr/fr-FR/?1000020...teSignatureXML) fait expressément référence à la balise ds:Signature
Mais cette fonction s'applique à une variable wsRequête (https://doc.pcsoft.fr/fr-FR/?1000020..._type_variable) : la doc est très laconique sur cette variable et la manière dont elle doit être utilisée.
Enfin, je ne sais que faire du paramètre <Emplacement de la signature> de la fonction SoapAjouteSignatureXML : je ne situe pas de quelle entité xsd il est fait état dans la doc.
2/ Je pense que je vais également devoir utiliser une variable xmlSignature (https://doc.pcsoft.fr/fr-FR/index.awp?1000020736)
3/ Et enfin utiliser une variable xmlSignatureRéférence (https://doc.pcsoft.fr/fr-FR/?1000020..._type_variable)
Bref, je pédale sec
Grand merci à ceux qui prendront la peine de se pencher sur mon problème.
Belle journée (ou soirée, ou nuit)
Partager