[SOLVED] Error en vinculación de Guaraní con Araí

Estamos realizando pruebas de configuraciones entre Guarani y Arai Documentos, al momento de ingresar a opcion de guarani Administrar Personas nos muestra un mensaje

Debe configurar el acceso al servicio web de SIU-Arai para obtener los usuarios disponibles.

el log que observamos en Guarani es:


[Tue Sep 13 10:14:45.419927 2022] [php7:notice] [pid 987] [client 172.29.0.2:57002] Server error: `GET https://documentos2022.uner.edu.ar/docs/rest/backend/aplicaciones` resulted in a `500 Internal Server Error` response:\n{\n    "error": 500,\n    "mensaje": "500 Internal Server Error",\n    "descripcion": "Error Interno en el servidor: No se  (truncated...)\n, referer: https://g3gestion319.uner.edu.ar/guarani/3.20/aplicacion.php?tm=1&tcm=central&ai=guarani||37000023
[Tue Sep 13 10:14:45.423702 2022] [php7:notice] [pid 987] [client 172.29.0.2:57002] guarani_error: Debe configurar el acceso al servicio web de SIU-Arai para obtener los usuarios disponibles. \n[TRAZA]\n\t\n\tfabrica_guarani::error \nArchivo: /data/local/sistema/php/nucleo/_lib/fabrica_guarani.php, lInea 82 \nParametros: \nDebe configurar el acceso al servicio web de SIU-Arai para obtener los usuarios disponibles.\t\t\n\t\t\n\t\n\tguarani_nucleo::error \nArchivo: /data/local/sistema/php/operaciones/matriculas/personas/ci_nav_personas.php, lInea 21 \nParametros: \nDebe configurar el acceso al servicio web de SIU-Arai para obtener los usuarios disponibles.\t\t\n\t\n\tci_nav_personas->ini__operacion \nArchivo: /data/local/sistema/vendor/siu-toba/framework/php/nucleo/componentes/interface/toba_ci.php, lInea 90 \n\t\n\ttoba_ci->inicializar \nArchivo: /data/local/sistema/vendor/siu-toba/framework/php/nucleo/toba_solicitud_web.php, lInea 132 \n\t\n\ttoba_solicitud_web->procesar_eventos \nArchivo: /data/local/sistema/vendor/siu-toba/framework/php/nucleo/toba_solicitud_web.php, lInea 55 \n\t\n\ttoba_solicitud_web->procesar \nArchi...SIGUE..., referer: https://g3gestion319.uner.edu.ar/guarani/3.20/aplicacion.php?tm=1&tcm=central&ai=guarani||37000023
172.29.0.2 - - [13/Sep/2022:10:14:45 -0300] "GET /guarani/3.20/aplicacion.php?tm=1&tcm=central&ai=guarani||37000023 HTTP/1.1" 200 248623 "https://g3gestion319.uner.edu.ar/guarani/3.20/aplicacion.php?tm=1&tcm=central&ai=guarani||37000023" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36"


En arai documentos observamos el log


[Tue Sep 13 10:14:45.408637 2022] [php7:notice] [pid 18] [client 10.42.2.254:57544] [2022-09-13 10:14:45] REST-API.DEBUG: Iniciando el pedido [] []\n
[Tue Sep 13 10:14:45.408760 2022] [php7:notice] [pid 18] [client 10.42.2.254:57544] [2022-09-13 10:14:45] REST-API.DEBUG: Procesando URL '/aplicaciones' [] []\n
[Tue Sep 13 10:14:45.408796 2022] [php7:notice] [pid 18] [client 10.42.2.254:57544] [2022-09-13 10:14:45] REST-API.DEBUG: Iniciando Autenticacion [] []\n
[Tue Sep 13 10:14:45.408896 2022] [php7:notice] [pid 18] [client 10.42.2.254:57544] [2022-09-13 10:14:45] REST-API.DEBUG: Pedido capturado por el firewall [] []\n
[Tue Sep 13 10:14:45.409002 2022] [php7:notice] [pid 18] [client 10.42.2.254:57544] [2022-09-13 10:14:45] REST-API.DEBUG: Usuario 'documentos' autenticado y autorizado [] []\n
[Tue Sep 13 10:14:45.409157 2022] [php7:notice] [pid 18] [client 10.42.2.254:57544] [2022-09-13 10:14:45] REST-API.ERROR: Error al ejecutar el pedido. No se encuentra el recurso para aplicaciones en el directorio /usr/local/app/src/SIU/DocsApi/Endpoints/Backend. \xbfRuta mal formada? [] []\n
[Tue Sep 13 10:14:45.409193 2022] [php7:notice] [pid 18] [client 10.42.2.254:57544] [2022-09-13 10:14:45] REST-API.ERROR: #0 /usr/local/app/vendor/siu-toba/rest/src/SIUToba/rest/rest.php(252): SIUToba\\rest\\lib\\ruteador->buscar_controlador('GET', 'aplicaciones')\n#1 /usr/local/app/www/api-backend.php(75): SIUToba\\rest\\rest->procesar()\n#2 {main} [] []\n
[Tue Sep 13 10:14:45.409416 2022] [php7:notice] [pid 18] [client 10.42.2.254:57544] [2022-09-13 10:14:45] REST-API.DEBUG: Pedido finalizado [] []\n
[Tue Sep 13 10:14:45.409467 2022] [php7:notice] [pid 18] [client 10.42.2.254:57544] [2022-09-13 10:14:45] REST-API.DEBUG: SIUToba\\rest\\http\\respuesta_rest::__set_state(array(\n 'status' => 500,\n 'headers' => \n array (\n 'Content-Type' => 'application/json',\n 'API-Version' => '1.3',\n ),\n 'data' => \n array (\n 'error' => 500,\n 'mensaje' => '500 Internal Server Error',\n 'descripcion' => 'Error Interno en el servidor: No se encuentra el recurso para aplicaciones en el directorio /usr/local/app/src/SIU/DocsApi/Endpoints/Backend. \xbfRuta mal formada?',\n ),\n 'encoding' => 'utf-8',\n 'api_version' => '1.3',\n)) [] []\n
10.42.2.254 - documentos [13/Sep/2022:10:14:45 -0300] "GET /docs/rest/backend/aplicaciones HTTP/1.1" 500 260

Hemos configurado en Guarani los archivos

En archivo saml_onelogin.ini


[basicos]
atributo_usuario = "defaultUserAccount"

permite_login_toba= "0"
verifyPeer = "0"

[sp]
auth_source = "default-sp"
session.phpsession.cookiename = "TOBA_SESSID"
idp = "https://usuarios-sudocu2022.uner.edu.ar/idp/saml2/idp/metadata.php"

proyecto_login = "guarani"

[idp:https://usuarios-sudocu2022.uner.edu.ar/idp/saml2/idp/metadata.php]
name = "SIU-Guarani" 
SingleSignOnService = "https://usuarios-sudocu2022.uner.edu.ar/idp/saml2/idp/SSOService.php"
SingleLogoutService = "https://usuarios-sudocu2022.uner.edu.ar/idp/saml2/idp/SingleLogoutService.php"
certFile = "/data/local/sistema/instalacion/idp.crt"

en instalacion.ini


nombre = "guarani"
id_grupo_desarrollo = "718"
clave_querystring = "c4d973266a8f3a2ee207f61cf9b1aa43"
clave_db = "3c7fbeedc3f25e6deaa00bb811866dad"
editor_php = ""
url = "/toba_3.3"
es_produccion = "0"

;autenticacion = "toba|openid|ldap|cas|saml|saml_onelogin"
autenticacion = "saml_onelogin"
vincula_arai_usuarios = "1"
appUniqueIdGestion = "_2d12954dd2f6187af56e900408adfff94bfa5aad5f"
appUniqueId3w = "_c9b30f097162ea69c9986f59bfb732b07da0dce226"

session_name = "TOBA_SESSID"

arai_sync_key_file = "/data/local/sistema/instalacion/arai-sync.key"


en arai_documentos.ini


host_arai = "https://documentos2022.uner.edu.ar/docs"
usr_arai = "documentos"
pass_arai = "xxxxxxx"

en instalacion/i__desarrollo/instancia.ini


[guarani]
path = "/data/local/sistema"
url = "/guarani/3.20"
url_pers = "/guarani_pers/3.20"
full_url = "https://g3gestion319.uner.edu.ar/guarani/3.20"

en archivo instalacion/i__desarrollo/p__guarani/rest/arai_usuarios/cliente.ini


[conexion]

to = "https://documentos2022.uner.edu.ar/docs/rest/backend/"
auth_tipo = "basic"
auth_usuario = "documentos"
auth_password = "xxxxxxx"


Hola

Por lo que se ve en el en archivo instalacion/i__desarrollo/p__guarani/rest/arai_usuarios/cliente.ini ¿están configurando una url de arai-documentos? ¿Puede ser?

Por favor revisen la siguiente documentación

Saludos!

Hola Guillermo,

Tal cual como dice Sergio, en Gestión instalacion/i__desarrollo/p__guarani/rest/arai_usuarios/cliente.ini tenes que configurar la API de Araí Usuarios, lo mismo en Autogestión archivo instalacion/servicios_web_config.php.

No pongas las contraseñas en el foro ya que cualquiera que lo vea va a poder acceder a la API.

Referencia:
https://expedientes.siu.edu.ar/docs/guarani/#configurar-el-cliente-de-usuarios-en-siu-guaraní

saludos.
2

Que tal Leonel y Seguio, disculpen la demora, estuvimos realizando cambios en las configuraciones tal cual nos indicaron, les comento que este entorno que estamos probando es de testeo, recién cuando terminemos de realizar las pruebas funcionales iniciaremos con producción.
Les comento que cambiamos el archivo

/data/local/sistema/instalacion/i__desarrollo/p__guarani/rest/arai_usuarios/cliente.ini


[conexion]

to = "https://usuarios-sudocu2022.uner.edu.ar/api/v1/"
.......

Log de Guarani


[Mon Sep 19 08:33:50.022006 2022] [php7:notice] [pid 126] [client 172.29.0.2:33446] Client error: `GET https://usuarios-sudocu2022.uner.edu.ar/api/v1/aplicaciones` resulted in a `401 Unauthorized` response:\n{\n    "mensaje": "autenticaci\\ufffdn cancelada"\n}\n, referer: https://g3gestion319.uner.edu.ar/guarani/3.20/
[Mon Sep 19 08:33:50.026124 2022] [php7:notice] [pid 126] [client 172.29.0.2:33446] guarani_error: Debe configurar el acceso al servicio web de SIU-Arai para obtener los usuarios disponibles. \n[TRAZA]\n\t\n\tfabrica_guarani::error \nArchivo: /data/local/sistema/php/nucleo/_lib/fabrica_guarani.php, lInea 82 \nParametros: \nDebe configurar el acceso al servicio web de SIU-Arai para obtener los usuarios disponibles.\t\t\n\t\t\n\t\n\tguarani_nucleo::error \nArchivo: /data/local/sistema/php/operaciones/matriculas/personas/ci_nav_personas.php, lInea 21 \nParametros: \nDebe configurar el acceso al servicio web de SIU-Arai para obtener los usuarios disponibles.\t\t\n\t\n\tci_nav_personas->ini__operacion \nArchivo: /data/local/sistema/vendor/siu-toba/framework/php/nucleo/componentes/interface/toba_ci.php, lInea 90 \n\t\n\ttoba_ci->inicializar \nArchivo: /data/local/sistema/vendor/siu-toba/framework/php/nucleo/toba_solicitud_web.php, lInea 132 \n\t\n\ttoba_solicitud_web->procesar_eventos \nArchivo: /data/local/sistema/vendor/siu-toba/framework/php/nucleo/toba_solicitud_web.php, lInea 55 \n\t\n\ttoba_solicitud_web->procesar \nArchi...SIGUE..., referer: https://g3gestion319.uner.edu.ar/guarani/3.20/
172.29.0.2 - - [19/Sep/2022:08:33:49 -0300] "GET /guarani/3.20/aplicacion.php?tm=1&tcm=central&ai=guarani||37000023 HTTP/1.1" 200 248623 "https://g3gestion319.uner.edu.ar/guarani/3.20/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36"

EN la Api de arai me esta mostrando el log

10.42.0.25 - - [19/Sep/2022:08:35:29 -0300] "GET /api/v1/aplicaciones HTTP/1.1" 401 49

El usuario que tiene que poder acceder se supone que es el que esta configurado en el idm?

/usr/local/app/idm/instalacion/i__produccion/p__arai_usuarios/rest/servidor_usuarios.ini

[usuario_api]
password_api = "XXXXXX"

Probando el acceso a: https://usuarios-sudocu2022.uner.edu.ar/api/v1/aplicaciones

notamos que no nos toma ninguno de los usuarios configurados, hay algo mas por configurar, las pruebas con curl desde el mismo servidor gurani nos dan:



openssl s_client -connect [b]usuarios-sudocu2022.uner.edu.ar:443[/b]

CONNECTED(00000003)
depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = R3
verify return:1
depth=0 CN = *.uner.edu.ar
verify return:1
---
Certificate chain
 0 s:CN = *.uner.edu.ar
   i:C = US, O = Let's Encrypt, CN = R3
 1 s:C = US, O = Let's Encrypt, CN = R3
   i:C = US, O = Internet Security Research Group, CN = ISRG Root X1
 2 s:C = US, O = Internet Security Research Group, CN = ISRG Root X1
   i:O = Digital Signature Trust Co., CN = DST Root CA X3
---
Server certificate
-----BEGIN CERTIFICATE-----

DATOS DEL CERTIFICADO BORRADOS

-----END CERTIFICATE-----
subject=CN = *.uner.edu.ar

issuer=C = US, O = Let's Encrypt, CN = R3

---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 4585 bytes and written 413 bytes
Verification: OK
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---
---
Post-Handshake New Session Ticket arrived:
SSL-Session:
    Protocol  : TLSv1.3
    Cipher    : TLS_AES_256_GCM_SHA384
    Session-ID: 27EF1338AA8C58702067E9065A0B559C0C2801115D4FB24AADB6F59101B96F21
    Session-ID-ctx: 
    Resumption PSK: 16566AB5D3DDA6EE015252CAC742F421AC5FF96F5A8059D57A48E758EB922584FF5F726B89DAEAD41BD4230A3547A173
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 600 (seconds)
    TLS session ticket:
    0000 - a0 a5 fd 2c b4 9b 03 75-fc f8 d6 8c 66 a4 08 64   ...,...u....f..d
    0010 - 63 51 1d 32 b5 e9 59 18-be 60 b5 6a b9 19 ea 8a   cQ.2..Y..`.j....

    Start Time: 1663588391
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: no
    Max Early Data: 0
---
read R BLOCK
---
Post-Handshake New Session Ticket arrived:
SSL-Session:
    Protocol  : TLSv1.3
    Cipher    : TLS_AES_256_GCM_SHA384
    Session-ID: 6036914C20F9FFD51F703C08629854862BFADF28238A758203A66F2E98146880
    Session-ID-ctx: 
    Resumption PSK: 5AF08AE7B2D791EA6B3F63DC8DB196B3EF05D1A798906FA0868F7F59C31DF2EC5D23DCE3D3B15A2DA5BA1D329DDFA082
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 600 (seconds)
    TLS session ticket:
    0000 - d7 3b e3 59 91 15 6a ab-af 97 0a c2 b2 c9 02 b9   .;.Y..j.........
    0010 - be 23 ae d2 3c 24 e0 e4-ae 32 f2 20 d7 55 33 17   .#..<$...2. .U3.

    Start Time: 1663588391
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: no
    Max Early Data: 0
---
read R BLOCK


Hola Guillermo,

Proba haciendo el siguiente curl:

curl -k -v --anyauth -u '<user>:<pass>' 'https://usuarios-sudocu2022.uner.edu.ar/api/v1/aplicaciones'

Reemplaza y por los valores que tenes configurados en instalacion/i__desarrollo/p__guarani/rest/arai_usuarios/cliente.ini.

El usuario y password de la API de Araí Documentos por lo general se configura en el archivo api/config/parameters.yml, ej:


api:
    url:
        publica: $env(API_URL)$
    log:
        level: $env(API_LOG_LEVEL)$
        handler: $env(API_LOG_HANDLER)$
    basic:
        clientes: '[["huarpe","huarpe"],["documentos","documentos"]]'
        servidor: true

saludos.
2

El usuario que tiene que poder acceder se supone que es el que esta configurado en el idm?

/usr/local/app/idm/instalacion/i__produccion/p__arai_usuarios/rest/servidor_usuarios.ini

Mejor lo podes obtener de Documentos en config/parameters.yml donde dice:


        proveedor_usuarios:
        class: \SIU\DocsApi\Security\UserProviderArai
        params:
            base_uri: 'http://siudev:8287/diddev/usuarios/rest/'
            method: basic
            user: documentos
            password: documentos
        cache_time: 24


    rest_conf:
        auth: basic
        usuario: documentos
        clave: documentos
        arai_sync_key_file: /usr/local/app/config/arai-sync.key
        servidores:
            siu.arai_usuarios.api: { auth: [documentos, documentos, basic], base_uri: 'http://siudev:8287/diddev/api/v1/' }
        clientes:
            huarpe: huarpe

saludos.
2

El problema estaba en la configuracion de variables de entorno, hemos logrado vincular Guarani con Arai Usuarios. Nuestro objetivo ahora esta en continuar con el proceso de firmas de certificados analiticos y/o titulos, para lo cual tenemos un problema por la diferencia de estructura de nuestra base, lo que ocuerre es es que al enviar un analitico para la firma de Guarani a Arai Documentos, nos da el siguiente error en Aria Documentos:



[Tue Sep 20 09:03:56.675336 2022] [php7:notice] [pid 22] [client 10.42.1.157:35954] [2022-09-20 09:03:56] MAIN.ERROR: Error al procesar la creacion del documento: SQL ERROR: SQLSTATE[42703]: Undefined column: 7 ERROR:  column "detalle" of relation "nc_proceso_log" does not exist\nLINE 1: ...oceso, id_codigo_resultado, descripcion, creacion, detalle) \n                                                              ^\nINSERT INTO nc_proceso_log (id_proceso, id_codigo_resultado, descripcion, creacion, detalle) \n                                    VALUES ('1','0', 'Se crea el proceso con id: 1', NOW(), '')\n                RETURNING id_proceso_log; {"titulo-doc":"Diploma - T\xc3\xa9cnico Universitario en Promoci\xc3\xb3n de la Salud - DNI 40955427 - Barnech, Mateo"} []\n
[Tue Sep 20 09:03:56.712927 2022] [php7:notice] [pid 22] [client 10.42.1.157:35954] [2022-09-20 09:03:56] REST-API.INFO: La api retorn\xc3\xb3 un error. Status: 500 [] []\n

[Tue Sep 20 09:03:56.713064 2022] [php7:notice] [pid 22] [client 10.42.1.157:35954] [2022-09-20 09:03:56] REST-API.INFO: array (\n  'error' => 500,\n  'mensaje' => '500 Internal Server Error',\n  'descripcion' => 'Error inesperado al crear un documento',\n) [] []\n

El problema parece estar con que la base no posee un campo, según cotejamos en la base arai_documentos el campo detalle no figura en la tabla nc_proceso_log

Consultando en el repositorio también constatamos que no figura dicho campo

Repositorio Git: https://hub.siu.edu.ar/siu-arai/docs-api/-/blob/master/sql/modelo.sql


CREATE TABLE IF NOT EXISTS nc_proceso_log (
        id_proceso_log                      serial NOT NULL,
        id_proceso                          integer NOT NULL DEFAULT 0,
        id_codigo_resultado                 integer NULL DEFAULT 0,
        creacion                            timestamp with time zone NULL DEFAULT now(),
        descripcion                         character varying(300) NULL,
    CONSTRAINT proceso_log_pkey PRIMARY KEY (id_proceso_log),
      CONSTRAINT fk_proceso_log__id_codigo_resultado
          FOREIGN KEY (id_codigo_resultado)
          REFERENCES nc_codigo_resultado (id_codigo_resultado) MATCH SIMPLE
        ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE INITIALLY IMMEDIATE,
      CONSTRAINT fk_proceso_log__id_proceso
          FOREIGN KEY (id_proceso)
          REFERENCES nc_proceso (id_proceso) MATCH SIMPLE
        ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE INITIALLY IMMEDIATE
);



Hola Guillermo,

Revisa que acá se agrega la columna detalle a la tabla nc_proceso_log. El script sql/modelo.sql es reejecutable, es decir, lo podes volver a ejecutar y solamente te va a agregar lo que falta a la DB.

El error lo esta dando acá, se debiera solucionar ejecutando dicho script.

saludos.
2

Listo, ya pudimos enviar un analítico y un diploma desde Guarani a la bandeja de Huarpe, nos queda por ver las configuraciones de Huarpe para la firma.

Muchas Gracias por la ayuda y ante cualquier consulta quedamos a su disposición

Hola Guillermo! podrias indicar cual fue la solucion?

Hola Claudio,

Creo que con la Respuesta #7 se soluciona.

saludos.