Problemas con saml al Instalar en Produccion 3.14

Hola. Buenos dias.
Estamos actualizando la version en producción de Mapuche de 3.11 a 3.14 y estamos teniendo problemas con el saml. Estamos viendo que en el nuevo archivo saml_onelogin.ini se agregaron cosas que no estaban en la implementacion de la 3.11

Esos certificados no los tenemos. El verifyPeer ahora lo pusimos en en false

Asi estaba originalmente.

;verifyPeer=true
;x509cert=/opt/certificates/certSPExample.cert
;privateKey=/opt/certificates/keySPExample.key

Los errores que nos dan son

[Fri Oct 29 11:01:59.463468 2021] [php7:notice] [pid 517115] [client xxx.xxx.xx.xx:55612] toba_error_seguridad: Error Interno La configuracion de seguridad requiere la existencia de archivos certificado y clave privada para el SP\n[TRAZA]\n\t\n\ttoba_autenticacion_saml_onelogin->__construct \nArchivo: /var/siu_3140/mapuche/vendor/siu-toba/framework/php/nucleo/lib/autenticacion/toba_autenticacion_saml_onelogin.php, lInea 46 \n\t\n\ttoba_manejador_sesiones->get_autenticacion \nArchivo: /var/siu_3140/mapuche/php/comunes/login/ci_login.php, lInea 42 \n\t\n\tci_login->ini \nArchivo: /var/siu_3140/mapuche/vendor/siu-toba/framework/php/nucleo/componentes/interface/toba_ci.php, lInea 94 \n\t\n\ttoba_ci->inicializar \nArchivo: /var/siu_3140/mapuche/vendor/siu-toba/framework/php/nucleo/toba_solicitud_web.php, lInea 132 \n\t\n\ttoba_solicitud_web->procesar_eventos \nArchivo: /var/siu_3140/mapuche/vendor/siu-toba/framework/php/nucleo/toba_solicitud_web.php, lInea 55 \n\t\n\ttoba_solicitud_web->procesar \nArchivo: /var/siu_3140/mapuche/vendor/siu-toba/framework/php/nucleo/toba_nucleo.php, lInea 96 \n\t\n\ttoba_nucleo->acceso_web \nArc…SIGUE.
Y el que aparece cuando te deja loguearte (desactivando como dice en el foro “verifyPeer = 0”) es:

[Fri Oct 29 10:41:37.426426 2021] [php7:notice] [pid 516644] [client 10.4.xx.xxx:61118] PHP Notice: Undefined index: sAMAccountName in /var/siu_3140/mapuche/vendor
/siu-toba/framework/php/nucleo/lib/autenticacion/toba_autenticacion_saml_onelogin.php on line 190, referer: https://simplesaml.xxx.xxx.ar/
[Fri Oct 29 10:41:37.427111 2021] [php7:notice] [pid 516644] [client 10.4.xx.xxx:61118] El usuario SAML ‘’ no existe en la instancia toba, referer: https://simplesaml.xxx.xxx.ar/
Si alguno ya le paso y nos puede dar una mano.
Llegamos a ingresar el usuario y clave por saml y luego aparece una pantalla de error como que los toma en blanco. Adjunto pantalla.
Gracias.

Graciela


pantallaerror2.png

pantallaerror2.png

Hola, fijate si poniendo las variables así por lo menos lo pueden hacer andar, después ajustan el tema de los certificados:

[basicos]

verifyPeer=false

[sp]

x509cert=‘’
privateKey=‘’

Saludos

Gabriel

O probá lo mismo que te mandé comentando verfyPeer:

;verifyPeer=false

Hola.
Nosotros Probamos con verifyPeer= true, false, comentado, sin comentar. En ningun caso trae el sAMAccountName despues de pasar por SAML. Lo que no hicimos es
[sp]

x509cert=‘’
privateKey=‘’

Ahora vamos a probar eso a ver que pasa. Es decir con verifyPeer = false y en [sp]
x509cert=‘’
privateKey=‘’
Pero entiendo que se esta en false no los deberia ni siquiera tener en cuenta. Agregue una segunda pantalla que aparece cuando le damos enter en la primera que habia adjuntado.

