[SOLUCIONADO] Integración siu guarani arai

Buenos días,
Estamos siguiente la documentación para integrar Guarani con Arai,

https://expedientes.siu.edu.ar/docs/guarani/

Luego de Configurar parámetros SAML en SIU-Guaraní el instructivo indica que A partir de este momento, al ingresar al proyecto, este debiera de redirigirnos a la página de login centralizado de la plataforma SIU-Araí.

Pero cuando ingreso a Guarani gestión recibo en apache el siguiente error

[Tue Nov 02 12:03:49.457691 2021] [php7:notice] [pid 27045] [client 10.1.1.102:57126] OneLogin\Saml2\Error: Invalid array settings: sp_acs_url_invalid, sp_sls_url_invalid\n[TRAZA]\n\t

Hola Laura,

te hago dos pedidos:

1.- La version de Arai con la que desean conectar este G3
2.- El contenido del archivo instancia.ini en la instalacion de G3

En particular me interesa el parametro full_url en la seccion de G3… si esta presente o no y que valor tiene.

En caso de no estar presente el parametro, fijate si existe un archivo llamado web_server.ini y su contenido.

Saludos

Hola Richard,

La versión de Arai es la 3.1.1

te paso el contenido del archivo instancia.ini en la instalacion de G3

; Configuracion de la INSTANCIA

base = “guarani_esp”
proyectos = “toba_editor, toba_usuarios, toba_referencia, guarani”
tipo = “normal”

[toba_editor]
path = “/usr/local/proyectos/esp/guarani/vendor/siu-toba/framework/proyectos/toba_editor”
url = “/toba_editor_esp_test”

[toba_usuarios]
path = “/usr/local/proyectos/esp/guarani/vendor/siu-toba/framework/proyectos/toba_usuarios”
url = “/toba_usuarios_esp_test”

[toba_referencia]
path = “/usr/local/proyectos/esp/guarani/vendor/siu-toba/framework/proyectos/toba_referencia”
url = “/toba_referencia_esp_test”

[guarani]
path = “/usr/local/proyectos/esp/guarani”
url = “/guarani_esp_test”
url_pers = “/guarani_pers_esp_test”
full_url = “http://srv-guarani-app-des.unm.edu.ar/guarani_esp_test” # Ej: “http://localhost/gestion/0318

No encontré archivo llamado web_server.ini en la instalación de guarani

gracias!

Buenas tardes Laura.

Viendo el archivo “instalacion.ini” notamos que la variable “nombre” debería coincidir con “proyecto_login” del archivo “saml_onelogin.ini”. En primera instancia, recomendamos modificar esto y hacer que coincidan, y luego nos notifiquen si esto soluciona el problema.

Saludos!

2

Hola Gabriel, modifiqué el nombre en el archivo ininstalacion.ini para que coincida con proyecto login y sigo con el mismo problema.

te paso el log de la aplicación con el error:

-o-o-o-o-o-
Fecha: 10-11-2021 14:28:18
Operacion: Autentificación de Usuarios
Usuario: no_autentificado
Version-PHP: 7.3.27-1~deb10u1
Servidor: srv-guarani-app-des.unm.edu.ar
URI: /guarani_esp_test/
Host: 10.1.32.79

