Terminado

Desarrollo de modulo Vb 2017 para conectar con Api Web usando Oidc y Json

Publicado el 25 Mayo, 2017 en Programación y Tecnología

Sobre este proyecto

Abierto

Necesito desarrollar un modulo en visual basic 2017, para integrarlo a mi aplicación de facturación, ya que pretendo migrar al nuevo esquema de facturación electronica que quiere implantar el ministerio de hacienda. Mi software de facturación está desarrollado en el mismo lenguaje, y simplemente emite la factura ó tiquete impreso.
La nueva adaptación para adherirnos a la facturación electronica, consiste en que mi sistema deberá generar una copia de cada factura en formato digital XML, y el mismo debe ser inmediatamente enviado a traves de internet a un servidor del ministerio de hacienda. Tengo la capacidad de generar el archivo XML de acuerdo a las especificaciones dictadas por el ministerio de hacienda. Pero necesito de alguien que me ayude en la parte de lograr enviar los datos al servidor web.

Los datos generales para lograr esa conexión son los siguientes:
El ministerio de hacienda ha decidido que para la recepción de comprobantes electrónicos se utilizará un API RESTful, este expondrá los recursos disponibles al contribuyente para que pueda enviar y consultar el estado de los comprobantes electrónicos.
Información para la conexión:
El api se encuentra publicado en la uri https://api.comprobanteselectronicos.go.cr/recepcion/v1/.
Para utilizar el servicio es obligatorio el uso de un canal HTTPS.
Todos los mensajes serán de tipo JSON.
Los mensajes recibidos y enviados atraves del API deberán utilizar el mapa de caracteres UTF8.
Se  habilitará  el  URI https://api.comprobanteselectronicos.go.cr/recepcion-sandbox/v1/ para  que  sea  utilizado  como  un  ambiente  de  pruebas  del  contribuyente  para  la  integración  con  sus  sistemas.  La base de datos que utiliza este API de sandbox se puede limpiar en cualquier momento para reiniciar el ambiente.
Seguridad:
Todos los recursos del api se encuentran protegidos, es requerido iniciar sesión en el api para poder consumirlos.
El  API  utiliza  un  modelo  de  seguridad  con  Open  ID  Connect  (OIDC-http://openid.net/connect/)  el  cual  funciona  como  una  capa  de  identidad  sobre  el  protocolo  Oauth2.0,  el  oidc  utiliza  json  web tokens (jwt) para almacenar la información de los tokens.
Desde  la  aplicación  cliente  se  debe  consumir  el  Identity  Provider  (IdP)  que  se  encuentra  en  el  URI https://idp.comprobanteselectronicos.go.cr/auth,  este  IdP  permite  crear nuevos  Tokens  (JWT)  o  refrescar los existentes ya que estos tienen un tiempo de expiración de 5 minutos.
Cuando se tiene el Token generado por el IdP, este se envía en el contenido del Header “Authorization” con el prefijo "bearer”.
Para los efectos prácticos el OIDC es una extensión del estándar de OAuth2.0 (RFC 6749), para esta implementación
se utiliza de la misma forma que un OAuth2.0 con el Grant Type llamado “Resource Owner Password Credential”. Para utilizarlo va a requerir de un Username, Password y Access Token URL, el IdP le genera un Token el cuál el contribuyente en su aplicación debe enviar para consumir el API de Recepción de Documentos. Este Token que se generó tiene un tiempo de expiración que es parte del estándar de OAuth2.0, la aplicación del contribuyente debe encargarse de renovar este Token cuando expira para mantener la continuidad del servicio y cerrar la sesión al terminar.

El estándar de OAuth2.0 solicitará usuario y contraseña para generar el Access Token, y yo ya los tengo.
En el resultado de este trabajo, requiero que se me entregue el codigo fuente, idealmente desarrollado en VB 2017, para yo poder integrarlo a la aplicación de escritorio que utilizamos para facturar, y así agregar la función de envío del comprobante electronico al ministerio de hacienda.

Categoría Programación y Tecnología
Subcategoría Aplicaciones de escritorio
¿Cuál es el alcance del proyecto? Bug o cambio pequeño
¿Es un proyecto o una posición? Un proyecto
Actualmente tengo No aplica
Disponibilidad requerida Según se necesite
Experiencia en este tipo de proyectos Sí (He administrado este tipo de proyectos anteriormente)
Integraciones de API Otros (Otras APIs)
Plataformas requeridas Windows

Plazo de Entrega: 24 Junio, 2017

Habilidades necesarias