PROBADO y DA EL MISMO ERROR.


pantallaerror3.png

pantallaerror3.png

Fijate antes que nada ejecutando esta consulta:

SELECT * FROM toba_mapuche.apex_usuario;

Para saber si te migró los usuarios correctamente.

Yo creo que el error viene del lado de SAML igual, porque te aparece el uid en ‘’, que valores tienen en estas variables?:

[basicos]
atributo_usuario =
permite_login_toba=

[basicos]
;atributo_usuario = uid
atributo_usuario = sAMAccountName
permite_login_toba = 0
verifyPeer = false

Buenas tardes:
Por lo que se entiende ustedes tenían trabajando a Mapuche versión 11 con SAML. Si esto es así contra que idp se está logueando? los archivos de crt y key los tienen que obtener desde la instalación del idp si el idp es la versión de expediente digital integrado versión dockerizada (es la que usamos nosotros).
Si el idp está en la otra versión versión si mal no recuerdo había que métodos en araí que se tenían que ejecutar para que se actualice la sincronización de aplicaciones.

Saludos,
Marcelo.

Hola Marcelo, saml_onlogin con un idp propio. No usamos Arai.
De todos modos gracias.

Lo del certificado ya lo solucionaron, el tema es que tenés un segundo error que es que la librería onelogin no recupera el valor
de sAMAccountName.

La librería onelogin va cambiando y a veces requiere parámetros adicionales, depende mucho del idp que usen. Tienen que empezar a investigar los valores que va arrojando las variables en siu-toba/framework/php/nucleo/lib/autenticacion/toba_autenticacion_saml_onelogin.php , haciendo var_dump por ejemplo , para saber dónde te está pinchando.

Hola Graciela,

Los certificados para el SP (en este caso Mapuche) los pueden generar, la idea es que se le de un mayor marco de seguridad a la comunicacion entre SP e IDP y que ambos extremos puedan verificar que la informacion no fue alterada en el transcurrir del canal. De todas maneras por lo que lei despues esa parte la solucionaron.

[Fri Oct 29 10:41:37.426426 2021] [php7:notice] [pid 516644] [client 10.4.xx.xxx:61118] PHP Notice: Undefined index: sAMAccountName in /var/siu_3140/mapuche/vendor /siu-toba/framework/php/nucleo/lib/autenticacion/toba_autenticacion_saml_onelogin.php on line 190, referer: https://simplesaml.xxx.xxx.ar/ [Fri Oct 29 10:41:37.427111 2021] [php7:notice] [pid 516644] [client 10.4.xx.xxx:61118] El usuario SAML '' no existe en la instancia toba, referer: https://simplesaml.xxx.xxx.ar/

El tema es asi, Toba requiere que el usuario autenticado pertenezca a la instancia en que esta corriendo el proyecto/modulo/sistema etc (en este caso Mapuche)… esto es para que no ingresen usuarios que no tienen acceso solo por estar autenticados en el IDP.

Entonces ustedes en el IDP seguramente tienen algun campo en el cual se almacena el identificador de usuario que usa en los diversos sistemas para dicha persona… puede que sea uno solo o mas (como en el caso de Arai), ahora… lo que necesitan es hacerle llegar a Toba ese identificador de usuario… el cual matchea con el ID que se encuentra dentro de la instancia de Toba, si venian utilizando SAML con la version anterior de Mapuche seguramente no tengan inconveniente ya que la informacion esta en el IDP.

Por defecto, la instalacion de Toba busca el campo “defaultUserAccount”… podrian cambiarlo a “uid” o el campo que ustedes envien en el Token SAML con dicha informacion, lo importante sea cual sea el campo es que la informacion este presente en el Token y coincida con lo que esta almacenado en la instancia de Toba, de lo contrario van a recibir el mensaje que se veia en la imagen.

Por lo que se ve en el error… pareciera que el campo configurado “sAMAccountName” no se encuentra en el Token SAML… revisaria que el mismo este presente o si es el nombre correcto.

Saludos

Hola Richard,
Ya probamos con SAML-Trace en el browser y los campos están. Ademas no es la única aplicación que autentica usando SAML y el campo sAMAccountName. Los campos uid o defaultUserAccount no los traemos ya que no los tenemos en Active Directory.

