[SOLUCIONADO]Consulta sobre Consumir webservices del Mapuche desde Toba

Buenas tardes,

Les queriamos realizar la siguiente cosulta: el nuevo proyecto que queremos desarrollar bajo el entorno de Toba necesita conectarse a la base de datos Pilaga y Mapuche, con el proposito de consultar cierta información que es requerida para generar salidas que se nos solicita desde Administración o Personal. ¿La consulta es cuales son los pasos a seguir para lograr esta conexión? Sabemos que debemos configurar los webservices, la pregunta es ¿como lo hacemos?. ¿Podrian facilitarnos información sobre como configurar estos servicios para que desde nuestra aplicación podamos conectarnos a las bd de Pilaga y Mapuche?

Desde ya muchas gracias!!!

Saludos
Paola Vidal
Universidad Nacional de la Patagonia Austral

Hola,

Antes que nada, quería comentarte de que no existen WebServices para consultar toda la información que manejan estos 2 sistemas. Los WebServices que tienen cada uno de los sistemas solo contemplan información especifica, y por ahora acotada, supongo que con el tiempo se ira ampliando.

Lo que entiendo que necesitas es conectarte directamente con las bases de datos de cada uno de los sistemas para esto necesitas saber los datos de conexión:

  • IP del Servidor
  • Puerto (casi siempre 5432)
  • Nombre de Base de Datos
  • Usuario
  • Clave

También vas a necesitar configurar el “schema”, pero eso es sabido por cada proyecto en mapuche es “mapuche” y en pilaga es “public”.

Un tema no menor si es que deseas conectarte desde otro servidor es que el motor de bases de datos (postgres) este configurado para escuchar consultas desde afuera de su propio servidor (no viene así configurado por default).

Como un tema mas avanzado, en caso de querer conectarte te recomiendo que crees un usuario especifico para comunicarte con estas bases desde el nuevo servidor.

Para comenzar con el desarrollo de la aplicación te recomiendo que trabajes con copias de las bases de datos de forma local en la maquina que te pongas a desarrollar.

Saludos!

Gustavo,
Gracias por tu pronta respuesta!! Si ahora que me lo mencionas estaba viendo la estructura de los webservices del Mapuche y tal cual vos me lo decis. Pero si quisieramos hacer uso de alguno de los servicios web de Mapuche por ejemplo el de getAgentes. La forma de configurar los webservices sería similar a lo explicado en el instructivo del SIU-Arai, no? Donde se describe como generar los certificados y luego configurarlos en el Mapuche. Y de la misma forma habria que generarlos en el servidor donde tenemos instalado el Toba. Buscando ejemplos en la web, encontre un link donde vos indicas como consumir web service del SIU-Mapuche desde SIU-Toba, en www.gustavopilla.com/2012/11/12/consumir-web-service-del-siu-mapuche-desde-siu-toba. Serìan estos los pasos a seguir entonces?

Desde ya gracias!!

Saludos
Paola

Hola Paola,

Si, es exactamente como vos comentas. Hay una ligera diferencia en la configuración de los certificados, ya que el proyecto SIU-Mapuche se actualizo a la ultima versión de Toba y ahora hace la administración de los certificados desde el proyecto toba_usuarios. Igual entiendo de que aun es posible configurarlo desde consola.

Saludos!

Hola Paola,

si, dependiendo la version de los sistemas que tengas, vas a tener que hacer uso de la configuracion que detalla Gustavo ahi. Para la nueva version de Mapuche, eso lo podes hacer via web… pero no se cual esten usando ustedes y calculo que para Pilaga vas a tener que usar la linea de comandos aun.

Por otro lado, seria interesante que en lugar de conectarse derecho a las bases de datos (algo feo, feo, malo, malo) intenten generar nuevos web services en los sistemas o incluso mejor aun, les planteen a los equipos correspondientes (Mapuche, Pilaga) que requieren un web service que les provea de cierta informacion. De manera de hacer crecer la cantidad de informacion que los mismos ponen a su disposicion via WS e ir generando una API para que ustedes puedan consumir desde sus propios sistemas en la Uni.

Creo que la opcion de WS esta buena, sea cual sea el camino que elijan.

Saludos

Buenos dias les escribo para consultarles lo siguiente:

Tengo dudas sobre como generar los certificados. La duda es la siguiente:

  • En el servidor donde tenemos instalado el SIU-Mapuche v2.0.0 (a modo de prueba) debemos generar los certificados:ç
    server.crt
    server.key
    cliente.crt

  • En el servidor donde tenemos instalado el SIU-Toba v2.4.2 (a modo de prueba) debemos generar los certificados cliente.crt y cliente.key, o debemos tener los 4?

