[SOLUCIONADO] funcionalidad de cuentas por usuario - integrar a app no SIU

Buenas, entendemos que la funcionalidad de cuentas por usuario solo se integran para los sistemas SIU. Es correcto esto?

Tenemos una app como nextcloud, que en la conf del plugins del saml, solo permite mappear un atributo del IDP contra ( y solamente contra) el UID del usuario del nextcloud.

Esto quiere decir que, si o si un atributo de los usuarios del ARAI debe ser (mail. uid, etc) el mismo valor del usuario (uid) del nextcloud.

En nuestro caso, como se puede ver en la imagen, ya tenemos creados usuarios nextcloud, que no se corresponden con ningún atributo de arai-usuarios. Entendemos que la solución sería, al dar de alta la cuenta en arai usuarios en la seccion cuentas la cuenta de nextcloud, por ejemplo en la imagen el usauario de arai “luis luque” tiene la cuenta en NC “hluque”.

La cuestión es que, el IDP no tiene en cuenta esta conf al momento del intercambio de los metadatos contra el SP, siempre le pasa el UID u otro atributo (mail, si es que se configuró asi).
Podemos ver que los atributos son

{
    "Attributes": {
        "uid": [
            ""
        ],
        "cn": [
            "luis luque"
        ],
        "sn": [
            "luque"
        ],
        "givenName": [
            "luis"
        ],
        "jpegPhoto": [
            "http://usuarios.unne.edu.ar/gestion/resources/img/usuario_foto/usuario_generico.png"
        ],
        "mail": [
            "hluque@unne.edu.ar"
        ],
        "uniqueIdentifier": [
            "hluque"
        ],
        "accessTo": [
            "siu_arai-usuarios-1.siu-arai-usuarios-gestion",
            "docs.unne.edu.ar",
            "siu_huarpe-1.siu-huarpe",
            "virtual-moodle.unne.edu.ar",
            "docs-test.unne.edu.ar"
        ],
        "appLauncherData": [
            "{\"aplicaciones\":[{\"url\":\"http:\\/\\/usuarios.unne.edu.ar\\/gestion\",\"etiqueta\":\"ARAI-Usuarios\",\"descripcion\":\"Gesti\\u00f3n de usuarios (Backend)\",\"appUniqueId\":\"siu_arai-usuarios-1.siu-arai-usuarios-gestion\",\"icono_url\":\"http:\\/\\/usuarios.unne.edu.ar\\/gestion\\/resources\\/img\\/aplicaciones_iconos\\/siu_arai-usuarios-1.siu-arai-usuarios-gestion.png\"},{\"url\":\"https:\\/\\/docs.unne.edu.ar\",\"etiqueta\":\"Nextcloud\",\"descripcion\":\"Nube Rectorado\",\"appUniqueId\":\"docs.unne.edu.ar\",\"icono_url\":\"http:\\/\\/usuarios.unne.edu.ar\\/gestion\\/resources\\/img\\/aplicaciones_iconos\\/docs.unne.edu.ar.png\"},{\"url\":\"http:\\/\\/huarpe.unne.edu.ar\",\"etiqueta\":\"SIU-Huarpe\",\"descripcion\":\"Portal de autogesti\\u00f3n\",\"appUniqueId\":\"siu_huarpe-1.siu-huarpe\",\"icono_url\":\"http:\\/\\/usuarios.unne.edu.ar\\/gestion\\/resources\\/img\\/aplicaciones_iconos\\/siu_huarpe-1.siu-huarpe.png\"},{\"url\":\"http:\\/\\/virtual-moodle.unne.edu.ar\\/auth\\/saml2\\/login.php?wants&idp=297bafffe77a86ad900a72007299f8fa&passive=off\",\"etiqueta\":\"Virtual Moodle\",\"descripcion\":\"Virtual Moodle\",\"appUniqueId\":\"virtual-moodle.unne.edu.ar\",\"icono_url\":\"http:\\/\\/usuarios.unne.edu.ar\\/gestion\\/resources\\/img\\/aplicaciones_iconos\\/virtual-moodle.unne.edu.ar.png\"},{\"url\":\"http:\\/\\/10.20.11.222:8092\\/\",\"etiqueta\":\"docs test\",\"descripcion\":\"docs test\",\"appUniqueId\":\"docs-test.unne.edu.ar\",\"icono_url\":\"http:\\/\\/usuarios.unne.edu.ar\\/gestion\\/resources\\/img\\/aplicaciones_iconos\\/docs-test.unne.edu.ar.png\"}],\"usuario_id\":\"hluque\",\"usuario_nombre\":\"luis luque\",\"usuario_foto\":\"http:\\/\\/usuarios.unne.edu.ar\\/gestion\\/resources\\/img\\/usuario_foto\\/usuario_generico.png\",\"perfil_url\":\"http:\\/\\/huarpe.unne.edu.ar\\/perfil\"}"
        ],
        "userAccounts": [
            ""
        ]
    },
    "Authority": "usuarios_arai",
    "AuthnInstant": 1572610727,
    "Expire": 1572639527
}

y vemos que en la seccion userAccounts, no trae los valores.

Creemos que las alternativas son:

[ol]- Que funcione la sección de cuentas de ARAI USUARIOS, osea que se reemplace el UID de acuerdo al valor de la cuenta configurado para la app que se invoca desde huarpe. Esa es la idea no?

  • Modificar el codigo del plugin de NC, para que considere el atributo, mail por ej. De este manera podriamos mappear el mail de ARAI contra el mail de NC, sin necesidad de modificar nada del UID del NC, de esta manera deberíamos cargar el mail de los usuarios del arai en la atributo mail del NC. [/ol]

Esperamos se comprenda la situación y aguardamos sus comentarios.


usuarios-ARAI.png

usuarios-ARAI.png

Hola Sergio! Te voy respondiendo abajo

En principio, sí. La idea es que resuelva el problema de tener un Pilaga/Diaguita/Mapuche andando con cuentas de usuarios y con diferentes identificadores. Permite crear una especie de mapeo… es por ello que la cuenta representa un identificador mas de uso interno por la aplicación Toba (en especial las ya existentes, donde es engorroso cambiar sus identificadores internos). No quiere decir que no lo usen para otros sistemas, pero ya esos sistemas han de ser sensibles a su posible existencia o no… (las cuentas por usuario no son obligatorias crear!).

Bien, tratemos de aclarar esta parte. Hoy, en araí-usuarios el atributo unívoco es uniqueIdentifier que tiene seguro el identificador del usuario con el que realiza login, es un valor que SIEMPRE se envía vía token SAML , es un valor que recomendamos utilizar para mapear las aplicaciones (entiendo que en tu app podes configurar que lea desde un atributo del saml, y lo mapeará internamente con el campo uid… similar al Mapping IDP en Moodle.

Es así. Es bueno el ejemplo, pues si pueden lograr matchear estos usuarios con identificadores abreviados a los usuarios “reales” en arai-usuarios, los pueden agregar como cuentas. Es así que en el token SAML les aparecerá hoy en un atributo userAccounts (ojo que este permite múltiples cuentas por usuario. En la rama 2.2.x la cuenta por defecto se copia al atributo uid del token SAML).

Si cuando registran el SP (Nextcloud) en el IDP (arai-usuarios), consignan una aplicación (dan de alta vía ABM, agregan el atributo appUniqueId en la entrada service_provider del config/idp.yml ), pueden corroborar que les mandará el atributo userAccounts debidamente cargado de datos o cuentas en la aplicación coincidente con lo que el usuario tiene definido, y siempre y cuando entren a ese SP; si van a otro y hacen el dump del token SAML recibirán las cuentas de ese otro SP… por eso el filtro por appUniqueId).

  1. La sección de cuentas funciona. Hoy si ingresas a un SP registrado y que está dado de alta como aplicación, siempre para ese SP se le envía en el token SAML las cuentas que posee el usuario. Así operan hoy las aplicaciones Toba hechas por el SIU. Nota de color: uid se completa hasta la versión 2.2.x con la cuenta para ese usuario, cuando accede a un SP registrado como aplicación (si tiene mas de una cuenta, tienen una opción para establecer la cuenta por defecto, con lo cual uid tendrá la cuenta por defecto).

  2. ¿No pueden hacer uso de atributo uniqueIdentifier y mappearlo en NC? Adjunto captura, aclaro que desconozco la herramienta… de todas formas podría ser otro campo, abajo mas detalles.

Ahora un pequeño update, en la próxima versión 2.3 de SIU-Araí: Usuarios estaremos corrigiendo este comportamiento extraño que tiene hoy el atributo uid dentro del token SAML:

[ol]- se agrega un atributo defaultUserAccount que contiene la cuenta del usuario para el SP desde el cual está accediendo en ese momento. Si tiene mas de una cuenta, todas aparecen como hasta ahora en userAccounts

  • el atributo uid en el token SAML dejará de tener este comportamiento extraño, para pasar a mostrar el valor “real” que tiene dicho campo en la misma base de datos LDAP, visible en el campo uid del ABM de usuarios.
  • el resto de los atributos se mantienen “intactos”[/ol]

Este parece un pequeño cambio, pero va a tener un gran impacto a nivel mapeo. Mi recomendación es que siempre que puedan utilicen uniqueIdentifier, es mas estable, hasta ahora no cambió, contiene lo que hoy usan como identificador de login los usuarios… a futuro el campo uid internamente puede ser transformado a un valor tipo UUID v4 en vista de mejores prácticas.

Saludos!

Sergio, gracias por la respuesta, muy claro.
De acuerdo a lo que nos has comentado, funciono correctamente con el atributo uniqueIdentifier .

Con este atributo y gestionando las cuentas de usuario/app con Arai Usuarios pudimos integrar con Moodle, Nextcloud y GLPI (apache-mellon).

Saludos.

Excelente!!

Está muy bueno que puedan compartir la experiencia, que otros puedan ir viendo como pueden expandir la base de aplicaciones integradas.

Saludos!

Hola:
Excelente trabajo!!!.
Estamos en el mismo proceso de integración con los sistemas, en nuestro caso serían el GLPI y OWNCLOUD. Tendrán documentación referido al proceso de integración realizado. Desde ya muchas gracias.
Saludos.