Lo que no entendemos bien es esto: “Toba requiere que el usuario autenticad pertenezca a la instancia en que está corriendo el proyecto/modulo/sistema etc (en este caso Mapuche)”

Por alguna razón pareciera que la autenticación usando sAMAccountName no estaría funcionando. Pero el campo viene con datos desde SimpleSAML.

Muchas gracias por tu ayuda!
Quedamos a la espera.
Saludos cordiales.

Hola Silvia,

bien, entonces el despiole viene por otro lado… recien Sergio me hizo notar algo que se me paso por encima en el mensaje anterior y que puede estar jodiendo en todo esto.
Hace un par de versiones se incorporo un mecanismo para filtrar los campos del token SAML que se debian persistir en sesion, de forma de acotar y no guardar cosas de mas… sin embargo eso genero una lista blanca que esta dejando fuera este campo que utilizan, aunque voy a agregar el mismo para la proxima version… mientras lo pueden solucionar de la siguiente manera (si es la causa):

En el archivo instalacion/instalacion.ini, generen una entrada token_atributos_extra en la cual listen (separados por coma) aquellos campos del Token SAML que necesitan mantener, por ej:


token_atributos_extra="sAMAccountName"

Si el campo se estaba filtrando por dicho mecanismo erroneamente, con dicha linea deberian de poder autenticar como lo hacian antes.

Lo que no entendemos bien es esto: "Toba requiere que el usuario autenticad pertenezca a la instancia en que está corriendo el proyecto/modulo/sistema etc (en este caso Mapuche)"

Me referia a que tengan una cuenta de usuario dada de alta con el mismo identificador en la instancia donde corre Mapuche, normalmente eso lo hacen via toba_usuarios… ya que quizas manejen personas separadas los usuarios del IDP y del modulo.

Saludos

Acabo de pasar lo que nos comentas a los técnicos para que hagan la prueba, ni bien me pasen los resultados les aviso.
Gracias nuevamente!
Silvia

Buenas
Les comento el problema. El framework toba no está pudiendo levantar la variable sAMAccountName.
A raíz del ultimo comentario del foro donde nos avisaron que había una lista de variables aceptadas y que sAMAccountName no era una, se agregó como nos comentaron:

token_atributos_extra=“sAMAccountName” en el archivo instalacion.ini

Persistiendo el error se hizo una prueba con un usuario específico:

Se agregó el nombre del usuario que iba a realizar la prueba en el campo uid de dicho usuario en ActiveDirectory
Se cambió atributo_usuario = sAMAccountName por atributo_usuario = uid en el archivo saml_onelogin
Ahi pudimos ingresar a la aplicación con ese usuario.
El problema es este: Los datos del usuario que probó se agregaron al campo uid manualmente para hacer la prueba y corroborar que el error es que el framework Toba no estaría levantando el campo sAMAccountName, pero hay que buscar alguna solución ya que ningún usuario del MPF tiene el campo uid con datos.

Gracias y Saludos!

Releyendo todos los mensajes, cabe aclarar que hasta la versión 3.11.1 no teniamos problemas. Incluso ahora tenemos esa versión ejecutando con el mismo SAML y funciona correctamente y toma el atributo “sAMAccountName”. Porque todavia no la sacamos de linea. El problema surge con la versión 3.14 y no hicimos por nuestra parte ningún cambio en SAML.

Cabe aclarar que con la versión 3.11.1 el atributo “sAMAccountName” se está utilizando con el mismo simplesaml sin inconvenientes. La tenemos todavía en linea y funciona correctamente. El problema se da con la versión 3.14.

Cabe aclarar que en la versión 3.11.1 estamos utilizando el atributo sAMAccountName sin inconvenientes. No hicimos ningun cambio en saml. Todavia tenemos esa aplicación en linea en el otro servidor y funciona correctamente. El problema se inicia en la versión 3.14. Lo que agregamos “token_atributos_extra” haciendo un grep en toda la aplicación no lo utiliza. Si por ejemplo id_grupo_desarrollo o session_name por lo que deduzco que deberia declararse con otro nombre en el archivo instalacion.ini para que lo tome.