[INFO][toba] Se detecto cambio de operación. Se limpia la memoria de la operacion
[DEBUG][guarani] PUNTO DE MONTAJE: se cargó exitosamente el autoload del punto de montaje proyecto
[DEBUG][guarani] PUNTO DE MONTAJE: se cargó exitosamente el autoload del punto de montaje personalizacion
[INFO][guarani] PUNTO MONTAJE: se cargó la clase extension_toba/guarani_fuente_datos.php del punto de montaje proyecto. El path del mismo es /usr/local/proyectos/esp/guarani/php
[DEBUG][toba] Se cambia el ítem solicitado a =>array (
0 => ‘guarani’,
1 => ‘5000122’,
)
[DEBUG][toba] [SECCION] Iniciando componentes…
[INFO][guarani] PUNTO MONTAJE: se cargó la clase operaciones/login/ci_login.php del punto de montaje proyecto. El path del mismo es /usr/local/proyectos/esp/guarani/php
[DEBUG][toba] componente(5000225): [callback][ ini__operacion ]
[ERROR][toba] toba_error_seguridad: Error Interno La configuracion de seguridad requiere la existencia de archivos certificado y clave privada para el SP
[TRAZA]


  • toba_autenticacion_saml_onelogin->__construct
    Archivo: /usr/local/proyectos/esp/guarani/vendor/siu-toba/framework/php/nucleo/lib/autenticacion/toba_autenticacion_saml_onelogin.php, línea 46

  • toba_manejador_sesiones->get_autenticacion
    Archivo: /usr/local/proyectos/esp/guarani/php/operaciones/login/ci_login.php, línea 67

  • ci_login->ini
    Archivo: /usr/local/proyectos/esp/guarani/vendor/siu-toba/framework/php/nucleo/componentes/interface/toba_ci.php, línea 94

  • toba_ci->inicializar
    Archivo: /usr/local/proyectos/esp/guarani/vendor/siu-toba/framework/php/nucleo/toba_solicitud_web.php, línea 132

  • toba_solicitud_web->procesar_eventos
    Archivo: /usr/local/proyectos/esp/guarani/vendor/siu-toba/framework/php/nucleo/toba_solicitud_web.php, línea 55

  • toba_solicitud_web->procesar
    Archivo: /usr/local/proyectos/esp/guarani/vendor/siu-toba/framework/php/nucleo/toba_nucleo.php, línea 96

  • toba_nucleo->acceso_web
    Archivo: /usr/local/proyectos/esp/guarani/www/aplicacion.php, línea 33


[DEBUG][toba] Mensaje a usuario: Error Interno

Hola Laura,

En arai-usuarios tenemos esta documentación que explica como configurar de forma generica aplicaciones Toba que actúen como SP. En particular el error que les arroja es que ese SP no tiene su par público/privado de certificados y/o no desactivaron esa opción vía “verifyPeer=0” (cada proyecto tiene sus formas y a veces lo desactivan, aunque no sea lo más recomendable).

¿Pueden revisar este punto?

Hola Sergio, gracias por tu respuesta.

Hicimos las dos cosas, probamos con el parámetro “verifyPeer=0” o con ese parámetro en 1 y los certificados configurados de la siguiente manera en el archivo de saml_login:

x509cert=/opt/certificates/certSP.crt
privateKey=/opt/certificateKeys/keySP.key

De cualquiera de las dos formas recibimos el error

Invalid array settings: sp_acs_url_invalid, sp_sls_url_invalid

cuando ingresamos a la url

también modificamos la url que tenía guiones bajos porque leímos que eso podía ser un inconveniente pero seguimos igual.

Muchas gracias!

Hola Laura,

de la pagina que les paso Sergio me interesaria que puedan acceder a la url de la metadata del SP.

Deberia devolverles un XML como en la pagina de la documentacion, en particular necesito que revises estas dos lineas:


<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="http://rrhh.bnc.com/?sls"/>
...
<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="http://rrhh.bnc.com/?acs" index="1"/>

Fijate que el atributo Location tenga una URL valida, si no podes recuperar el XML porque se genera un error… lo que te diria es que simplemente modifiques temporalmente esta variable para que la informacion quede registrada en el log de Guarani.

Otra opcion es en la clase contexto_ejecucion_guarani_pers redefinir el metodo conf__inicial de la siguiente manera:


function conf__inicial()
{
     parent::conf__inicial();
     toba::manejador_sesiones()->get_autenticacion()->set_modo_debug(true);
}

Por ahi debas invertir el orden de las sentencias, no estoy muy seguro que tenga G3 en el contexto de ejecucion… pero basicamente con eso modificas el valor de la variable que te pase antes.

Luego de ello, deberias poder ver la informacion de la que dispone la clase que autentica contra SAML en el log

Saludos

Hola Laura, agrego a lo de Richard:

También revisa en instalacion/saml_onelogin.ini que la directiva certFile apunte a un archivo con los certificados correctos:


certFile = "/usr/local/proyectos/esp/guarani/instalacion/certificado_idp.crt"

Quizás te podes copiar el mismo que usa Huarpe (archivo config/idp.crt), debe tener el siguiente formato:


-----BEGIN CERTIFICATE-----
MIIDuTCCAqGgAwIBAgIULvhdIOiFGCRx2aD8EmcoAiB2FT8wDQYJKoZIhvcNAQEL
BQAwbDELMAkGA1UEBhMCQVIxETAPBgNVBAgMCE1pc2lvbmVzMRcwFQYDVQQHDA5D
b2xvbmlhIEF1cm9yYTEMMAoGA1UECgwDQ0lOMQwwCgYDVQQLDANTSVUxFTATBgNV
BAMMDGlkcC11c3VhcmlvczAeFw0yMDA5MjgxOTI0MzBaFw0zMDA5MjgxOTI0MzBa
MGwxCzAJBgNVBAYTAkFSMREwDwYDVQQIDAhNaXNpb25lczEXMBUGA1UEBwwOQ29s
b25pYSBBdXJvcmExDDAKBgNVBAoMA0NJTjEMMAoGA1UECwwDU0lVMRUwEwYDVQQD
DAxpZHAtdXN1YXJpb3MwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD1
c9PWbJ06yHXCh3yygrrs1HjypW9GhOsbXnPhd2BgapYsZ8tTA/j2VXGeVFAUassA
pkPmlCj/bwtQ2FxMcxvqh1/e3dh03qlq2QbSTXNTYucMadx65yCsG7l/DWfizk0x
mjQuT/cpj1PjILLc5mFRZtFDdL/IsZCB6pTGtWjQtrVDnEUFFH/I/HS99Cy93CzZ
Ys/TVKcCL6vg/dNFrMQllg6pXxBrDOMYmPCJEJfO9uEKwWDUWS4HbuIbIpCj2WP7
y7wjH4w+DwM17mlKe9aOEa6KTCZD7bjiUfFrTuXHiB0ZIazv/rYqtYaQp9qlPQnm
DnQmrjuYV6do9jHvspdhAgMBAAGjUzBRMB0GA1UdDgQWBBQ1Yp/ZNyK51fds3aWq
GYiZp0A+dTAfBgNVHSMEGDAWgBQ1Yp/ZNyK51fds3aWqGYiZp0A+dTAPBgNVHRMB
Af8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBo+km1G89woum718lqmuQfTtPo
zz5TOcwQdeV8ccWgjWLYceP0KaPgG4tXJk/BIc+3EZg/U9FS81PqyVvYMUDfNL3D
rYZ/VO5f85t2gVsl/KUiQqO4NdGd0DJjtmdqsiiInQTObzRqRiWZZRfKBSickOyD
bazpxOxgwqqh8njZ4I7Kh3lK1NOeltT7f6VT23vBwpmBoyNHVXmCwv6NpoH3DBEz
Emt7SgkZRax+IOH2tRMfI/g3MxHFK7G/eBtKC4jGxOMFJsxHb/hzgG9Td9ZTG2/9
pxAt3Lw2FiQSsJjMgNE/Ec2vi96DEiQQgKuLke9rYYxtBdntd8T4HcZYz6VL
-----END CERTIFICATE-----

También veo varios post diciendo que SAML 2.0 no acepta guiones bajos en las URLs:

It can happen when there are underscores _ in the domain name. Domains with underscores not allowed as per SAML 2.0 specifications.
Hi guys, I solved my problem removing the underscore charactere "_" from my url, domains like my_domain.com is not allowed by saml2.

saludos.
4

Buen día, Ricardo y Leonel.

Estoy retomando este tema de Laura, ya que se encuentra de vacaciones.

Pudimos avanzar un poco mas ya que teníamos algunos errores en los archivos de configuración,
saml_onelogin.ini
la variable name del [idp] estaba mal y desactivamos el verifyPeer asignando le 0

instalacion/ i__produccion/instancia.ini
full_url lo teníamos apuntado a la aplicación y no a la url del SP

Una ves realizado estos cambios dejamos de tener problemas con el Invalid array settings: sp_acs_url_invalid, sp_sls_url_invalid, pero ahora al tratar de ingresar por el portal a la aplicación me redirige a https://portaltest.unm.edu.ar/idp/module.php/arai/loginuserpass.php y me aparece una pagina con la leyenda “Ocurrió un error”

Ahora voy a verificar la configuración de cliente de usuarios en SIU-Guaraní Gestión que creo que puede esta ahí el problema, pero no quería dejar actualizar el post.

Richard.
Te copio el XML que obtengo al conectarme a “https://srv-guarani-app-des2.unm.edu.ar/guaraniesptest/?metadata

