Re: Duda de Como Autentificarse en los WebService de Descarga de los XML
Publicado: Mar Sep 25, 2018 2:06 pm
andresmaya escribió:Buen día, tampoco he podido lograrme autenticar pero tengo un código que ya genera la parte del WSA (Addressing) y WSSE (Security).
Lo que no tengo muy claro es cual es el XML que se debe firmar, es decir, el string inicial, al parecer hay que hacer una llamada al método Autentica sin WSDL sino con el action solamente y luego ese XML de SOAP firmarlo, he intentato eso pero sin éxito.
Les comparto mis solicitudes como las genera mi script donde el SIGNED REQUEST es muy similar al que pone el SAT en su manual:
ORIGNAL REQUEST: (es el que genero al inicio para luego este firmarlo)SIGNED REQUEST: (incluye el primer request firmado mediante certificados x.509 y con addressing)Código: Seleccionar todo
<?xml version="1.0" encoding="UTF-8"?> <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <s:Body> <Autentica/> </s:Body> </s:Envelope>
NOTA: he truncado/resumido el Signature y BinaryToken para que sea mas digerible leerlo.Código: Seleccionar todo
<?xml version="1.0" encoding="UTF-8"?> <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <s:Header> <a:Action>https://cfdidescargamasivasolicitud.clouda.sat.gob.mx/Autenticacion/#Autentica</a:Action> <a:To>https://cfdidescargamasivasolicitud.clouda.sat.gob.mx/Autenticacion/Autenticacion.svc</a:To> <a:MessageID>uuid:e0461b44-3654-712a-ab90-38bbacbfdb02</a:MessageID> <o:Security xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" s:mustUnderstand="1"> <o:BinarySecurityToken xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" u:Id="pfx88bca128-1598-2383-da18-3263f3841890" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3">MIIGez...==</o:BinarySecurityToken> <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:SignedInfo> <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/> <ds:Reference URI="#pfxffb919d0-65f0-959e-54c5-d0b2128ef894"> <ds:Transforms> <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </ds:Transforms> <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <ds:DigestValue>zlT6N9URycOqyKrI//9qx307jiQ=</ds:DigestValue> </ds:Reference> <ds:Reference URI="#pfx767dca7d-7335-5e0f-af25-2c3693ed93a4"> <ds:Transforms> <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </ds:Transforms> <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <ds:DigestValue>7G1OMrRL2NW8TXliY96gQVVGDmk=</ds:DigestValue> </ds:Reference> </ds:SignedInfo> <ds:SignatureValue>UYmrDgEytnjd6Y...szew==</ds:SignatureValue> <ds:KeyInfo> <o:SecurityTokenReference> <o:Reference ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" URI="#pfx88bca128-1598-2383-da18-3263f3841890"/> </o:SecurityTokenReference> </ds:KeyInfo> </ds:Signature> <u:Timestamp xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" u:Id="pfxffb919d0-65f0-959e-54c5-d0b2128ef894"> <u:Created>2018-08-07T21:04:43Z</u:Created> <u:Expires>2018-08-07T21:09:43Z</u:Expires> </u:Timestamp> </o:Security> </s:Header> <s:Body xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" u:Id="pfx767dca7d-7335-5e0f-af25-2c3693ed93a4"> <Autentica/> </s:Body> </s:Envelope>
Halcon Divino, también me encuentro en MTY si te interesa podríamos trabajar en conjunto esto o reunirnos para agilizarlo si te parece bien.
Hasta donde alcanzo a entender, usas SOAP para hacer tu petición, no usas URL de WSDL puesto que no tiene Definición.
Pero si usas "Action", Que Direccion usas como Action?, esta: https://cfdidescargamasivasolicitud.clo ... /Autentica
Y le inyectas por asi decir, el XML que describiste no?
Y el Certificado me imagino que lo metes en el socket y allí especificas la contraseña.
O usas esta URL, como Action: https://cfdidescargamasivasolicitud.clo ... enticacion