Otra duda:

  • Cuando dice que para configurar el cliente hay que correr el siguiente comando: # toba servicios_web cli_configurar -c {ruta_fisica_al_certificado_del_server} -s mapuche_agentes -p {nombre_de_nuestro_proyecto} la ruta fisica al certificado del server sería para este ejemplo en particular la del servidor donde se encuentra instalado el SIU-Mapuche?? O bien si hay que generar los certificados como servidor tambien en el servidor donde se encuentra el proyecto, hay que colocar ese certificado?

Me disculpo si consulto cosas que quizas son obvias pero nunca hemos trabajado con certificados, entonces por esta razon consulto tanto…

Desde ya gracias!

Saludos
Paola

Hola, no hay consultas obvias, todos tuvimos las mismas consultas en algún momento, ahora que sabemos las respuestas a las mismas las compartimos.

Por cada sistema debemos tener 2 certificados. Uno publico (.crt) y uno privado (.key). En el momento de que queremos conectarnos con otro sistema lo que hacemos es le damos (copiamos de una manera segura) el certificado publico al otro sistema.

Creo que vas a entender mejor el funcionamiento de los certificados aquí en la parte de cifrado de mensajes. Es mas didáctico de lo que puedo llegar a explicar yo.

Como comente, de cada lado se generan solo 2 certificados, solo se copia el {cliente-o-servidor}.crt al otro sistema. Los nombres cliente y servidor son solo para entender

Cuando ejecutes:

toba servicios_web generar_cert -p {proyecto}

Se te van a generar 2 certificados:

{ruta_a_toba}/instalacion/i__desarrollo/p__{proyecto}/privada.key
{ruta_a_toba}/instalacion/i__desarrollo/p__{proyecto}/publica.crt

Por ultimo, cuando habla de ruta fisica al certificado, es la ruta al directorio local en el servidor donde tenes el sistema que va a actuar de “cliente”… te vuelvo a comentar de que vas a tener que copiar el archivo .crt del sistema que actua como “servidor”.

Espero haber sido claro y que te sirva esta explicación. Saludos!

Gustavo muchas gracias por tu respuesta y tu buena predisposición! Te cuento que siguiendo los pasos que me indicaste pudimos realizar la importación del certificado publico del servidor en el cliente. Te adjunto el resultado de la ejecución del comando # toba servicios_web cli_configurar -c {ruta_fisica_al_certificado_del_server} -s mapuche_agentes -p {nombre_de_nuestro_proyecto} -i desarrollo en el archivo UNPA_Importacion del cert del server al cliente.
A su vez copiamos el certificado publico del cliente en el servidor de prueba donde tenemos instalado SIU-Mapuche.
Entonces:

  • En el servidor de prueba de SIU-Mapuche copiamos cliente.crt
  • En el servidor de prueba SIU-Toba donde tenemos nuestro proyecto copiamos e importamos server.crt. Aqui tuve que renombrar los archivos como publica.crt y privada.key, sino al importar no me lo tomaba.

Ahora bien cuando queremos ejecutar el codigo de prueba que nos citaste como ejemplo me despliega el error mostrado en el archivo adjunto UNPA_ERROR AL EJECUTAR CODIGO DE PRUEBA.
Renombre el archivo server.crt como cert_servidor.crt pero igual no lo toma. A raiz de esto te consulto, en el caso del servidor de prueba SIU-Mapuche los certificados se denominan server.crt, server.key y cliente.crt, los certificados que fueron copiados de un sistema a otro deben tener los mismos nombres en ambos servidores o no importa?

El codigo que queremos probar es:

<?php class ci_legajos extends prueba_ci { //----------------------------------------------------------------------------------- //---- cuadro_agentes --------------------------------------------------------------- //----------------------------------------------------------------------------------- function conf__cuadro_agentes(prueba_ei_cuadro $cuadro) { //--1- Arma el mensaje $opciones = array('action' => 'getAgentes'); //En action se detalla la operacion a invocarse $filtro = array(); $filtro[] = array('campo'=>'apellido', 'operador' => 'contiene', 'valor'=> 'Vidal'); $mensaje = new toba_servicio_web_mensaje(array('parametros' => array('filtro' => $filtro )) , $opciones); //--2- Arma el servicio $opciones = array(); $servicio = toba::servicio_web('mapuche_agentes', $opciones); //-- 3 - Muestra la respuesta try { $respuesta = $servicio->request($mensaje); $cuadro->set_datos($respuesta->get_array()); } catch (toba_error_servicio_web $e) { toba::notificacion()->info($e->get_mensaje().' (codigo "'.$e->get_codigo().'")'); } } } ?>
  • Tambien desde el Toba_editor creamos un nuevo servicio web accesible como nos indicas en el ejemplo.
  • En SIU-Mapuche tambien configuramos los cetificados web y habilitamos los servicios

Desde ya muchas gracias!!

Saludos
Paola
Universidad Nacional de la Patagonia Austral


UNPA_ERROR AL EJECUTAR CODIGO DE PRUEBA.png

UNPA_ERROR AL EJECUTAR CODIGO DE PRUEBA.png

UNPA_Importacion del cert del server al cliente.png

UNPA_Importacion del cert del server al cliente.png

Te propongo que vuelvas a producir el error y copies las lineas del log de toba, ya que ahi se entendera mejor que causo el error y donde.

Saludos!

Gustavo me podrias decir en que directorio se guarda este log? o te referis al logger que muestra el toba_editor?

Desde ya gracias

Saludos
Paola

El archivo de log que muestra el logger se encuentra en:

{ruta_al_toba}/instalacion/i__{instancia}/p__{proyecto}/logs/sistema.log

Buen dia Gustavo te adjunto el log solicitado.

Gracias!

Saludos
Paola


sistema.zip (1.91 KB)

Buen dia Gustavo pudiste ver el log que te envié??? Te comento algo, ¿este error pudo haberse presentado porque la librería WSF/PHP no se instalo correctamente en el cliente? Te cuento que también subí esta consulta a Toba/Instalación pero aún no he tenido respuesta. El tema es que nuestro cliente esta en Ubuntu y el servidor en Debian. Googleando encontré algunos comentarios sobre que había inconvenientes en instalar esta librería en Ubuntu. También vi que había una posible solución, pero el link estaba roto. Pero volviendo a la pregunta original, el error que reporte al ejecutar el código que emplea un WS del Mapuche pudo haberse presentado por una mala instalación de la librería, o no?

Desde ya gracias.

Saludos
Paola

Hola,

No creo que eso sea un error de la librería, por lo que veo me imagino que es un error de configuración.

Te voy a pedir que ejecutes nuevamente el comando de configuración de certificado de los clientes en el SIU-Mapuche y le pongas la ruta completa al certificado (ej: /home/usuario/cert_cliente.crt) y no la relativa a donde estas parada (ej: …/cert_cliente.crt).

Estimo que ese fue el problema. Por favor contanos como te fue.

Saludos!

Buen dia Gustavo,
Te cuento lo que hicimos porque estoy medio confundida…
Nosotros en un ambiente de prueba tenemos dos servidores:

  • En un servidor se encuentran instalados los sistemas SIU-Pilaga y SIU-Mapuche

  • En otro servidor se encuentra instalado el SIU-Toba v2.4.2. Aqui es donde implementamos el código que nos recomendaste para probar el correcto funcionamiento del WS del Mapuche.

A) Ahora bien, los pasos que seguimos para la GENERACION DE LOS CERTIFICADOS son los siguientes:

  • Creamos un archivo openssl.ini tanto en el cliente como en el servidor con la estructura recomendada como ejemplo.

  • Para generar los certificados en el cliente (servidor donde se encuentra el SIU-Toba) ejecutamos en este servidor:

openssl req -x509 -nodes -days 20000 -newkey rsa:1024 -keyout cliente.key.sign -config {ruta_al_archivo}/openssl.ini -out cliente.crt

openssl rsa -in cliente.key.sign -out cliente.key

rm cliente.key.sign

Aqui se generaron los certificados privada.key y publica.crt.

  • Para generar los certificados en el servidor (servidor donde se encuentran instalados SIU-Mapuche y SIU-Pilaga) ejecutamos en este servidor:

openssl req -x509 -nodes -days 20000 -newkey rsa:1024 -keyout server.key.sign -config {ruta_al_archivo}/openssl.ini -out server.crt

openssl rsa -in server.key.sign -out server.key

rm server.key.sign

Aqui se generaron los certificados privada.key y publica.crt. Los cuales fueron renombrados como server.crt y server.key.

B) Los pasos que seguimos para la CONFIGURACION DE LOS CERTIFICADOS EN EL SERVIDOR (donde se encuentra SIU-Mapuche)

  • Se ingresó al SIU-Mapuche y para activar los WS se ingresó a Configuración → Servicios Web → General, ahí se tildaron los servicios que necesitabamos, y se guardaron los cambios.

  • Se realizo una copia del certificado publica.crt del servidor que actua como cliente (SIU-Toba) y se lo renombro como cliente.crt.

  • Se ingresó a Configuración → Servicios Web → Seguridad, y llenamos con las 3 rutas completas a los archivos mencionados:

Certificado cliente () /var/prueba/mapuche/instalacion/i__produccion/p__mapuche/cliente.crt

  • Certificado servidor (*) /var/prueba/mapuche/instalacion/i__produccion/p__mapuche/server.crt
    Clave servidor () /var/prueba/mapuche/instalacion/i__produccion/p__mapuche/server.key

C) Los pasos que seguimos para la CONFIGURACION DE LOS CERTIFICADOS EN EL SERVIDOR (donde se encuentra SIU-Toba)

  • Dentro de nuestro proyecto, creamos un nuevo “servicio web accesible”, desde el toba_editor en la pestaña “Datos” → “Servicios Web Accesibles”, con los siguientes datos:
    Identificador (*) - mapuche_agentes
    URL - http://IP_Servidor/prueba/mapuche/servicios.php/ServicioWebAgentes.php

  • Se realizó una copia del certificado del servidor server.crt (Certificado servidor) en el servidor Cliente (SIU-Toba)

  • Por ultimo se configuró el “certificado del servidor” en la “instancia cliente” ejecutando en el servidor cliente (SIU-Toba):

toba servicios_web cli_configurar -c /var/www/toba_2.4.2/instalacion/i__desarrollo/p__prueba/cert_servidor -s mapuche_agentes -p {nombre_de_nuestro_proyecto}

¿Estos pasos son correctos? Finalmente en el servidor SIU-Mapuche la copia del certificado del cliente se nombro como cliente.crt; y en el cliente SIU-Toba, quedo como publica.crt. ¿Esto tiene que ver? ¿Debieran llamarse de la misma forma? No los pude nombrar igual porque sino al ejecutar el codigo me decia que no existia el certificado publica.crt en el cliente.

Volvi a ejecutar el comando de configuración en el cliente y me salio el error de La conexion fue restablecida… ¿Que estoy haciendo mal?

Desde ya muchas gracias!!!

Saludos
Paola Vidal
Universidad Nacional de la Patagonia Austral

Buen día Gustavo te cuento que estamos por realizar otra la instalación de Toba en otro servidor de prueba, y te queria pedir si nos podes confirmar por favor si los pasos que te describi en el mensaje anterior para la configuración de los certificados son correctos o no.

Desde ya gracias

Saludos
Paola

Hola Paola,

Bien, esto es lo mismo que hace el comando toba servicios_web generar_cert no hay mucha vuelta alrededor de esto creo.

B) Los pasos que seguimos para la CONFIGURACION DE LOS CERTIFICADOS EN EL SERVIDOR (donde se encuentra SIU-Mapuche) - Se ingresó al SIU-Mapuche y para activar los WS se ingresó a Configuración -> Servicios Web -> General, ahí se tildaron los servicios que necesitabamos, y se guardaron los cambios.
  • Se realizo una copia del certificado publica.crt del servidor que actua como cliente (SIU-Toba) y se lo renombro como cliente.crt.

  • Se ingresó a Configuración → Servicios Web → Seguridad, y llenamos con las 3 rutas completas a los archivos mencionados:

Certificado cliente () /var/prueba/mapuche/instalacion/i__produccion/p__mapuche/cliente.crt

  • Certificado servidor (*) /var/prueba/mapuche/instalacion/i__produccion/p__mapuche/server.crt
    Clave servidor () /var/prueba/mapuche/instalacion/i__produccion/p__mapuche/server.key

De esto no puedo decir nada, no se mucho sobre como lo maneja Mapuche. La otra opcion que podes intentar, si lo tenes instalado, es usar toba_usuarios para generar la configuracion del WS Ofrecido.
C) Los pasos que seguimos para la CONFIGURACION DE LOS CERTIFICADOS EN EL SERVIDOR (donde se encuentra SIU-Toba)
  • Dentro de nuestro proyecto, creamos un nuevo “servicio web accesible”, desde el toba_editor en la pestaña “Datos” → “Servicios Web Accesibles”, con los siguientes datos:
    Identificador (*) - mapuche_agentes
    URL - http://IP_Servidor/prueba/mapuche/servicios.php/ServicioWebAgentes.php

  • Se realizó una copia del certificado del servidor server.crt (Certificado servidor) en el servidor Cliente (SIU-Toba)

  • Por ultimo se configuró el “certificado del servidor” en la “instancia cliente” ejecutando en el servidor cliente (SIU-Toba):