<md:EntityDescriptor xmlns:md=“urn:oasis:names:tc:SAML:2.0:metadata” validUntil=“2021-11-27T11:43:29Z” cacheDuration=“PT604800S” entityID=“https://portaltest.unm.edu.ar/guaraniesptest/default-sp”>
<md:SPSSODescriptor AuthnRequestsSigned=“false” WantAssertionsSigned=“false” protocolSupportEnumeration=“urn:oasis:names:tc:SAML:2.0:protocol”>
<md:SingleLogoutService Binding=“urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect” Location=“https://portaltest.unm.edu.ar/guaraniesptest/?sls”/>
md:NameIDFormatdefaultUserAccount</md:NameIDFormat>
<md:AssertionConsumerService Binding=“urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST” Location=“https://portaltest.unm.edu.ar/guaraniesptest/?acs” index=“1”/>
</md:SPSSODescriptor>
</md:EntityDescriptor>

Leonel.

El certificdo que pusimos en certfile lo copiamos de la instalacion de Mapuche que ya esta trabajando con Arai-Usuarios por lo que debería estar bien.

Saludos y gracias por la ayuda…

Hola Juan buen dia,

No problem…

instalacion/ i__produccion/instancia.ini full_url lo teníamos apuntado a la aplicación y no a la url del SP
El parametro [b]full_url[/b] tiene que apuntar a la URL navegable de la aplicacion, internamente el framework se encarga de armar la config para el SP.
Una ves realizado estos cambios dejamos de tener problemas con el Invalid array settings: sp_acs_url_invalid, sp_sls_url_invalid, pero ahora al tratar de ingresar por el portal a la aplicación me redirige a https://portaltest.unm.edu.ar/idp/module.php/arai/loginuserpass.php y me aparece una pagina con la leyenda "Ocurrió un error"
Revisaria en el log del IDP.. fijate si cuando te hace la redireccion aparece un msg "METADATA NOT FOUND".. en dicho caso vas a tener que ajustar los datos de la pestaña SAML en la operacion de Aplicaciones en Arai-Usuarios, el dato correspondiente a "EntityID" tiene que coincidir con lo que envia el SP (en este caso G3).
Te copio el XML que obtengo al conectarme a "https://srv-guarani-app-des2.unm.edu.ar/guaraniesptest/?metadata"

<md:EntityDescriptor xmlns:md=“urn:oasis:names:tc:SAML:2.0:metadata” validUntil=“2021-11-27T11:43:29Z” cacheDuration=“PT604800S” entityID=“https://portaltest.unm.edu.ar/guaraniesptest/default-sp”>
<md:SPSSODescriptor AuthnRequestsSigned=“false” WantAssertionsSigned=“false” protocolSupportEnumeration=“urn:oasis:names:tc:SAML:2.0:protocol”>
<md:SingleLogoutService Binding=“urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect” Location=“https://portaltest.unm.edu.ar/guaraniesptest/?sls”/>
md:NameIDFormatdefaultUserAccount</md:NameIDFormat>
<md:AssertionConsumerService Binding=“urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST” Location=“https://portaltest.unm.edu.ar/guaraniesptest/?acs” index=“1”/>
</md:SPSSODescriptor>
</md:EntityDescriptor>

Barbaro… fijate que en el XML tenes todos los datos que deben ir en la pestaña SAML que te mencionaba mas arriba… con eso calculo que deberia funcionar correctamente.
Retomando lo que te decia anteriormente… en este caso en instancia.ini yo definiria el parametro asi:


full_url="https://portaltest.unm.edu.ar/guaraniesptest"

Saludos

Hola Richard

Efectivamente el error que loguiaba en el IDP es METADATA NOT FOUND.
Comparando lo que me muestra el XML puede ajustar la pestaña de SAML en Arai-usuarios y quedo funcionando.
.
Solo una aclaración por si alguien lo lee.

La aplicacion (Gurarani) esta en https://srv-guarani-app-des2/guaranitest
El SP es https://portaltes.unm.edu.ar

  1. En el archivo instancia.ini volví ha poner la variable full_url = https://srv-guarani-app-des2/guaranitest ← Es la URL de la aplicación Guarani.
  2. consulte el https://srv-guarani-app-des2/guaranitest/?metadata y ajuste la solapa SAML de la aplicación en Arai-usuarios.
  3. modifique instalacion/i__desarrollo/p__guarani/rest/arai_usuarios/cliente.ini
    to = “https://portaltest.unm.edu.ar/api-usuarios/v1/usuarios
    auth_tipo = basic
    auth_usuario = usuario
    auth_password = contraseñ
  4. modifique el secret.sh y cargue el nuevo usuario y contraseña
  5. recree el secret.sh
  6. baje y subir el stack de usuarios.y SIU-Guarani.

Saludos Y Gracias…
Juan.-

url
Active