Duda de Como Autentificarse en los WebService de Descarga de los XML

Todo lo que no cabe en los demas foros........
Avatar de Usuario
Dado
Mensajes: 15824
Registrado: Mar Jul 06, 2010 8:56 pm

Re: Duda de Como Autentificarse en los WebService de Descarga de los XML

Mensajepor Dado » Jue Sep 27, 2018 1:56 pm

Si lo debes poner, es un identificar que sirve para relacionar la informacion del sello con el certificado digital, puedes usar el mismo que se muestra

Algunos mensajes atras explique con mas detalle para que sirve ese identificador
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

estebanchambas
Mensajes: 51
Registrado: Mié Ago 08, 2018 2:30 pm

Re: Duda de Como Autentificarse en los WebService de Descarga de los XML

Mensajepor estebanchambas » Jue Sep 27, 2018 2:06 pm

DADO escribió:Si lo debes poner, es un identificar que sirve para relacionar la informacion del sello con el certificado digital, puedes usar el mismo que se muestra

Algunos mensajes atras explique con mas detalle para que sirve ese identificador

Gracias Dado, es como un ticket, ok usare el mismo

estebanchambas
Mensajes: 51
Registrado: Mié Ago 08, 2018 2:30 pm

Re: Duda de Como Autentificarse en los WebService de Descarga de los XML

Mensajepor estebanchambas » Jue Sep 27, 2018 2:37 pm

Hola chicos.

Ya voy en la parte donde hay que Encriptar en Base64 el Certificado, me entró la curiosidad para ver que parte del Certificado es la que hay que encriptar
para no andar pregunte y pregunte y le metí al Request que publicó @DADO, un Base64Decode para ver que parte del certificado es la que uso

Y alcanzó a ver entre una serie de símbolos raros, se alcanza a leer el "SubjectDN" del Certificado, esta es la parte que se le debe de sacar al Certificado o también otra parte? Saludos

Avatar de Usuario
Dado
Mensajes: 15824
Registrado: Mar Jul 06, 2010 8:56 pm

Re: Duda de Como Autentificarse en los WebService de Descarga de los XML

Mensajepor Dado » Jue Sep 27, 2018 2:45 pm

Se codifica todo el archivo completo, tomas el archivo 0000030300030.cer y lo codificas en base 64, asi, completito

Estas usando OpenSSL ? porque con esa herramienta puedes generarlo muy facilmente

O busca en tu lenguaje de programacion algo asi como "File to Base64 convert"
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

estebanchambas
Mensajes: 51
Registrado: Mié Ago 08, 2018 2:30 pm

Re: Duda de Como Autentificarse en los WebService de Descarga de los XML

Mensajepor estebanchambas » Jue Sep 27, 2018 3:59 pm

DADO escribió:Se codifica todo el archivo completo, tomas el archivo 0000030300030.cer y lo codificas en base 64, asi, completito

Estas usando OpenSSL ? porque con esa herramienta puedes generarlo muy facilmente

O busca en tu lenguaje de programacion algo asi como "File to Base64 convert"


Viento, espero haberlo hecho correctamente.
Hice lo siguiente, Meti un TextInputStream al cual le volqué el Archivo CER, para leer todo el contenido, Luego le pasé un EncodeBase64 para codificar dicho texto y ya lo metí en mi cadena.

Ahora Voy en la Sección de Digest Value, veo que también ahí debe de ir algo codificado en Base64, pero que es?
Saludos

estebanchambas
Mensajes: 51
Registrado: Mié Ago 08, 2018 2:30 pm

Re: Duda de Como Autentificarse en los WebService de Descarga de los XML

Mensajepor estebanchambas » Jue Sep 27, 2018 4:05 pm

DADO escribió:Segun el esquema de firmado debes definir que nodo estas firmando, y lo debes identificar con "algo", lo que sea, puede ser un "_0" (guion bajo-cero) o con un uuid o lo que sea

Entonces, en el nodo BinarySecurityToken solo le estan poniendo un nombre, un ID (que por alguna razon escogieron un nombre muy complicado !!)

Y luego en la firma digital, hacen referencia a ese nombre, ya que hay que "decirle" donde esta el certificado que se necesita para validar la firma

Entonces, en el nodo SecurityToken.Reference.Value indicas que el security token esta en el nodo identificado con el id tal y cual.

En resumen, puedes poner CUALQUIER VALOR, siempre y cuando sea el mismo en el BinarySecurityToken.Id vs. SecurityToken.Reference

Espero haberme explicado