toba servicios_web cli_configurar -c /var/www/toba_2.4.2/instalacion/i__desarrollo/p__prueba/cert_servidor -s mapuche_agentes -p {nombre_de_nuestro_proyecto}

Aca definitivamente te conviene usar toba_usuarios y configurar el WS mediante la operacion ‘Servicios Consumidos’, es mucho mas intuitiva que el comando.

¿Estos pasos son correctos? Finalmente en el servidor SIU-Mapuche la copia del certificado del cliente se nombro como cliente.crt; y en el cliente SIU-Toba, quedo como publica.crt. ¿Esto tiene que ver? ¿Debieran llamarse de la misma forma? No los pude nombrar igual porque sino al ejecutar el codigo me decia que no existia el certificado publica.crt en el cliente.

Volvi a ejecutar el comando de configuración en el cliente y me salio el error de La conexion fue restablecida… ¿Que estoy haciendo mal?


No creo que tenga que ver con los nombres de los archivos puntualmente, me inclino mas a pensar que los archivos no quedan en los directorios donde deben, o que los archivos ini de la configuracion de cada servicio no estan correctos.

Podrias subirnos lo siguientes directorios?:

  • En el servidor que aloja Mapuche: instalacion/i__produccion/p__mapuche/servicios_serv y instalacion/i__produccion/p__mapuche/servicios_cli

  • En el servidor que aloja Toba 2.4: instalacion/i__desarrollo/p__mapuche/servicios_cli (ya que es el unico que deberias tener)

Si queres trunca los archivos de los certificados, asi no los tenes que volver a generar luego.

Saludos

Hola Paola,

charle con los chicos de Mapuche y me confirmaron que tenes que usar toba_usuarios para configurar los certificados del cliente.

Osea, tendrias que acceder a Servicios Ofrecidos y configurarle el certificado cliente a aquellos WS que lo requieran.

Saludos

Buen dia Ricardo,
¿Cómo estás? Primero te adjunto los directorios que me solicitaste,
teniendo en cuenta lo siguiente:

  • En el servidor que aloja Mapuche, solo se encuentra el directorio
    servicios_serv. No figura el directorio servicios_cli. Cuando se generan
    estos directorios?

  • En el servidor que aloja Toba 2.4, solo se encuentra el directorio
    servicios_cli como vos me indicaste.

Ahora bien, respecto a tu ultimo mensaje. Si yo ingreso al
toba_usuarios/servicios_web solo veo servicios consumidos. Y esto lo veo
solo si los configure primero desde el toba_editor. Te adjunto la pantalla.
Si ingreso a servicios ofrecidos, seleccionando mi proyecto de prueba me
muestra una pantalla que dice “El proyecto no ofrece servicios web”.

Si me podes guiar en los pasos a seguir, o indicarme que estoy haciendo
mal, o bien si preferis que le consulte a los chicos de Mapuche.

Desde ya gracias por tu ayuda!

Saludos
Paola


servicios_cli_cliente_Toba.zip (1.72 KB)

toba_servicios_consumidos_ofrecidos.zip (47.5 KB)

servicios_serv_servidor_mapuche.rar (1.7 KB)

Hola Paola,

ese dir se va a generar en el momento que uses esa instalacion de Mapuche como cliente de algun otro WS, igual no es importante por el momento.
Lo que si vi de los archivos que me pasaste, es que estan todos los WS desactivados, tenes que ir a toba_usuarios y activarlos para que funcionen.

Ahora bien, respecto a tu ultimo mensaje. Si yo ingreso al toba_usuarios/servicios_web solo veo servicios consumidos. Y esto lo veo solo si los configure primero desde el toba_editor. Te adjunto la pantalla.

Perfecto, es lo que deberias ver, si no estas consumiendo ningun WS de un server no tendrias que tener nada.

Si ingreso a servicios ofrecidos, seleccionando mi proyecto de prueba me muestra una pantalla que dice "El proyecto no ofrece servicios web".

Por ahi no quedo muy claro esto, esta parte la tenes que hacer sobre el toba_usuarios del servidor que tiene Mapuche instalado, es para configurar los WS que brinda esa instalacion.
Actualmente segun los archivos de configuracion que me enviaste, estan todos desactivados, tenes que activarlos manualmente y configurarles el cert del cliente (osea de toba 2.4.2)

Seguimos por aca, cualquier cosa les paso el th a los chicos de Mapuche para que nos corrijan.

Saludos