SIU-Mapuche
Configurar SIU-Mapuche
En este apartado se presenta la documentación para preparar una instalación de SIU-Mapuche existente para que pueda interoperar con los demas módulos del ecosistema.
Registrar SIU-Mapuche como Service Provider en SIU-Araí: Usuarios
Para hacerlo debe acceder a 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/mapuche
- Nombre: mapuche
- Cómo ícono colocar esta imagen: https://hub.siu.edu.ar/siu/expedientes/-/blob/master/var/logos/mapuche.png
- Completar de la siguiente manera el tab
SAML
- Chequear la opción
Activo
- Entity Id: https://universidad.edu.ar/mapuche/default-sp
- Assertion Consumer Serv.: https://universidad.edu.ar/mapuche/?acs
- Single Logout Serv.: https://universidad.edu.ar/mapuche/?sls
- Chequear la opción
- Presionar el botón
Guardar
La URL
https://universidad.edu.ar/mapuche
usada como ejemplo es la url de acceso a la instalación existente de SIU-Mapuche
Sincronizar cuentas de usuarios
Exportar cuentas de usuarios de SIU-Mapuche
Para exportar las cuentas de usuario de SIU-Mapuche que luego serán importadas en SIU-Araí: Usuarios se debe ejecutar el siguiente comando sobre la instalación de SIU-Mapuche:
toba proyecto exportar_usuarios_arai -p mapuche -f usuarios_mapuche
Este comando genera un archivo JSON con las cuentas de usuario de SIU-Mapuche. Si se verifica que este archivo contiene los datos del nombre y apellido de forma incorrecta se puede usar el parámetro --mascara
para modificar el formato de los datos exportados.
Por ejemplo:
toba proyecto exportar_usuarios_arai --mascara '<apellido> <nombres>' -p mapuche -f usuarios_mapuche
Se debe verificar el JSON generado y tener en cuenta que en la sección
accounts
el valor del atributoappName
debe coincidir con el nombre de la aplicación de SIU-Mapuche 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.
Importar cuentas en SIU-Araí: Usuarios
En primer lugar es necesario correr el contenedor que permite realizar tareas administrativas sobre la instalación de SIU-Araí: Usuarios.
Para esto se debe realizar el deploy de usuarios_cmd.yml
de la siguiente 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 se deben ejecutar los siguientes comandos para setear las variables de entorno y finalmente importar las cuentas a SIU-Araí: Usuarios
source /entrypoint.sh --export-secrets && set +e
./idm/bin/toba proyecto importar_usuarios_arai -f files/usuarios_mapuche.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
Sincronizar usuarios a partir de agentes de SIU-Mapuche
Exportar agentes de SIU-Mapuche
Para exportar los agentes, SIU-Mapuche proporciona un comando de consola, que nos genera un archivo en formato json con los datos de todos los agentes que posee cargados. Para ejecutar el comando, primero será necesario cargar el entorno, para lo cual podemos ejecutar:
cd /ruta/mapuche/
. ./entorno_toba.env
Una vez cargado el entorno, es posible ejecutar la exportación de la siguiente forma:
toba proyecto exportar_agentes_arai -f agentes-arai.json
Este comando exportará y creará un archivo en la ruta /ruta/mapuche/instalacion/usersExportFiles/agentes-arai.json disponible para ser importado luego.
Nota: el parámetro -f es opcional, así como -d para la ruta donde guardar dicho archivo, -m para indicar la persona responsable y -e para indicar su email.
Importar agentes como usuarios en SIU-Araí: Usuarios
Hay que aclarar que, hasta aquí, lo que se realizó fue exportar la definición de personas existente en SIU-Mapuche. No así cuentas de acceso. Cuando se importe esta información, se dispondrá de información de una persona (definido como usuario en la plataforma) pero sin cuentas asociadas para el acceso a las aplicaciones (en el supuesto de que la base de usuarios estuviese vacía).
El proceso de importación de agentes se puede interpretar como cualquier otro proceso de importación de cuentas y personas en SIU-Araí: Usuarios.
Hasta aquí las personas importadas solo tendrán acceso a SIU-Araí: Usuarios, pero el acceso de las mismas estará Bloqueado.
Configurar parámetros SAML en SIU-Mapuche
- Editar el archivo
instalador.env
las siguientes líneas:
###### CONFIG SP ONE LOGIN ######
SSO_SP_IDP_METADATA_URL=https://uunn.local/idp/saml2/idp/metadata.php
SSO_SP_IDP_URL_SERVICE=https://uunn.local/idp/saml2/idp/SSOService.php
SSO_SP_IDP_SINGLE_LOGOUT_URL_SERVICE=https://uunn.local/idp/saml2/idp/SingleLogoutService.php
SSO_SP_IDP_PUBLIC_KEY_FILE=/usr/local/siu/mapuche/temp/certificado_idp.crt
SSO_SP_ATRIBUTO_USUARIO=defaultUserAccount
SSO_SP_PERMITE_LOGIN_TOBA=0
SSO_SP_AUTH_SOURCE=default-sp
SSO_SP_COOKIE_NAME=TOBA_SESSID
SSO_SP_IDP_NAME=https://uunn.local
A continuación se explica cada parámetro:
SSO_SP_IDP_METADATA_URL:
URL del IDP donde estén accesibles los metadatoshttps://service.example.com/idp.metadata
SSO_SP_IDP_URL_SERVICE:
URL del IDP donde esté accesible el serviciohttp://service.example.com/simplesaml/saml2/idp/SSOService.php
SSO_SP_IDP_SINGLE_LOGOUT_URL_SERVICE:
URL para cerrar sesión en el IDPhttp://service.example.com/simplesaml/saml2/idp/SingleLogoutService.php
SSO_SP_IDP_PUBLIC_KEY_FILE:
Ruta al archivo del certificado público usado para firmar los tokens SAML en el IDP generado aquíSSO_SP_ATRIBUTO_USUARIO:
El atributo del IDP que contiene el identificador de usuario: En este caso se debe usardefaultUserAccount
SSO_SP_PERMITE_LOGIN_TOBA:
Si se activa el login interno del proyecto vía Toba. Posibles valores0 y 1
SSO_SP_AUTH_SOURCE:
El auth source del SP, por defecto suele serdefault-sp
SSO_SP_COOKIE_NAME:
Nombre de la cookie manejada por OneLogin, por ej.TOBA_SESSID
SSO_SP_IDP_NAME:
Nombre del IDPservice.example.com
Luego de configurar las variables de entorno ejecutar el comando de reconfiguración del instalador:
./bin/instalador proyecto:reconfigurar sso
Luego de ejecutar el comando de reconfigurar nos tiene que quedar configurado de esta forma el archivo instalacion/instalacion.ini
:
autenticacion = "saml_onelogin"
vincula_arai_usuarios = "1"
Se debe agregar el parámetro
vincula_arai_usuarios = "1"
que no lo genera automáticamente.
También se genera el archivo de configuración instalacion/saml_onelogin.ini
con la siguiente configuración:
[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 = "mapuche"
[idp:https://uunn.local/idp/saml2/idp/metadata.php]
SingleSignOnService = "https://uunn.local/idp/saml2/idp/SSOService.php"
SingleLogoutService = "https://uunn.local/idp/saml2/idp/SingleLogoutService.php"
certFile = "/usr/local/siu/mapuche/instalacion/idp.crt"
En la versión 3.12.2 o anterior no genera automáticamente el valor del
proyecto_login
y se debe configurar manualmente. En posteriores versiones se incluirá la automatización del mismo.
Forzar uso de HTTPS
Se debe verificar que SIU-Mapuche este configurado para funcionar sobre HTTPS.
Para esto se deber verificar y modificar que el parámetro TOBA_FORZAR_HTTPS
se encuentre en el archivo instalador.env
con el valor en on
.
TOBA_FORZAR_HTTPS=on
Luego regenerar la configuración de TOBA con el comando:
./bin/instalador proyecto:reconfigurar toba
Se puede verificar que se ha configurado correctamente chequeando en el archivo instalacion/web_server.ini
que el parámetro https
se encuentre en on
.
[server_config]
https = "on"
Habilitar API de SIU-Arai: Usuarios
Se debe agregar un nuevo usuario y contraseña para que Mapuche se autentifique contra la API de Araí-Usuarios. Para esto se debe seguir los pasos indicados aquí.
Como Mapuche 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-Mapuche
En la instalación de SIU-Mapuche se debe configurar el archivo instalacion/i__produccion/p__toba_usuarios/rest/rest_arai_usuarios/cliente.ini
para indicar los datos de acceso a la API de Araí-Usuarios creados en el paso anterior.
Puede ser configurado mediante el comando de Toba o editando el archivo manualmente.
./bin/toba servicios_web cli_configurar -p toba_usuarios -s rest_arai_usuarios -u https://uunn.local/api-usuarios/v1/ --usuario USR_API_USUARIOS --usuario_pwd PASSWORD_API_USUARIOS --tipo_ws rest
Luego de ejecutar el comando el archivo cliente.ini
quedaría configurado de la siguiente forma:
[conexion]
to = "https://uunn.local/api-usuarios/v1/usuarios"
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
Se debe indicar el appUniqueId
en el archivo instalacion/instalacion.ini
como se indica a continuación:
vincula_arai_appID = 'APP_UNIQUE_ID_MAPUCHE'
APP_UNIQUE_ID_MAPUCHE:
Es el identificador de aplicación de SIU-Mapuche en SIU-Araí: Usuarios. Este valor se puede obtener desde el listado de Aplicaciones en SIU-Araí: Usuarios en la columnaappUniqueId
.
Configurar los parámetros para Araí-Documentos en SIU-Mapuche
Se debe crear el archivo instalacion/arai_documentos.ini
con los siguientes valores:
[arai_documentos_config]
host_arai="https://uunn.local/docs"
usr_arai="USUARIO_API_DOCUMENTOS"
pass_arai="PASS_API_DOCUMENTOS"
logs_dir="/usr/local/siu/mapuche/logs"
sistema_origen = "mapuche"
queue_path=""
queue_temp_dir=""
db_queue=""
dbq_host=""
dbq_port=""
dbq_user=""
dbq_password=""
dbq_table_name=""
rest_mapuche=""
id_usuario_sso = "admin"
cuenta_usuario = "admin"
id_instalacion = "mapuche"
A continuación se explica cada parámetro:
host_arai:
Es la ruta a la API de Araí-Documentosusr_arai:
Usuario de acceso a la API de Araí-Documentospass_arai:
Contraseña de acceso a la API de Araí-Documentoslogs_dir:
Directorio usado para generar el archivo de logs de Documentos Cliqueue_path:
Directorio usado por la librería queue para escribir archivos internosqueue_temp_dir:
Directorio usado por la librería queue para escribir archivos temporalesdb_queue:
Nombre de la base de datos donde se encuentra el schema queue. Corresponde a la base de negocio de SIU-Mapuchedbq_host:
Ruta al host donde se encuentra la basedb_queue
dbq_port:
Puerto de PostgreSQL donde se encuentra la basedb_queue
dbq_user:
Usuario de PostgreSQL donde se encuentra la basedb_queue
dbq_password:
Contraseña de PostgreSQL donde se encuentra la basedb_queue
dbq_table_name:
Tabla usada por la librería queue. Se debe mantener el valorqueue.queue
rest_mapuche:
URL de acceso al REST de notificaciones de Mapuche. Se debe reemplazar por la URL de la instalación existente, manteniendo/rest/notificaciones/documento
id_usuario_sso:
cuenta_usuario:
id_instalacion:
Habilitar API Backend de Araí-Documentos
Se debe agregar un nuevo usuario y contraseña para que Mapuche se autentifique contra la API de Araí-Documentos. Para esto se debe seguir los pasos indicados aquí.
Como Mapuche es un sistema externo, se debe habilitar además el acceso desde afuera del cluster a dicha API de Araí-Documentos.
Habilitar Bundle de Recursos Humanos
Recuerde: deberá tener configurado el acceso a la API de SIU-Mapuche, mediante un usuario y clave respectivo.
Para habilitar el bundle de Recursos Humanos se debe seguir los siguientes pasos:
En primer lugar se recomienda generar un secret (seguro) para almacenar la contraseña de acceso a la API de SIU-Mapuche.
printf "mapuche123" | docker secret create mapuche_api_client_pass -
En el archivo prod/arai/huarpe.yml
se deben descomentar (o agregar) los items en las secciones que se detallan a continuación.
webapp
secrets:
mapuche_api_client_pass
secrets:
mapuche_api_client_pass:
external: true
Finalmente se deben definir valores para las restantes variables de entorno necesarias en el archivo huarpe.env
:
API_MAPUCHE_USR=huarpe
API_MAPUCHE_URL=http://localhost:9191/siu/mapuche/rest/
BUNDLE_MAPUCHE_ACTIVO=1
BUNDLE_MAPUCHE_ACTIVO:
Indica que se deben activar el bundle de Recursos Humanos de SIU-MapucheAPI_MAPUCHE_USR:
Usuario para acceder a la API de SIU-Mapuche.API_MAPUCHE_URL:
URL de la API de SIU-Mapuche. Ej:https://universidad.edu.ar/mapuche/rest/
Luego de realizar los cambios en el archivo de configuración se debe actualizar el servicio de Huarpe, eliminando en primer lugar el stack y luego realizando nuevamente el deploy de la siguiente manera:
docker stack rm huarpe
docker stack deploy --with-registry-auth -c huarpe.yml huarpe
Archivos de logs
Log de documentos-cli
Documentos-cli es el cliente que se encarga de la comunicación con Araí-Documentos.
Su archivo de log se configura la ubicación en el archivo instalacion/arai_documentos.ini
en la entrada logs_dir
, por defecto se encuentra en /usr/local/siu/mapuche/logs/docs-cli.log
Configurar conexión entre SIU-Mapuche y SIU-Pilagá
Cuando se configure la opción para utilizar el servicio REST puede que al momento de guardar les de un error advirtiendo que falta un archivo llamado cliente.ini, el mismo hay que crearlo dentro de la instalación de mapuche en la carpeta /instalacion/i__produccion/p__mapuche/rest/, aquí se debe crear una carpeta con el nombre pilaga y dentro un archivo de texto plano con le nombre y extensión cliente.ini. Dentro del archivo cliente.ini deben agregar las siguientes lineas:
[conexion]
to = "{URL_REST_PILAGA}/" ;; ejemplo https://uunn.local/pilaga/rest/ Recuerde dejar una barra (/) al finalizar la URL
auth_tipo = basic;; tipo de autentificacion configurada en pilaga
auth_usuario = USUARIO ;; Usuario configurado en pilaga
auth_password = CLAVE ;; clave configurada en pilaga para el usuario
También se debe verificar los permisos de la carpeta {PATH_MAPUCHE}/instalacion/logs_procesos
, la carpeta deberá tener permisos de escritura y lectura.