<o:BinarySecurityToken u:Id="uuid-7de252ad-a383-458d-a467-8aadb076df4f-1"

es el mismo valor que en

<o:Reference ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" URI="#uuid-7de252ad-a383-458d-a467-8aadb076df4f-1"/>

Mira como dice.......que un certificado X509 esta en el URI identificado con el id tal y cual


El DigestValue es efectivamente el SHA1 del nodo TimeStamp pero expresado en base64***

El el SignatureValue, es el sello digital, tal como lo indicas


***ES AQUI DONDE A MI ME FALLA, no se porque no puedo obtener el mismo sha1.base64 que el ejemplo
Hay una pagina para obtener este valor aqui solo cambia donde dice Output format a que diga "base 64 output"



mmmm creo que me acabo de Responder, El DigestValue es efectivamente el SHA1 del nodo TimeStamp pero expresado en base64***
Ahora voy a investigar como sacarle el SHA1 a esa cosa.


Y cuando dices el Nodo de TimeStamp, te refieres a este cierto?:

Código: Seleccionar todo

<u:Timestamp u:Id="_0">
   <u:Created>2018-09-26T15:40:02.763Z</u:Created>
   <u:Expires>2018-09-26T15:45:02.763Z</u:Expires>
</u:Timestamp>



Bueno, estoy entendiendo esto.
Suponiendo que hay que codificar en SHA1 ese nodo y que ese es todo el nodo.
El paso dos seria codificar en Base64 el resultado del texto codificado en SHA1, cierto?

Saludos

estebanchambas
Mensajes: 51
Registrado: Mié Ago 08, 2018 2:30 pm

Re: Duda de Como Autentificarse en los WebService de Descarga de los XML

Mensajepor estebanchambas » Jue Sep 27, 2018 4:22 pm

@Dado
Y donde Dice SignatureValue, ahi que va? Estoy leyendo que dice el Sello Digital.

Te refieres al Archivo CER?
y que parte?

estebanchambas
Mensajes: 51
Registrado: Mié Ago 08, 2018 2:30 pm

Re: Duda de Como Autentificarse en los WebService de Descarga de los XML

Mensajepor estebanchambas » Jue Sep 27, 2018 5:03 pm

Creo saber que es lo que va en SignatureValue.

Será que irá eñ módulo <Modulus> del Private Key del Archivo .KEY, como para firmar la petición?


Saludos

crono81
Mensajes: 118
Registrado: Lun Dic 16, 2013 6:55 pm

Re: Duda de Como Autentificarse en los WebService de Descarga de los XML

Mensajepor crono81 » Jue Sep 27, 2018 5:50 pm

Esteban, el hash del timestam debe hacerse a un dato como este, obviamente especificando tu fecha

Código: Seleccionar todo

<u:Timestamp xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" u:Id="_0"><u:Created>2018-09-26T20:36:40.520Z</u:Created><u:Expires>2018-09-26T20:41:40.520Z</u:Expires></u:Timestamp>

Fijate que lleva un namespace, el cual debe incluirse para calcular el hash, pero no se incluye en el xml que envias

HalconDivino, podrias hacer debug en tu aplicacion y decirnos (de ser posible), sobre que datos se calcula el hash en la petición de solicitud de descarga, el segundo paso

estebanchambas
Mensajes: 51
Registrado: Mié Ago 08, 2018 2:30 pm

Re: Duda de Como Autentificarse en los WebService de Descarga de los XML

Mensajepor estebanchambas » Jue Sep 27, 2018 6:02 pm

crono81 escribió:Esteban, el hash del timestam debe hacerse a un dato como este, obviamente especificando tu fecha

Código: Seleccionar todo

<u:Timestamp xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" u:Id="_0"><u:Created>2018-09-26T20:36:40.520Z</u:Created><u:Expires>2018-09-26T20:41:40.520Z</u:Expires></u:Timestamp>

Fijate que lleva un namespace, el cual debe incluirse para calcular el hash, pero no se incluye en el xml que envias

HalconDivino, podrias hacer debug en tu aplicacion y decirnos (de ser posible), sobre que datos se calcula el hash en la petición de solicitud de descarga, el segundo paso


Gracias @crono81

Cuando dices Namespace te refieres a esto cierto?:

Código: Seleccionar todo

xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"


Y que solo se usa para calcular el Hash (SHA1) y luego pasarle Base64, cierto?


Y ese Namespace no va en el XML que se envía como Request.
Espero estar entendiendo correctamente.


Saludos


Volver a “Otros”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 6 invitados