SIU-Guaraní
Configurar SIU-Guaraní
En este apartado se presenta la documentación para preparar una instalación de SIU-Guaraní existente para que pueda interoperar con SIU-Araí.
Registrar SIU-Guaraní como Service Provider en Araí Usuarios
Registrar SIU-Guaraní Gestión
Para hacerlo debe acceder al manejador de usuarios y seguir estos pasos:
- Ingrese a Araí-Usuarios (user
admin
y password seteado anteriormente) - Dirigirse al item Aplicaciones
- Presionar el botón
Agregar +
- Completar de la siguiente manera el tab
Datos Generales
- Url: https://universidad.edu.ar/guarani-gestion
- Nombre: SIU-Guaraní Gestión
- Descripción: Módulo de Gestión de SIU-Guaraní
- Cómo ícono colocar esta imagen: https://hub.siu.edu.ar/siu/expedientes/-/blob/master/var/logos/guarani.png
- Completar de la siguiente manera el tab
SAML
- Chequear la opción
Activo
- Entity Id: https://universidad.edu.ar/guarani-gestion/default-sp
- Assertion Consumer Serv.: https://universidad.edu.ar/guarani-gestion/?acs
- Single Logout Serv.: https://universidad.edu.ar/guarani-gestion/?sls
- Chequear la opción
- Presionar el bot ón
Guardar
La URL
https://universidad.edu.ar/guarani-gestion
usada como ejemplo es la url de acceso a la instalación existente de SIU-Guaraní Gestión
Registrar SIU-Guaraní Autogestión
Para hacerlo debe acceder al manejador de usuarios y seguir estos pasos:
- Ingrese a Araí-Usuarios (user
admin
y password seteado anteriormente) - Dirigirse al item Aplicaciones
- Presionar el botón
Agregar +
- Completar de la siguiente manera el tab
Datos Generales
- Url: https://universidad.edu.ar/guarani-autogestion/acceso?auth=saml
- Nombre: SIU-Guaraní Autogestión
- Descripción: Módulo de Autogestión de SIU-Guaraní
- Cómo ícono colocar esta imagen: https://hub.siu.edu.ar/siu/expedientes/-/blob/master/var/logos/guarani.png
- Completar de la siguiente manera el tab
SAML
- Chequear la opción
Activo
- Entity Id: https://universidad.edu.ar/guarani-autogestion/acceso
- Assertion Consumer Serv.: https://universidad.edu.ar/guarani-autogestion/acceso?auth=saml
- Single Logout Serv.: https://universidad.edu.ar/guarani-autogestion/acceso/logout
- Chequear la opción
- Presionar el botón
Guardar
La URL
https://universidad.edu.ar/guarani-autogestion
usada como ejemplo es la url de acceso a la instalación existente de SIU-Guaraní Autogestión
Versiones previas a la 3.19.0: La aplicación
SIU-Huarpe
debe tener como etiqueta el valorSIU-Huarpe
enArai-Usuarios
para que el docente desde SIU-Guaraní Autogestión pueda acceder a sus documentos pendientes de firma.
A partir de la versión 3.19.0: En SIU-Guaraní Autogestión se debe configurar la directiva
huarpe_url
en el archivoinstalacion/config.php
con la URL de la aplicaciónSIU-Huarpe
para que los docentes puedan acceder a sus documentos pendientes de firma.
A partir de la versión 3.20.0: En SIU-Guaraní Autogestión se debe configurar la directiva
huarpe_url_bandeja
en el archivoinstalacion/config.php
con la URL de la bandeja de documentos pendientes de autorización deSIU-Huarpe
para que los docentes puedan acceder a los mismos.
Sincronizar cuentas de usuarios
Exportar cuentas de usuarios de Guaraní
Primero se debe configurar el archivo instalacion/instalacion.ini
donde se incorporan las siguientes líneas, asegurarse que dichas líneas queden definidas a nivel global y no dentro de una sección:
autenticacion = "saml_onelogin"
vincula_arai_usuarios = "1"
appUniqueIdGestion = "APP_UNIQUE_ID_GESTION"
appUniqueId3w = "APP_UNIQUE_ID_3W"
A continuación se explica cada parámetro:
autenticacion:
Tipo de autenticación, debe tener el valorsaml_onelogin
para poder autenticar con el SAML de SIU-Araí.vincula_arai_usuarios:
Si vincula los usuarios de SIU-Guaraní con los de SIU-Araí. Poner en1
.appUniqueIdGestion:
El valor del atributoappUniqueId
de la aplicación de SIU-Guaraní Gestión generado en el primer paso.appUniqueId3w:
El valor del atributoappUniqueId
de la aplicación de SIU-Guaraní Autogestión generado en el primer paso.
Para exportar las cuentas de usuario de SIU-Guaraní que luego serán importadas en Araí-Usuarios se debe ejecutar el siguiente comando sobre la instalación de Guaraní Gestión:
bin/guarani exportar_usuarios_arai
Este comando posee las siguiente opciones:
-d => Path donde se guarda el archivo, por defecto -> instalacion/usersExportFiles/,
-f => Nombre del archivo donde se exportaran los usuarios, por defecto -> usuarios_yyyymmddhhmmss.json,
-m => Nombre del responsable, por defecto -> toba,
-e => Mails del responsable, por defecto -> toba@siu.edu.ar
Este comando genera un archivo JSON con las cuentas de usuario de Guaraní, solo exporta usuarios docentes y administrativos.
Por ejemplo:
bin/guarani exportar_usuarios_arai
Se debe verificar el JSON generado y tener en cuenta que en la sección
accounts
el valor del atributoappUniqueId
debe coincidir con el ID de la aplicación de SIU-Guaraní generado en el paso anterior. Si el valor no coincide, se recomienda modificar el nombre de la aplicación antes de realizar la importación, de lo contrario no se vincularán las cuentas correctamente.
Versiones previas a la 3.19.1: Se debe reemplazar el valor de la directiva
passwordAlgorithm
debcrypt
acrypt
en el JSON generado.
Importar cuentas en Araí-Usuarios
En primer lugar es necesario correr el contenedor que permite realizar tareas administrativas sobre la instalación de Araí-Usuarios.
Para esto se debe realizar el deploy de usuarios_cmd.yml
de la sgte forma:
docker stack deploy --with-registry-auth -c prod/arai/util/usuarios_cmd.yml usr-cmd
Se debe tener en cuenta que en clusters con más de un nodo es importante utilizar el constraint
constraints: [ node.hostname == hostname-actual ]
para lograr que el contenedor se ejecute en el mismo nodo que se ejecuta el stack deploy. Sin embargo en clusters con sólo un nodo esto no es necesario y puede ser eliminado del archivousuarios_cmd.yml
antes de realizar el deploy.
Luego se debe copiar el JSON con las cuentas exportadas al directorio prod/arai/util/files
ya que este directorio es accesible desde dentro del contenedor.
Una vez copiado el JSON es necesario conectarse al contenedor.
docker exec -it ID_CONTENEDOR_USR_CMD bash
Dentro del contenedor de deben ejecutar los siguientes comandos para setear las variables de entorno y finalmente importar las cuentas a Araí-Usuarios
source /entrypoint.sh --export-secrets && set +e
./idm/bin/toba proyecto importar_usuarios_arai -f files/usuarios_yyyymmddhhmmss.json -m 2 -p arai_usuarios
Para conocer en detalle el funcionamiento de la importación de cuentas y sus parámetros puede visitar la documentación de Araí-Usuarios
Se debe cambiar la contraseña de los usuarios importados en SIU-Araí, ya que las contraseñas de SIU-Guaraní no pueden reutilizarse en SIU-Araí debido al algoritmo de encriptación.
Configurar parámetros SAML en SIU-Guaraní
Configurar parámetros SAML en SIU-Guaraní Gestión
Configurar el archivo instalacion/instalacion.ini
donde se incorporan las siguientes líneas, asegurarse que dichas líneas queden definidas a nivel global y no dentro de una sección:
autenticacion = "saml_onelogin"
vincula_arai_usuarios = "1"
appUniqueIdGestion = "APP_UNIQUE_ID_GESTION"
appUniqueId3w = "APP_UNIQUE_ID_3W"
A continuación se explica cada parámetro:
autenticacion:
Tipo de autenticación, debe tener el valorsaml_onelogin
para poder autenticar con el SAML de SIU-Araí.vincula_arai_usuarios:
Si vincula los usuarios de SIU-Guaraní con los de SIU-Araí. Poner en1
.appUniqueIdGestion:
El valor del atributoappUniqueId
de la aplicación de SIU-Guaraní Gestión generado en el primer paso.appUniqueId3w:
El valor del atributoappUniqueId
de la aplicación de SIU-Guaraní Autogestión generado en el primer paso.
También configurar el archivo instalacion/saml_onelogin.ini
con lo siguiente:
[basicos]
permite_login_toba = "0"
atributo_usuario = "defaultUserAccount"
[sp]
auth_source = "default-sp"
session.phpsession.cookiename = "TOBA_SESSID"
idp = "https://uunn.local/idp/saml2/idp/metadata.php"
proyecto_login = "guarani"
[idp:https://uunn.local/idp/saml2/idp/metadata.php]
name = "SIU-Guaraní"
SingleSignOnService = "https://uunn.local/idp/saml2/idp/SSOService.php"
SingleLogoutService = "https://uunn.local/idp/saml2/idp/SingleLogoutService.php"
certFile = "/usr/local/siu/guarani/instalacion/idp.crt"
A continuación se explica cada parámetro:
permite_login_toba:
Si se activa el login interno del proyecto vía Toba. Posibles valores0
y1
.atributo_usuario:
El atributo del IDP que contiene el identificador de usuario: En este caso se debe usardefaultUserAccount
.auth_source:
El auth source del SP, por defecto esdefault-sp
.session.phpsession.cookiename:
Nombre de la cookie manejada por OneLogin. Por ej:TOBA_SESSID
.idp:
URL del IDP donde estén accesibles los metadatos. Por ej:https://service.example.com/idp.metadata
.SingleSignOnService:
URL del IDP donde esté accesible el servicio. Por ej:http://service.example.com/simplesaml/saml2/idp/SSOService.php
.SingleLogoutService:
URL para cerrar sesión en el IDP. Por ej:http://service.example.com/simplesaml/saml2/idp/SingleLogoutService.php
.certFile:
Ruta al archivo del certificado público usado para firmar los tokens SAML en el IDP generado aquí.
Además configurar el archivo instalacion/i__desarrollo/instancia.ini
agregando la directiva full_url en cada sección:
; Configuracion de la INSTANCIA
base = "toba_3_3"
proyectos = "toba_usuarios, guarani"
tipo = "normal"
[toba_usuarios]
path = "/usr/local/siu/guarani/vendor/siu-toba/framework/proyectos/toba_usuarios"
url = "/toba_usuarios"
full_url = "https://universidad.edu.ar/toba_usuarios"
[guarani]
path = "/usr/local/siu/guarani"
url = "/guarani-gestion"
url_pers = "/guarani-gestion_pers/"
full_url = "https://universidad.edu.ar/guarani-gestion"
Configurar parámetros SAML en SIU-Guaraní Autogestión
Crear y configurar el archivo instalacion/saml/settings.php
desde el template instalacion/saml/settings_example.php
reemplazando las siguientes líneas:
<?php
//settings y advanced_settings de la libreria de saml.
$url_autogestion = 'https://universidad.edu.ar/guarani-autogestion';
$url_idp = 'https://uunn.local/idp';
return $settings = array (
..................
// Identity Provider Data that we want connect with our SP
'idp' => array (
..................
/*
*Instead of use the whole x509cert you can use a fingerprint
*(openssl x509 -noout -fingerprint -in "idp.crt" to generate it)
*/
'certFingerprint' => '65:C0:CE:76:C5:41:8B:C1:D6:0F:C3:E6:4E:22:E5:58:06:E9:94:F1',
),
..................
);
A continuación se explica cada parámetro:
$url_autogestion:
URL de SIU-Guaraní Autogestión a la cual queremos darle un acceso por el proveedor de indentidad SIU-Araí.$url_idp:
URL del IDP (sin/saml2/idp
al final).certFingerprint:
Se genera ejecutando:openssl x509 -noout -fingerprint -in "/usr/local/siu/guarani/instalacion/idp.crt"
, donde/usr/local/siu/guarani/instalacion/idp.crt
es la ruta al archivo donde está el certificado usado para contactar al IDP (dentro de SIU-Guaraní Gestión).
Configurar el archivo instalacion/login.php
reemplazando las siguientes líneas:
'saml' => array(
'activo' => true,
'clase' => 'modelo\\autenticacion\\auth_saml',
'parametros' => array(
'settings_file' => \siu\bootstrap::get_dir_instalacion() . '/saml/settings.php',
'saml_uid' => 'userAccounts',
'local_uid' => 'usuario',
),
),
A continuación se explica cada parámetro:
activo:
Si se activa el login vía SAML. Poner entrue
.settings_file:
Ruta al archivo donde está la configuración de SAML.saml_uid:
User ID de SAML.local_uid:
User ID interno de SIU-Guaraní.
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í. Una vez el usuario ha ingresado, nos redirige nuevamente hacia la aplicación. La misma debiera de contar además con el menú de aplicaciones integrado, con las aplicaciones SIU o de terceros que tengamos registrados.
Forzar uso de HTTPS
Se debe verificar que SIU-Guaraní este configurado para funcionar sobre HTTPS.
Configurar HTTPS en SIU-Guaraní Gestión
En la instalación de SIU-Guaraní Gestión se debe configurar el archivo instalacion/web_server.ini
cambiando el parámetro https
a on
.
[server_config]
https = "on"
Configurar HTTPS en SIU-Guaraní Autogestión
En la instalación de SIU-Guaraní Autogestión se debe configurar el archivo instalacion/config.php
de la siguiente manera:
'ssl' => [
'alcance' => 'all',
'redirigir_ssl' => true
],
Habilitar API de Araí-Usuarios
Se debe agregar un nuevo usuario y contraseña para que SIU-Guaraní se autentifique contra la API de Araí-Usuarios. Para esto se debe seguir los pasos indicados aquí.
Como SIU-Guaraní es un sistema externo, se debe habilitar además el acceso desde afuera del cluster a dicha API de Araí-Usuarios.
Configurar el cliente de usuarios en SIU-Guaraní
Configurar el cliente de usuarios en SIU-Guaraní Gestión
En la instalación de SIU-Guaraní Gestión se debe configurar el archivo instalacion/i__desarrollo/p__guarani/rest/arai_usuarios/cliente.ini
para indicar los datos de acceso a la API de Araí-Usuarios creados en el paso anterior.
[conexion]
to = "https://uunn.local/api-usuarios/v1/"
auth_tipo = "basic"
auth_usuario = "USR_API_USUARIOS"
auth_password = "PASSWORD_API_USUARIOS"
Recuerde que es muy importante que las contraseñas utilizadas sean seguras.
Recuerde que el dominio
uunn.local
debe ser reemplazado por el que definio en este paso
Configurar el cliente de usuarios en SIU-Guaraní Autogestión
En la instalación de SIU-Guaraní Autogestión se debe configurar el archivo instalacion/servicios_web_config.php
agregando lo siguiente dentro del array de consumidos
:
'consumidos' => [
............
'arai_usuarios' => [
'tipo' => 'rest',
'parametros' => [
'base_uri' => 'https://uunn.local/api-usuarios/v1/',
'auth' => ['USR_API_USUARIOS', 'PASSWORD_API_USUARIOS', 'basic']
]
],
............
]
Recuerde que es muy importante que las contraseñas utilizadas sean seguras.
A partir de ahora cuando queramos asignar un usuario a una persona, aparecerá un combo editable donde podremos buscar los usuarios existentes en SIU-Araí.
Entonces de está forma necesitamos editar la persona en SIU-Guaraní Gestión (operación Administrar Personas
solapa Acceso al sistema
), y vincularla con el usuario de SIU-Araí.