Diferencia entre revisiones de «Guia rapida diaguita eei»
Línea 1: | Línea 1: | ||
− | |||
Guía técnica para conectar SIU-Diaguita al Ecosistema SIU, se requiere tener funcionando Arai-Usuarios, Arai-Documentos, Huarpe y Sudocu. | Guía técnica para conectar SIU-Diaguita al Ecosistema SIU, se requiere tener funcionando Arai-Usuarios, Arai-Documentos, Huarpe y Sudocu. | ||
+ | |||
+ | ====================================================================== | ||
+ | |||
+ | //Recuerde que el dominio uunn.local debe ser reemplazado por el que corresponde.// | ||
+ | |||
+ | //La URL https:%%//%%universidad.edu.ar/diaguita usada como ejemplo es la url de acceso a la instalación existente de SIU-Diaguita// | ||
+ | |||
+ | ====================================================================== | ||
+ | |||
+ | ====== 1 - Registrar SIU-Diaguita como Service Provider en Araí Usuarios ====== | ||
+ | |||
+ | 1.1 Ingrese a Araí-Usuarios | ||
+ | |||
+ | 1.2 Dirigirse a Aplicaciones | ||
+ | |||
+ | 1.3 Presionar el botón Agregar + | ||
+ | |||
+ | 1.4 Completar de la siguiente manera el tab Datos Generales | ||
+ | |||
+ | > Url: [[https://universidad.edu.ar/diaguita|//https:%%//%%universidad.edu.ar/diaguita//]] | ||
+ | > | ||
+ | > Nombre: diaguita | ||
+ | > | ||
+ | > Cómo ícono colocar esta imagen: [[https://hub.siu.edu.ar/siu/expedientes/-/blob/master/var/logos/diaguita.png|//https:%%//%%hub.siu.edu.ar/siu/expedientes/-/blob/master/var/logos/diaguita.png//]] | ||
+ | |||
+ | 1.5 Completar de la siguiente manera el tab SAML | ||
+ | |||
+ | <HTML><ul></HTML> | ||
+ | <HTML><li></HTML>> <HTML><p></HTML>Chequear la opción Activo<HTML></p></HTML> | ||
+ | <HTML></li></HTML> | ||
+ | <HTML><li></HTML>> <HTML><p></HTML>Entity Id: [[https://universidad.edu.ar/diaguita/default-sp|//https:%%//%%universidad.edu.ar/diaguita/default-sp//]]<HTML></p></HTML> | ||
+ | <HTML></li></HTML> | ||
+ | <HTML><li></HTML>> <HTML><p></HTML>Assertion Consumer Serv.: [[https://universidad.edu.ar/diaguita/?acs|//https:%%//%%universidad.edu.ar/diaguita/?acs//]]<HTML></p></HTML> | ||
+ | <HTML></li></HTML> | ||
+ | <HTML><li></HTML>> <HTML><p></HTML>Single Logout Serv.: [[https://universidad.edu.ar/diaguita/?sls|//https:%%//%%universidad.edu.ar/diaguita/?sls//]]<HTML></p></HTML> | ||
+ | <HTML></li></HTML><HTML></ul></HTML> | ||
+ | |||
+ | 1.6 Presionar el botón Guardar | ||
+ | |||
+ | ====== 2 - Configurar parámetros SAML en SIU-Diaguita ====== | ||
+ | |||
+ | 2.1 Editar en 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/diaguita/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|//https:%%//%%uunn.local//]] | ||
+ | |||
+ | ====================================================================== | ||
+ | |||
+ | //SSO_SP_IDP_METADATA_URL: URL del IDP donde estén accesibles los metadatos. Por ej: https:%%//%%service.example.com/idp.metadata// | ||
+ | |||
+ | //SSO_SP_IDP_URL_SERVICE: URL del IDP donde esté accesible el servicio. Por ej: http:%%//%%service.example.com/simplesaml/saml2/idp/SSOService.php// | ||
+ | |||
+ | //SSO_SP_IDP_SINGLE_LOGOUT_URL_SERVICE: URL para cerrar sesión en el IDP. Por ej: http:%%//%%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 usar defaultUserAccount// | ||
+ | |||
+ | //SSO_SP_PERMITE_LOGIN_TOBA: Si se activa el login interno del proyecto vía Toba. Posibles valores 0 y 1// | ||
+ | |||
+ | //SSO_SP_AUTH_SOURCE: El auth source del SP, por defecto es default-sp// | ||
+ | |||
+ | //SSO_SP_COOKIE_NAME: Nombre de la cookie manejada por OneLogin. Por ej: TOBA_SESSID// | ||
+ | |||
+ | //SSO_SP_IDP_NAME: Nombre del IDP. Por ej: service.example.com// | ||
+ | |||
+ | ====================================================================== | ||
+ | |||
+ | 2.2 Ejecutar el comando de reconfiguración del instalador: | ||
+ | |||
+ | **./bin/instalador proyecto:reconfigurar sso** | ||
+ | |||
+ | 2.3 Editar en el archivo **instalacion/instalacion.ini** donde se incorporan las sgtes líneas: | ||
+ | |||
+ | autenticacion = "saml_onelogin" | ||
+ | |||
+ | vincula_arai_usuarios = "1" | ||
+ | |||
+ | ====================================================================== | ||
+ | |||
+ | //Se debe agregar el parámetro vincula_arai_usuarios = "1" ya que este no se genera automáticamente.// | ||
+ | |||
+ | ====================================================================== | ||
+ | |||
+ | 2.4 Verificar en el archivo **instalacion/saml_onelogin.ini** que exista la entrada: | ||
+ | |||
+ | proyecto_login = "diaguita" | ||
+ | |||
+ | ====================================================================== | ||
+ | |||
+ | //En versiones de SIU-Diaguita 3.0.1 o anterior no se genera automáticamente el valor del parámetro proyecto_login y por lo tanto se debe configurar manualmente. En posteriores versiones se incluirá la automatización del mismo.// | ||
+ | |||
+ | ====================================================================== | ||
+ | |||
+ | ====== 3 - Forzar uso de HTTPS en SIU-Diaguita ====== | ||
+ | |||
+ | 3.1 Verificar el archivo **instalacion/web_server.ini** que esté configurado HTTPS | ||
+ | |||
+ | 3.1.1 De lo contrario puede editar el archivo **instalador.env** | ||
+ | |||
+ | TOBA_FORZAR_HTTPS=on | ||
+ | |||
+ | 3.1.2 Ejecutar el comando de reconfiguración de TOBA: | ||
+ | |||
+ | **./bin/instalador proyecto:reconfigurar toba** | ||
+ | |||
+ | ====== 4 - Configurar el cliente de usuarios en SIU-Diaguita ====== | ||
+ | |||
+ | 4.1 Editar el archivo **instalacion/i%%__%%produccion/p%%__%%toba_usuarios/rest/rest_arai_usuarios/cliente.ini** | ||
+ | |||
+ | [conexion] | ||
+ | |||
+ | to = "https:%%//%%uunn.local/api-usuarios/v1/" | ||
+ | |||
+ | auth_tipo = "basic" | ||
+ | |||
+ | auth_usuario = "USR_API_USUARIOS" | ||
+ | |||
+ | auth_password = "PASS_API_USUARIOS" | ||
+ | |||
+ | ====================================================================== | ||
+ | |||
+ | //El usuario y la contraseña del API de Arai-Usuarios configurados en este paso, se almacenan en un secret, para los cual editamos el archivo **secrets.sh** y modificamos la linea 13 donde crea el secret usuarios_api_users// | ||
+ | |||
+ | //Agregamos ["diaguita","diaguita123"] en este caso "diaguita" sería el usuario y "diaguita 123" la contraseña.// | ||
+ | |||
+ | //printf '[["diaguita","diaguita123"],["documentos","documentos123"],["huarpe","huarpe123"],["proveedores","proveedores123"]]' | docker secret create usuarios_api_users -// | ||
+ | |||
+ | //Para posteriormente ejecutar los comandos:// | ||
+ | |||
+ | //**docker secret rm usuarios_api_users**// | ||
+ | |||
+ | //**./secrets.sh**// | ||
+ | |||
+ | ====================================================================== | ||
+ | |||
+ | 4.2 Editar el archivo **instalacion/instalacion.ini** y agregar el appUniqueId | ||
+ | |||
+ | vincula_arai_appID = 'APP_UNIQUE_ID_DIAGUITA' | ||
+ | |||
+ | ====================================================================== | ||
+ | |||
+ | //APP_UNIQUE_ID_DIAGUITA: Es el identificador de aplicación de SIU-Diaguita en Araí-Usuarios. Este valor se puede obtener desde el listado de Aplicaciones en Araí-Usuarios en la columna appUniqueId.// | ||
+ | |||
+ | ====================================================================== | ||
+ | |||
+ | ====== 5 - Habilitar el REST de notificaciones ====== | ||
+ | |||
+ | 5.1 Editar el archivo **instalacion/i%%__%%produccion/p%%__%%diaguita/rest/servidor.ini** | ||
+ | |||
+ | [settings] | ||
+ | |||
+ | formato_respuesta = "json" | ||
+ | |||
+ | url_protegida = "/(?=^((?!convocatorias-publicas|notificaciones).)+$)/xs" | ||
+ | |||
+ | encoding = "utf-8" | ||
+ | |||
+ | ====== 6 - Configurar los parámetros para Araí-Documentos en SIU-Diaguita ====== | ||
+ | |||
+ | 6.1 Se debe crear el archivo **instalacion/arai_documentos.ini** con los siguientes valores: | ||
+ | |||
+ | host_arai="https:%%//%%uunn.local/docs" | ||
+ | |||
+ | usr_arai="USR_API_DOCUMENTOS" | ||
+ | |||
+ | pass_arai="PASS_API_DOCUMENTOS" | ||
+ | |||
+ | queue_path="/usr/local/app/temp" | ||
+ | |||
+ | queue_temp_dir = "/usr/local/app/temp" | ||
+ | |||
+ | db_queue = "DB_DIAGUITA" | ||
+ | |||
+ | dbq_host = "HOST_POSTGRES" | ||
+ | |||
+ | dbq_port = PUERTO_POSTGRES | ||
+ | |||
+ | dbq_user = "USER_POSTGRES" | ||
+ | |||
+ | dbq_password = "PASSWORD_POSTGRES" | ||
+ | |||
+ | dbq_table_name = "queue.queue" | ||
+ | |||
+ | polling_interval = 1000 | ||
+ | |||
+ | rest_diaguita = "https:%%//%%universidad.edu.ar/diaguita/rest/v1/notificaciones/documento" | ||
+ | |||
+ | ====================================================================== | ||
+ | |||
+ | //host_arai: Es la ruta a la API de Araí-Documentos// | ||
+ | |||
+ | //usr_arai: Usuario de acceso a la API de Araí-Documentos// | ||
+ | |||
+ | //pass_arai: Contraseña de acceso a la API de Araí-Documentos// | ||
+ | |||
+ | //queue_path: Directorio usado por la librería queue para escribir archivos internos// | ||
+ | |||
+ | //queue_temp_dir: Directorio usado por la librería queue para escribir archivos temporales// | ||
+ | |||
+ | //db_queue: Nombre de la base de datos donde se encuentra el schema queue. Corresponde a la base de negocio de SIU-Diaguita// | ||
+ | |||
+ | //dbq_host: Ruta al host donde se encuentra la base db_queue// | ||
+ | |||
+ | //dbq_port: Puerto de PostgreSQL donde se encuentra la base db_queue// | ||
+ | |||
+ | //dbq_user: Usuario de PostgreSQL donde se encuentra la base db_queue// | ||
+ | |||
+ | //dbq_password: Contraseña de PostgreSQL donde se encuentra la base db_queue// | ||
+ | |||
+ | //dbq_table_name: Tabla usada por la librería queue. Se debe mantener el valor queue.queue// | ||
+ | |||
+ | //polling_interval: No se debe modificar// | ||
+ | |||
+ | //rest_diaguita: URL de acceso al REST de notificaciones de Diaguita. Se debe reemplazar por la URL de la instalación existente, manteniendo /rest/notificaciones/documento// | ||
+ | |||
+ | ====================================================================== | ||
+ | |||
+ | ====== 7 - Habilitar acceso externo de API Backend de documentos ====== | ||
+ | |||
+ | 7.1 Editar el archivo **docs.yml** | ||
+ | |||
+ | Agregar las líneas: | ||
+ | |||
+ | - "traefik.http.routers.docs-backend.rule=Host(`uunn.local`) && PathPrefix(`/docs/rest/backend`)" | ||
+ | |||
+ | - "traefik.http.routers.docs-backend.tls=true" | ||
+ | |||
+ | Adicionalmente, como este es un endpoint que no debería quedar publicado se tendrían que adicionar las siguientes líneas (con su correspondiente ajuste): | ||
+ | |||
+ | - "traefik.http.middlewares.docs-ipwhitelist.ipwhitelist.sourcerange=127.0.0.1/32,172.77.100.0/24" | ||
+ | |||
+ | - "traefik.http.routers.docs-backend.middlewares=security-headers@file,docs-ipwhitelist" | ||
+ | |||
+ | 7.2 Luego se debe realizar el deploy de documentos para actualizar los servicios. | ||
+ | |||
+ | **docker stack rm docs** | ||
+ | |||
+ | **docker stack deploy --with-registry-auth -c prod/arai/docs.yml docs** | ||
+ | |||
+ | ====== 8 - Worker de Documentos ====== | ||
+ | |||
+ | 8.1 Iniciar el worker de documentos es: | ||
+ | |||
+ | **bin/toba proyecto iniciar_workers_arai_documentos -p diaguita** | ||
+ | |||
+ | 8.1.1 También puede configurar Supervisor para correr el worker de documentos. | ||
+ | |||
+ | [program:diaguita-worker-documentos] | ||
+ | |||
+ | command=<path_instalacion_diaguita>/bin/toba proyecto iniciar_workers_arai_documentos -p diaguita | ||
+ | |||
+ | autostart=true | ||
+ | |||
+ | autorestart=true | ||
+ | |||
+ | stderr_logfile=/var/log/diaguita-worker-documentos-err.log | ||
+ | |||
+ | stderr_logfile_maxbytes=2MB | ||
+ | |||
+ | stderr_logfile_backups=10 | ||
+ | |||
+ | stderr_capture_maxbytes=1MB | ||
+ | |||
+ | stdout_logfile=/var/log/diaguita-worker-documentos-stdout.log | ||
+ | |||
+ | stdout_logfile_maxbytes=10MB | ||
+ | |||
+ | stdout_logfile_backups=10 | ||
+ | |||
+ | stdout_capture_maxbytes=1MB | ||
+ | |||
+ | 8.1.2 Ejecutar para iniciar Supervisor | ||
+ | |||
+ | **systemctl start supervisor** | ||
+ | |||
+ | 8.1.3 Verificar la ejecución del worker | ||
+ | |||
+ | **supervisorctl status diaguita-worker-documentos** | ||
+ | |||
+ | ====== 9- Habilitar Bundles ====== | ||
+ | |||
+ | 9.1 Se recomienda generar un secret (seguro) para almacenar la contraseña de la API de SIU-Diaguita con el siguiente comando: | ||
+ | |||
+ | **printf "diaguita123" | docker secret create diaguita_api_client_pass -** | ||
+ | |||
+ | O podemos editar el archivo **secrets.sh** y agregar la línea: | ||
+ | |||
+ | printf "diaguita123" | docker secret create diaguita_api_client_pass - | ||
+ | |||
+ | 9.2 En caso de haber editado el archivo **secrets.sh** ejecutar: | ||
+ | |||
+ | **./secrets.sh** | ||
+ | |||
+ | 9.3 En el archivo **prod/arai/huarpe.yml** se deben descomentar (o agregar) los ítems en las secciones que se detallan a continuación. | ||
+ | |||
+ | # Agregar en la sección webapp:secrets | ||
+ | |||
+ | # Línea 37 | ||
+ | |||
+ | webapp | ||
+ | |||
+ | secrets: | ||
+ | |||
+ | - diaguita_api_client_pass | ||
+ | |||
+ | # Agregar en la sección secrets | ||
+ | |||
+ | # Línea 94 | ||
+ | |||
+ | secrets: | ||
+ | |||
+ | diaguita_api_client_pass: | ||
+ | |||
+ | external: true | ||
+ | |||
+ | 9.4 En el archivo **huarpe.env** debemos definir valores para las restantes variables del entorno | ||
+ | |||
+ | API_DIAGUITA_USR=diaguita_api_client_user | ||
+ | |||
+ | API_DIAGUITA_URL=https:%%//%%universidad.edu.ar/diaguita/rest/v1/ | ||
+ | |||
+ | API_DIAGUITA_PASS_FILE=/run/secrets/diaguita_api_client_pass | ||
+ | |||
+ | BUNDLE_COMPRAS_ACTIVO=1 | ||
+ | |||
+ | BUNDLE_PATRIMONIO_ACTIVO=1 | ||
+ | |||
+ | DIAGUITA_URL_COMPRAS=https:%%//%%compras.uunn.local/ | ||
+ | |||
+ | DIAGUITA_APP_UNIQUE_ID= | ||
+ | |||
+ | ====================================================================== | ||
+ | |||
+ | //BUNDLE_COMPRAS_ACTIVO: Indica que se deben activar los bundles de Compras de SIU-Diaguita// | ||
+ | |||
+ | //BUNDLE_PATRIMONIO_ACTIVO: Indica que se deben activar el bundle de Patrimonio de SIU-Diaguita// | ||
+ | |||
+ | //API_DIAGUITA_USR: Usuario para acceder a la API de SIU-Diaguita.// | ||
+ | |||
+ | //API_DIAGUITA_URL: URL de la API de SIU-Diaguita. Ej: https:%%//%%universidad.edu.ar/diaguita/rest/vX/// | ||
+ | |||
+ | //DIAGUITA_URL_COMPRAS: URL de la operación en SIU-Diaguita. Ej: https:%%//%%universidad.edu.ar/diaguita/aplicacion.php?ai=diaguita||nro// | ||
+ | |||
+ | //DIAGUITA_APP_UNIQUE_ID: Es el identificador de aplicación de SIU-Diaguita en Araí-Usuarios. Este valor se puede obtener desde el listado de Aplicaciones en Araí-Usuarios en la columna appUniqueId// | ||
+ | |||
+ | ====================================================================== | ||
+ | |||
+ | 9.5 Ejecutar los comandos: | ||
+ | |||
+ | **docker stack rm huarpe** | ||
+ | |||
+ | **docker stack rm usuarios** | ||
+ | |||
+ | **docker stack deploy --with-registry-auth -c prod/arai/usuarios.yml usuarios** | ||
+ | |||
+ | **docker stack deploy --with-registry-auth -c prod/arai/huarpe.yml huarpe** | ||
+ | |||
+ | ====== 10 - Usuarios y cuentas ====== | ||
+ | |||
+ | En adelante, nos referiremos de la siguiente manera: | ||
+ | |||
+ | <HTML><ul></HTML> | ||
+ | <HTML><li></HTML>> <HTML><p></HTML>Llamaremos `usuario` a los usuarios de SIU-Araí: Usuarios<HTML></p></HTML> | ||
+ | <HTML></li></HTML> | ||
+ | <HTML><li></HTML>> <HTML><p></HTML>Llamaremos `cuenta` a la identificación/es que tenía un humano o sistema en la aplicación de origen<HTML></p></HTML> | ||
+ | <HTML></li></HTML><HTML></ul></HTML> | ||
+ | |||
+ | Para que un usuario tenga acceso a una cuenta de SIU-Diaguita necesita hacer el mapeo correspondiente en ARAI-Usuarios desde **Usuarios -> (Filtramos el usuario deseado) -> Accedemos desde** {{:media/image1.gif?16x16}} **-> En la pestaña “Cuentas”** | ||
+ | |||
+ | Seleccionamos la Aplicación: Diaguita (Es el nombre que se definió al momento de dar de alta la aplicación en ARAI-Usuarios) | ||
+ | |||
+ | Seleccionamos la Aplicación: <Escriba la cuenta deseado> (Recuerde que cuenta es el usuario que existe en la aplicación SIU-Diaguita) | ||
+ | |||
+ | Una representación esquemática sería: | ||
+ | |||
+ | persona | ||
+ | |||
+ | | | ||
+ | |||
+ | usuario <──────> cuenta <──────> aplicacion | ||
+ | |||
+ | | | | | ||
+ | |||
+ | svier sergio diaguita | ||
+ | |||
+ | | | | | ||
+ | |||
+ | svier servier pilagá | ||
+ | |||
+ | ===== Sincronizar cuentas de usuarios ===== | ||
+ | |||
+ | ==== Exportar cuentas de usuarios de Diaguita ==== | ||
+ | |||
+ | Para exportar las cuentas de usuario de SIU-Diaguita que luego serán importadas en Araí-Usuarios se debe ejecutar el siguiente comando sobre la instalación de Diaguita: | ||
+ | |||
+ | **toba proyecto exportar_usuarios_arai -p diaguita -f usuarios_diaguita** | ||
+ | |||
+ | Este comando genera un archivo JSON con las cuentas de usuario de Diaguita. 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 diaguita -f usuarios_diaguita** | ||
+ | |||
+ | Se debe verificar el JSON generado y tener en cuenta que en la sección accounts el valor del atributo appName debe coincidir con el nombre de la aplicación de SIU-Diaguita generado en **Registrar SIU-Diaguita como Service Provider en Araí Usuarios**. 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 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 [[https://hub.siu.edu.ar/siu/expedientes/-/blob/master/prod/arai/util/usuarios_cmd.yml|//usuarios_cmd.yml//]] de la sgte forma: | ||
+ | |||
+ | **docker stack deploy --with-registry-auth -c prod/arai/util/usuarios_cmd.yml usr-cmd** | ||
+ | |||
+ | Dicho servicio requiere que el nodo que ejecuta los comandos Docker y además tiene el contenido clonado del repositorio, agregarle el labels.cmd=usuarios para que el servicio usuarios_cmd se inicie y acceda al directorio files: | ||
+ | |||
+ | **NODE_NAME=$(docker info --format '{{ .Name }}')** | ||
+ | |||
+ | **docker node update --label-add cmd=usuarios $NODE_NAME** | ||
+ | |||
+ | Luego se debe copiar el JSON con las cuentas exportadas al directorio [[https://hub.siu.edu.ar/siu/expedientes/-/blob/master/prod/arai/util/files|//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_diaguita.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 [[https://documentacion.siu.edu.ar/usuarios/docs/cache/guia-importacion-usuarios-cuentas/|//Araí-Usuarios//]] | ||
+ | |||
+ | ====== 11 - Configuración de niveles de autorización de firma de documentos ====== | ||
+ | |||
+ | Para configurar el nivel de firma de los documentos generados por Diaguita: | ||
+ | |||
+ | Ingresar al ítem de menú "Administración -> Parámetros" y establecer el parámetro FIRMA_DIGITAL_NIVEL_AUTORIZACION en el valor deseado (Autorización básica, Firma digital o Autorización mixta). | ||
+ | |||
+ | En el caso de elegir "Autorización mixta" se debe ingresar al menú "Administración -> Tablas maestras generales -> Configuración de firma por tipo de documento" para establecer en cada uno de los documentos generados por SIU-Diaguita cuál será el tipo de firma a utilizar (Autorización básica, Firma digital). | ||
+ | |||
+ | ====== 12 - Errores más comunes ====== | ||
+ | |||
+ | <HTML><ul></HTML> | ||
+ | <HTML><li></HTML>> <HTML><p></HTML>Tener mal las las rutas de **Entity Id, Assertion Consumer Serv. y Single Logout Serv.**<HTML></p></HTML> | ||
+ | <HTML></li></HTML><HTML></ul></HTML> | ||
+ | |||
+ | > Una vez hechas todas las configuraciones usted puede verificarlas en la URLs en **https:%%//%%diaguita.local/diaguita/?metadata** | ||
+ | |||
+ | <HTML><ul></HTML> | ||
+ | <HTML><li></HTML>> <HTML><p></HTML>No estar usando el certificado del idp correcto, se configura en el archivo **instalador.env**, usted puede usar su propio certificado o usar el que se genera como indica la documentación [[https://expedientes.siu.edu.ar/docs/arai/#generar-certificados|//https:%%//%%expedientes.siu.edu.ar/docs/arai/#generar-certificados//]]<HTML></p></HTML> | ||
+ | <HTML></li></HTML><HTML></ul></HTML> | ||
+ | |||
+ | <HTML><ul></HTML> | ||
+ | <HTML><li></HTML>> <HTML><p></HTML>En caso de tener un error “toba_error_seguridad: Error Interno La configuración de seguridad requiere la existencia de archivos certificado y clave privada para el SP” agregar en el archivo **instalador.env** en la parte de CONFIG SP ONE LOGIN **SSO_SP_VERIFY_PEER=false**<HTML></p></HTML> | ||
+ | <HTML></li></HTML><HTML></ul></HTML> | ||
+ | |||
+ | <HTML><ul></HTML> | ||
+ | <HTML><li></HTML>> <HTML><p></HTML>Errores en o los certificados, usted puede comprobar los certificados de los dominios donde esta corriendo el ecosistema o de la aplicación que está tratando de conectar al mismo, con los comandos:<HTML></p></HTML> | ||
+ | <HTML></li></HTML><HTML></ul></HTML> | ||
+ | |||
+ | **openssl s_client -connect uunn.local:443** | ||
+ | |||
+ | **curl -I https:%%//%%uunn.local** | ||
+ | |||
+ | **openssl s_client -connect diaguita.local:443** | ||
+ | |||
+ | **curl -I https:%%//%%diaguita.local** | ||
+ | |||
+ | <HTML><ul></HTML> | ||
+ | <HTML><li></HTML>> <HTML><p></HTML>Error en la url de las apis, desde hace un tiempo todas las apis del SIU están versionadas, verifique que las URLs de las mismas tengan especificada la versión ejemplo **/v1**/ o **/v2/** y que las urls de las mismas terminen con **/**<HTML></p></HTML> | ||
+ | <HTML></li></HTML><HTML></ul></HTML> | ||
+ | |||
+ | <HTML><ul></HTML> | ||
+ | <HTML><li></HTML>> <HTML><p></HTML>Error en el vincula_arai_appID, debe controlar que en el archivo **instalacion/instalacion.ini** sea el mismo identificador de aplicación de SIU-Diaguita registrada en Araí-Usuarios.<HTML></p></HTML> | ||
+ | <HTML></li></HTML><HTML></ul></HTML> | ||
+ | |||
+ | <HTML><ul></HTML> | ||
+ | <HTML><li></HTML>> <HTML><p></HTML>Error en la url o en los datos de acceso de la api de documentos en el archivo **instalacion/arai_documentos.ini**<HTML></p></HTML> | ||
+ | <HTML></li></HTML><HTML></ul></HTML> | ||
+ | |||
+ | <HTML><ul></HTML> | ||
+ | <HTML><li></HTML>> <HTML><p></HTML>Problemas de escritura en **/tmp** debe configurar **queue_temp_dir** en el archivo **instalacion/arai_documentos.ini**<HTML></p></HTML> | ||
+ | <HTML></li></HTML><HTML></ul></HTML> | ||
+ | |||
+ | <HTML><ul></HTML> | ||
+ | <HTML><li></HTML>> <HTML><p></HTML>No tener en la base de datos de Diaguita, el esquema y la tabla queue<HTML></p></HTML> | ||
+ | <HTML></li></HTML><HTML></ul></HTML> | ||
+ | |||
+ | <HTML><ul></HTML> | ||
+ | <HTML><li></HTML>> <HTML><p></HTML>No tener corriendo Jasper, ejecutar **diaguita_reportes.sh**<HTML></p></HTML> | ||
+ | <HTML></li></HTML> | ||
+ | <HTML><li></HTML>> <HTML><p></HTML>**Error en Postgres: “**//sintaxis de entrada no válida para tipo json//”<HTML></p></HTML> | ||
+ | <HTML></li></HTML><HTML></ul></HTML> | ||
+ | |||
+ | Se puede obtener este error tanto en Diaguita como en Arai-Documentos. | ||
+ | |||
+ | > Normalmente ocurre por tener **standard_conforming_strings = off.** | ||
+ | |||
+ | Se debe modificar ese valor ya que se requiere tener en Postgres el **standard_conforming_strings** = **on** | ||
+ | |||
+ | <HTML><ul></HTML> | ||
+ | <HTML><li></HTML>> <HTML><p></HTML>Los documentos quedan en el estado “**Pendiente de envío”**<HTML></p></HTML> | ||
+ | <HTML></li></HTML><HTML></ul></HTML> | ||
+ | |||
+ | El problema más común en este caso es que el worker no se encuentra corriendo. Verificar el estado y levantarlo en caso de que no este ejecutandose (Ver pto 8 de esta guia) | ||
+ | |||
+ | <HTML><ul></HTML> | ||
+ | <HTML><li></HTML>> <HTML><p></HTML>Documento en diaguita en estado **Fallido**<HTML></p></HTML> | ||
+ | <HTML></li></HTML><HTML></ul></HTML> | ||
+ | |||
+ | Verificar: **docs-cli.log/queue.log** y logs de arai-documentos | ||
+ | |||
+ | <HTML><ul></HTML> | ||
+ | <HTML><li></HTML>> <HTML><p></HTML>Luego de firmar el documento en huarpe, no cambia de estado en diaguita<HTML></p></HTML> | ||
+ | <HTML></li></HTML><HTML></ul></HTML> | ||
+ | |||
+ | Verificar **docs-cli.log/queue.log** y logs de arai-documentos | ||
+ | |||
+ | > Verificar si hay error en el log del worker de arai-documentos | ||
+ | |||
+ | <HTML><ul></HTML> | ||
+ | <HTML><li></HTML>> <HTML><p></HTML>Posibles causas:<HTML></p></HTML> | ||
+ | |||
+ | <HTML><ul></HTML> | ||
+ | <HTML><li></HTML>> <HTML><p></HTML>Certificado SSL no válido y la url del parámetro **rest_diaguita** en **arai_documentos.ini** está configurada con https y por lo tanto falla el POST desde arai-documentos a Diaguita.<HTML></p></HTML> | ||
+ | <HTML></li></HTML> | ||
+ | <HTML><li></HTML>> <HTML><p></HTML>No está público el rest de notificaciones. Verificar **url_protegida** en **servidor.ini.**<HTML></p></HTML> | ||
+ | <HTML></li></HTML> | ||
+ | <HTML><li></HTML>> <HTML><p></HTML>Verificar si es correcta la url del parámetro **diaguita_rest** en **instalacion/arai_documentos.ini**<HTML></p></HTML> | ||
+ | |||
+ | <HTML><ul></HTML> | ||
+ | <HTML><li></HTML>> <HTML><p></HTML>Puede que hayan cambiado las credenciales/secrets, corregir con: service supervisor restart<HTML></p></HTML> | ||
+ | <HTML></li></HTML><HTML></ul></HTML> | ||
+ | <HTML></li></HTML><HTML></ul></HTML> | ||
+ | <HTML></li></HTML><HTML></ul></HTML> | ||
+ | |||
+ | <HTML><ul></HTML> | ||
+ | <HTML><li></HTML>> <HTML><p></HTML>Error el enviar documentos a Arai-Documentos:<HTML></p></HTML> | ||
+ | <HTML></li></HTML><HTML></ul></HTML> | ||
+ | |||
+ | > **Mensaje**: //The transport fails to send the message due to some internal error.// | ||
+ | |||
+ | Este error posiblemente ocurre porque algún parámetro de conexión a la base donde se encuentra la tabla "//queue//" es incorrecto. | ||
+ | |||
+ | Se debería chequear el archivo instalacion/arai_documentos.ini para confirmar que los datos son correctos.Si se realiza la corrección de un parámetro y se está usando supervisor para correr el worker, se debe tener en cuenta que es necesario reiniciar el servicio de supervisor para que tome los cambios realizados. | ||
+ | |||
+ | ====== 13 - Anexo: Actualización en modo Ecosistema ====== | ||
+ | |||
+ | Actualmente al momento de actualizar SIU-Diaguita, el instalador no migra todas las configuraciones de la instalación anterior y existen archivos de configuración que es necesario revisar y terminar de configurar ya que no se configuran mediante el instalador.env. | ||
+ | |||
+ | **Archivos que intervienen en el proceso:** | ||
+ | |||
+ | instalacion/instalacion.ini | ||
+ | |||
+ | instalacion/arai_documentos.ini | ||
+ | |||
+ | instalacion/saml_onelogin.ini | ||
+ | |||
+ | instalacion/web_server.ini | ||
+ | |||
+ | instalacion/i%%__%%produccion/instancia.ini | ||
+ | |||
+ | instalacion/i%%__%%produccion/p%%__%%diaguita/rest/servidor.ini | ||
+ | |||
+ | instalacion/i%%__%%produccion/p%%__%%toba_usuarios/rest/rest_arai_usuarios/cliente.ini | ||
+ | |||
+ | **Archivos de configuraciones no migradas:** | ||
+ | |||
+ | En el archivo instalacion/instalacion.ini no se agrega los campos | ||
+ | |||
+ | vincula_arai_usuarios = "1" | ||
+ | |||
+ | vincula_arai_appID = "_15e386a849792db499366d86aa4accf0c7e234c7f8" | ||
+ | |||
+ | Se necesita agregar al archivo vincula_arai_usuarios = "1" y vincula_arai_appID el id del mismo se tiene que ver en Arai-Usuarios / Aplicaciones. | ||
+ | |||
+ | En el archivo instalacion/i%%__%%produccion/p%%__%%toba_usuarios/rest/rest_arai_usuarios/cliente.ini no se realiza la configuración automáticamente y es necesario ajustar los valores. | ||
+ | |||
+ | [conexion] | ||
+ | |||
+ | to = "https:%%//%%uunn.local/api-usuarios/v1/" | ||
+ | |||
+ | auth_tipo = "basic" | ||
+ | |||
+ | auth_usuario = "diaguita" | ||
+ | |||
+ | auth_password = "diaguita123" | ||
+ | |||
+ | Los datos que van configurados en este punto dependen de la instalación, que esté actualizando. |
Revisión del 18:13 16 feb 2023
Guía técnica para conectar SIU-Diaguita al Ecosistema SIU, se requiere tener funcionando Arai-Usuarios, Arai-Documentos, Huarpe y Sudocu.
Sumario
- 1 ==========================================================
- 2 ==========================================================
- 3 1 - Registrar SIU-Diaguita como Service Provider en Araí Usuarios
- 4 2 - Configurar parámetros SAML en SIU-Diaguita
- 5 ==========================================================
- 6 ==========================================================
- 7 ==========================================================
- 8 ==========================================================
- 9 ==========================================================
- 10 ==========================================================
- 11 3 - Forzar uso de HTTPS en SIU-Diaguita
- 12 4 - Configurar el cliente de usuarios en SIU-Diaguita
- 13 ==========================================================
- 14 ==========================================================
- 15 ==========================================================
- 16 ==========================================================
- 17 5 - Habilitar el REST de notificaciones
- 18 6 - Configurar los parámetros para Araí-Documentos en SIU-Diaguita
- 19 ==========================================================
- 20 ==========================================================
- 21 7 - Habilitar acceso externo de API Backend de documentos
- 22 8 - Worker de Documentos
- 23 9- Habilitar Bundles
- 24 ==========================================================
- 25 ==========================================================
- 26 10 - Usuarios y cuentas
- 27 Sincronizar cuentas de usuarios
- 28 Exportar cuentas de usuarios de Diaguita
- 29 Importar cuentas en Araí-Usuarios
==========================================================
//Recuerde que el dominio uunn.local debe ser reemplazado por el que corresponde.//
//La URL https:%%//%%universidad.edu.ar/diaguita usada como ejemplo es la url de acceso a la instalación existente de SIU-Diaguita//
==========================================================
1 - Registrar SIU-Diaguita como Service Provider en Araí Usuarios
1.1 Ingrese a Araí-Usuarios
1.2 Dirigirse a Aplicaciones
1.3 Presionar el botón Agregar +
1.4 Completar de la siguiente manera el tab Datos Generales
> Url: [[1]] > > Nombre: diaguita > > Cómo ícono colocar esta imagen: [[2]]
1.5 Completar de la siguiente manera el tab SAML
<HTML>- </HTML>
<HTML>
- </HTML>> <HTML>
</HTML>Chequear la opción Activo<HTML>
</HTML> <HTML> </HTML>
<HTML> - </HTML>> <HTML>
</HTML>Entity Id: [[3]]<HTML>
</HTML> <HTML> </HTML>
<HTML> - </HTML>> <HTML>
</HTML>Assertion Consumer Serv.: [[4]]<HTML>
</HTML> <HTML> </HTML>
<HTML> - </HTML>> <HTML>
</HTML>Single Logout Serv.: [[5]]<HTML>
</HTML> <HTML> </HTML><HTML>
1.6 Presionar el botón Guardar
2 - Configurar parámetros SAML en SIU-Diaguita
2.1 Editar en 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/diaguita/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=[[6]]
==========================================================
//SSO_SP_IDP_METADATA_URL: URL del IDP donde estén accesibles los metadatos. Por ej: https:%%//%%service.example.com/idp.metadata//
//SSO_SP_IDP_URL_SERVICE: URL del IDP donde esté accesible el servicio. Por ej: http:%%//%%service.example.com/simplesaml/saml2/idp/SSOService.php//
//SSO_SP_IDP_SINGLE_LOGOUT_URL_SERVICE: URL para cerrar sesión en el IDP. Por ej: http:%%//%%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 usar defaultUserAccount//
//SSO_SP_PERMITE_LOGIN_TOBA: Si se activa el login interno del proyecto vía Toba. Posibles valores 0 y 1//
//SSO_SP_AUTH_SOURCE: El auth source del SP, por defecto es default-sp//
//SSO_SP_COOKIE_NAME: Nombre de la cookie manejada por OneLogin. Por ej: TOBA_SESSID//
//SSO_SP_IDP_NAME: Nombre del IDP. Por ej: service.example.com//
==========================================================
2.2 Ejecutar el comando de reconfiguración del instalador:
- ./bin/instalador proyecto:reconfigurar sso**
2.3 Editar en el archivo **instalacion/instalacion.ini** donde se incorporan las sgtes líneas:
autenticacion = "saml_onelogin"
vincula_arai_usuarios = "1"
==========================================================
//Se debe agregar el parámetro vincula_arai_usuarios = "1" ya que este no se genera automáticamente.//
==========================================================
2.4 Verificar en el archivo **instalacion/saml_onelogin.ini** que exista la entrada:
proyecto_login = "diaguita"
==========================================================
//En versiones de SIU-Diaguita 3.0.1 o anterior no se genera automáticamente el valor del parámetro proyecto_login y por lo tanto se debe configurar manualmente. En posteriores versiones se incluirá la automatización del mismo.//
==========================================================
3 - Forzar uso de HTTPS en SIU-Diaguita
3.1 Verificar el archivo **instalacion/web_server.ini** que esté configurado HTTPS
3.1.1 De lo contrario puede editar el archivo **instalador.env**
TOBA_FORZAR_HTTPS=on
3.1.2 Ejecutar el comando de reconfiguración de TOBA:
- ./bin/instalador proyecto:reconfigurar toba**
4 - Configurar el cliente de usuarios en SIU-Diaguita
4.1 Editar el archivo **instalacion/i%%__%%produccion/p%%__%%toba_usuarios/rest/rest_arai_usuarios/cliente.ini**
[conexion]
to = "https:%%//%%uunn.local/api-usuarios/v1/"
auth_tipo = "basic"
auth_usuario = "USR_API_USUARIOS"
auth_password = "PASS_API_USUARIOS"
==========================================================
//El usuario y la contraseña del API de Arai-Usuarios configurados en este paso, se almacenan en un secret, para los cual editamos el archivo **secrets.sh** y modificamos la linea 13 donde crea el secret usuarios_api_users//
//Agregamos ["diaguita","diaguita123"] en este caso "diaguita" sería el usuario y "diaguita 123" la contraseña.//
//printf '[["diaguita","diaguita123"],["documentos","documentos123"],["huarpe","huarpe123"],["proveedores","proveedores123"]]' | docker secret create usuarios_api_users -//
//Para posteriormente ejecutar los comandos://
//**docker secret rm usuarios_api_users**//
//**./secrets.sh**//
==========================================================
4.2 Editar el archivo **instalacion/instalacion.ini** y agregar el appUniqueId
vincula_arai_appID = 'APP_UNIQUE_ID_DIAGUITA'
==========================================================
//APP_UNIQUE_ID_DIAGUITA: Es el identificador de aplicación de SIU-Diaguita en Araí-Usuarios. Este valor se puede obtener desde el listado de Aplicaciones en Araí-Usuarios en la columna appUniqueId.//
==========================================================
5 - Habilitar el REST de notificaciones
5.1 Editar el archivo **instalacion/i%%__%%produccion/p%%__%%diaguita/rest/servidor.ini**
[settings]
formato_respuesta = "json"
url_protegida = "/(?=^((?!convocatorias-publicas|notificaciones).)+$)/xs"
encoding = "utf-8"
6 - Configurar los parámetros para Araí-Documentos en SIU-Diaguita
6.1 Se debe crear el archivo **instalacion/arai_documentos.ini** con los siguientes valores:
host_arai="https:%%//%%uunn.local/docs"
usr_arai="USR_API_DOCUMENTOS"
pass_arai="PASS_API_DOCUMENTOS"
queue_path="/usr/local/app/temp"
queue_temp_dir = "/usr/local/app/temp"
db_queue = "DB_DIAGUITA"
dbq_host = "HOST_POSTGRES"
dbq_port = PUERTO_POSTGRES
dbq_user = "USER_POSTGRES"
dbq_password = "PASSWORD_POSTGRES"
dbq_table_name = "queue.queue"
polling_interval = 1000
rest_diaguita = "https:%%//%%universidad.edu.ar/diaguita/rest/v1/notificaciones/documento"
==========================================================
//host_arai: Es la ruta a la API de Araí-Documentos//
//usr_arai: Usuario de acceso a la API de Araí-Documentos//
//pass_arai: Contraseña de acceso a la API de Araí-Documentos//
//queue_path: Directorio usado por la librería queue para escribir archivos internos//
//queue_temp_dir: Directorio usado por la librería queue para escribir archivos temporales//
//db_queue: Nombre de la base de datos donde se encuentra el schema queue. Corresponde a la base de negocio de SIU-Diaguita//
//dbq_host: Ruta al host donde se encuentra la base db_queue//
//dbq_port: Puerto de PostgreSQL donde se encuentra la base db_queue//
//dbq_user: Usuario de PostgreSQL donde se encuentra la base db_queue//
//dbq_password: Contraseña de PostgreSQL donde se encuentra la base db_queue//
//dbq_table_name: Tabla usada por la librería queue. Se debe mantener el valor queue.queue//
//polling_interval: No se debe modificar//
//rest_diaguita: URL de acceso al REST de notificaciones de Diaguita. Se debe reemplazar por la URL de la instalación existente, manteniendo /rest/notificaciones/documento//
==========================================================
7 - Habilitar acceso externo de API Backend de documentos
7.1 Editar el archivo **docs.yml**
Agregar las líneas:
- "traefik.http.routers.docs-backend.rule=Host(`uunn.local`) && PathPrefix(`/docs/rest/backend`)"
- "traefik.http.routers.docs-backend.tls=true"
Adicionalmente, como este es un endpoint que no debería quedar publicado se tendrían que adicionar las siguientes líneas (con su correspondiente ajuste):
- "traefik.http.middlewares.docs-ipwhitelist.ipwhitelist.sourcerange=127.0.0.1/32,172.77.100.0/24"
- "traefik.http.routers.docs-backend.middlewares=security-headers@file,docs-ipwhitelist"
7.2 Luego se debe realizar el deploy de documentos para actualizar los servicios.
- docker stack rm docs**
- docker stack deploy --with-registry-auth -c prod/arai/docs.yml docs**
8 - Worker de Documentos
8.1 Iniciar el worker de documentos es:
- bin/toba proyecto iniciar_workers_arai_documentos -p diaguita**
8.1.1 También puede configurar Supervisor para correr el worker de documentos.
[program:diaguita-worker-documentos]
command=<path_instalacion_diaguita>/bin/toba proyecto iniciar_workers_arai_documentos -p diaguita
autostart=true
autorestart=true
stderr_logfile=/var/log/diaguita-worker-documentos-err.log
stderr_logfile_maxbytes=2MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB
stdout_logfile=/var/log/diaguita-worker-documentos-stdout.log
stdout_logfile_maxbytes=10MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
8.1.2 Ejecutar para iniciar Supervisor
- systemctl start supervisor**
8.1.3 Verificar la ejecución del worker
- supervisorctl status diaguita-worker-documentos**
9- Habilitar Bundles
9.1 Se recomienda generar un secret (seguro) para almacenar la contraseña de la API de SIU-Diaguita con el siguiente comando:
- printf "diaguita123" | docker secret create diaguita_api_client_pass -**
O podemos editar el archivo **secrets.sh** y agregar la línea:
printf "diaguita123" | docker secret create diaguita_api_client_pass -
9.2 En caso de haber editado el archivo **secrets.sh** ejecutar:
- ./secrets.sh**
9.3 En el archivo **prod/arai/huarpe.yml** se deben descomentar (o agregar) los ítems en las secciones que se detallan a continuación.
- Agregar en la sección webapp:secrets
- Línea 37
webapp
secrets:
- diaguita_api_client_pass
- Agregar en la sección secrets
- Línea 94
secrets:
diaguita_api_client_pass:
external: true
9.4 En el archivo **huarpe.env** debemos definir valores para las restantes variables del entorno
API_DIAGUITA_USR=diaguita_api_client_user
API_DIAGUITA_URL=https:%%//%%universidad.edu.ar/diaguita/rest/v1/
API_DIAGUITA_PASS_FILE=/run/secrets/diaguita_api_client_pass
BUNDLE_COMPRAS_ACTIVO=1
BUNDLE_PATRIMONIO_ACTIVO=1
DIAGUITA_URL_COMPRAS=https:%%//%%compras.uunn.local/
DIAGUITA_APP_UNIQUE_ID=
==========================================================
//BUNDLE_COMPRAS_ACTIVO: Indica que se deben activar los bundles de Compras de SIU-Diaguita//
//BUNDLE_PATRIMONIO_ACTIVO: Indica que se deben activar el bundle de Patrimonio de SIU-Diaguita//
//API_DIAGUITA_USR: Usuario para acceder a la API de SIU-Diaguita.//
//API_DIAGUITA_URL: URL de la API de SIU-Diaguita. Ej: https:%%//%%universidad.edu.ar/diaguita/rest/vX///
//DIAGUITA_URL_COMPRAS: URL de la operación en SIU-Diaguita. Ej: https:%%//%%universidad.edu.ar/diaguita/aplicacion.php?ai=diaguita||nro//
//DIAGUITA_APP_UNIQUE_ID: Es el identificador de aplicación de SIU-Diaguita en Araí-Usuarios. Este valor se puede obtener desde el listado de Aplicaciones en Araí-Usuarios en la columna appUniqueId//
==========================================================
9.5 Ejecutar los comandos:
- docker stack rm huarpe**
- docker stack rm usuarios**
- docker stack deploy --with-registry-auth -c prod/arai/usuarios.yml usuarios**
- docker stack deploy --with-registry-auth -c prod/arai/huarpe.yml huarpe**
10 - Usuarios y cuentas
En adelante, nos referiremos de la siguiente manera:
<HTML>- </HTML>
<HTML>
- </HTML>> <HTML>
</HTML>Llamaremos `usuario` a los usuarios de SIU-Araí: Usuarios<HTML>
</HTML> <HTML> </HTML>
<HTML> - </HTML>> <HTML>
</HTML>Llamaremos `cuenta` a la identificación/es que tenía un humano o sistema en la aplicación de origen<HTML>
</HTML> <HTML> </HTML><HTML>
Para que un usuario tenga acceso a una cuenta de SIU-Diaguita necesita hacer el mapeo correspondiente en ARAI-Usuarios desde **Usuarios -> (Filtramos el usuario deseado) -> Accedemos desde** Media/image1.gif?16x16 **-> En la pestaña “Cuentas”**
Seleccionamos la Aplicación: Diaguita (Es el nombre que se definió al momento de dar de alta la aplicación en ARAI-Usuarios)
Seleccionamos la Aplicación: <Escriba la cuenta deseado> (Recuerde que cuenta es el usuario que existe en la aplicación SIU-Diaguita)
Una representación esquemática sería:
persona
|
usuario <──────> cuenta <──────> aplicacion
| | |
svier sergio diaguita
| | |
svier servier pilagá
Sincronizar cuentas de usuarios
Exportar cuentas de usuarios de Diaguita
Para exportar las cuentas de usuario de SIU-Diaguita que luego serán importadas en Araí-Usuarios se debe ejecutar el siguiente comando sobre la instalación de Diaguita:
- toba proyecto exportar_usuarios_arai -p diaguita -f usuarios_diaguita**
Este comando genera un archivo JSON con las cuentas de usuario de Diaguita. 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 diaguita -f usuarios_diaguita**
Se debe verificar el JSON generado y tener en cuenta que en la sección accounts el valor del atributo appName debe coincidir con el nombre de la aplicación de SIU-Diaguita generado en **Registrar SIU-Diaguita como Service Provider en Araí Usuarios**. 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 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 [[7]] de la sgte forma:
- docker stack deploy --with-registry-auth -c prod/arai/util/usuarios_cmd.yml usr-cmd**
Dicho servicio requiere que el nodo que ejecuta los comandos Docker y además tiene el contenido clonado del repositorio, agregarle el labels.cmd=usuarios para que el servicio usuarios_cmd se inicie y acceda al directorio files:
- NODE_NAME=$(docker info --format 'Plantilla:.Name')**
- docker node update --label-add cmd=usuarios $NODE_NAME**
Luego se debe copiar el JSON con las cuentas exportadas al directorio [[8]] 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_diaguita.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 [[9]]
11 - Configuración de niveles de autorización de firma de documentos
Para configurar el nivel de firma de los documentos generados por Diaguita:
Ingresar al ítem de menú "Administración -> Parámetros" y establecer el parámetro FIRMA_DIGITAL_NIVEL_AUTORIZACION en el valor deseado (Autorización básica, Firma digital o Autorización mixta).
En el caso de elegir "Autorización mixta" se debe ingresar al menú "Administración -> Tablas maestras generales -> Configuración de firma por tipo de documento" para establecer en cada uno de los documentos generados por SIU-Diaguita cuál será el tipo de firma a utilizar (Autorización básica, Firma digital).
12 - Errores más comunes
<HTML>- </HTML>
<HTML>
- </HTML>> <HTML>
</HTML>Tener mal las las rutas de **Entity Id, Assertion Consumer Serv. y Single Logout Serv.**<HTML>
</HTML> <HTML> </HTML><HTML>
> Una vez hechas todas las configuraciones usted puede verificarlas en la URLs en **https:%%//%%diaguita.local/diaguita/?metadata**
<HTML>- </HTML>
<HTML>
- </HTML>> <HTML>
</HTML>No estar usando el certificado del idp correcto, se configura en el archivo **instalador.env**, usted puede usar su propio certificado o usar el que se genera como indica la documentación [[10]]<HTML>
</HTML> <HTML> </HTML><HTML>
- </HTML>
<HTML>
- </HTML>> <HTML>
</HTML>En caso de tener un error “toba_error_seguridad: Error Interno La configuración de seguridad requiere la existencia de archivos certificado y clave privada para el SP” agregar en el archivo **instalador.env** en la parte de CONFIG SP ONE LOGIN **SSO_SP_VERIFY_PEER=false**<HTML>
</HTML> <HTML> </HTML><HTML>
- </HTML>
<HTML>
- </HTML>> <HTML>
</HTML>Errores en o los certificados, usted puede comprobar los certificados de los dominios donde esta corriendo el ecosistema o de la aplicación que está tratando de conectar al mismo, con los comandos:<HTML>
</HTML> <HTML> </HTML><HTML>
- openssl s_client -connect uunn.local:443**
- curl -I https:%%//%%uunn.local**
- openssl s_client -connect diaguita.local:443**
- curl -I https:%%//%%diaguita.local**
- </HTML>
<HTML>
- </HTML>> <HTML>
</HTML>Error en la url de las apis, desde hace un tiempo todas las apis del SIU están versionadas, verifique que las URLs de las mismas tengan especificada la versión ejemplo **/v1**/ o **/v2/** y que las urls de las mismas terminen con **/**<HTML>
</HTML> <HTML> </HTML><HTML>
- </HTML>
<HTML>
- </HTML>> <HTML>
</HTML>Error en el vincula_arai_appID, debe controlar que en el archivo **instalacion/instalacion.ini** sea el mismo identificador de aplicación de SIU-Diaguita registrada en Araí-Usuarios.<HTML>
</HTML> <HTML> </HTML><HTML>
- </HTML>
<HTML>
- </HTML>> <HTML>
</HTML>Error en la url o en los datos de acceso de la api de documentos en el archivo **instalacion/arai_documentos.ini**<HTML>
</HTML> <HTML> </HTML><HTML>
- </HTML>
<HTML>
- </HTML>> <HTML>
</HTML>Problemas de escritura en **/tmp** debe configurar **queue_temp_dir** en el archivo **instalacion/arai_documentos.ini**<HTML>
</HTML> <HTML> </HTML><HTML>
- </HTML>
<HTML>
- </HTML>> <HTML>
</HTML>No tener en la base de datos de Diaguita, el esquema y la tabla queue<HTML>
</HTML> <HTML> </HTML><HTML>
- </HTML>
<HTML>
- </HTML>> <HTML>
</HTML>No tener corriendo Jasper, ejecutar **diaguita_reportes.sh**<HTML>
</HTML> <HTML> </HTML>
<HTML> - </HTML>> <HTML>
</HTML>**Error en Postgres: “**//sintaxis de entrada no válida para tipo json//”<HTML>
</HTML> <HTML> </HTML><HTML>
Se puede obtener este error tanto en Diaguita como en Arai-Documentos.
> Normalmente ocurre por tener **standard_conforming_strings = off.**
Se debe modificar ese valor ya que se requiere tener en Postgres el **standard_conforming_strings** = **on**
<HTML>- </HTML>
<HTML>
- </HTML>> <HTML>
</HTML>Los documentos quedan en el estado “**Pendiente de envío”**<HTML>
</HTML> <HTML> </HTML><HTML>
El problema más común en este caso es que el worker no se encuentra corriendo. Verificar el estado y levantarlo en caso de que no este ejecutandose (Ver pto 8 de esta guia)
<HTML>- </HTML>
<HTML>
- </HTML>> <HTML>
</HTML>Documento en diaguita en estado **Fallido**<HTML>
</HTML> <HTML> </HTML><HTML>
Verificar: **docs-cli.log/queue.log** y logs de arai-documentos
<HTML>- </HTML>
<HTML>
- </HTML>> <HTML>
</HTML>Luego de firmar el documento en huarpe, no cambia de estado en diaguita<HTML>
</HTML> <HTML> </HTML><HTML>
Verificar **docs-cli.log/queue.log** y logs de arai-documentos
> Verificar si hay error en el log del worker de arai-documentos
<HTML>- </HTML>
<HTML>
- </HTML>> <HTML>
</HTML>Posibles causas:<HTML>
</HTML> <HTML>- </HTML>
<HTML>
- </HTML>> <HTML>
</HTML>Certificado SSL no válido y la url del parámetro **rest_diaguita** en **arai_documentos.ini** está configurada con https y por lo tanto falla el POST desde arai-documentos a Diaguita.<HTML>
</HTML> <HTML> </HTML>
<HTML> - </HTML>> <HTML>
</HTML>No está público el rest de notificaciones. Verificar **url_protegida** en **servidor.ini.**<HTML>
</HTML> <HTML> </HTML>
<HTML> - </HTML>> <HTML>
</HTML>Verificar si es correcta la url del parámetro **diaguita_rest** en **instalacion/arai_documentos.ini**<HTML>
</HTML> <HTML>- </HTML>
<HTML>
- </HTML>> <HTML>
</HTML>Puede que hayan cambiado las credenciales/secrets, corregir con: service supervisor restart<HTML>
</HTML> <HTML> </HTML><HTML>
</HTML><HTML> - </HTML>> <HTML>
</HTML><HTML> - </HTML>> <HTML>
- </HTML>
<HTML>
- </HTML>> <HTML>
</HTML>Error el enviar documentos a Arai-Documentos:<HTML>
</HTML> <HTML> </HTML><HTML>
> **Mensaje**: //The transport fails to send the message due to some internal error.//
Este error posiblemente ocurre porque algún parámetro de conexión a la base donde se encuentra la tabla "//queue//" es incorrecto.
Se debería chequear el archivo instalacion/arai_documentos.ini para confirmar que los datos son correctos.Si se realiza la corrección de un parámetro y se está usando supervisor para correr el worker, se debe tener en cuenta que es necesario reiniciar el servicio de supervisor para que tome los cambios realizados.
13 - Anexo: Actualización en modo Ecosistema
Actualmente al momento de actualizar SIU-Diaguita, el instalador no migra todas las configuraciones de la instalación anterior y existen archivos de configuración que es necesario revisar y terminar de configurar ya que no se configuran mediante el instalador.env.
- Archivos que intervienen en el proceso:**
instalacion/instalacion.ini
instalacion/arai_documentos.ini
instalacion/saml_onelogin.ini
instalacion/web_server.ini
instalacion/i%%__%%produccion/instancia.ini
instalacion/i%%__%%produccion/p%%__%%diaguita/rest/servidor.ini
instalacion/i%%__%%produccion/p%%__%%toba_usuarios/rest/rest_arai_usuarios/cliente.ini
- Archivos de configuraciones no migradas:**
En el archivo instalacion/instalacion.ini no se agrega los campos
vincula_arai_usuarios = "1"
vincula_arai_appID = "_15e386a849792db499366d86aa4accf0c7e234c7f8"
Se necesita agregar al archivo vincula_arai_usuarios = "1" y vincula_arai_appID el id del mismo se tiene que ver en Arai-Usuarios / Aplicaciones.
En el archivo instalacion/i%%__%%produccion/p%%__%%toba_usuarios/rest/rest_arai_usuarios/cliente.ini no se realiza la configuración automáticamente y es necesario ajustar los valores.
[conexion]
to = "https:%%//%%uunn.local/api-usuarios/v1/"
auth_tipo = "basic"
auth_usuario = "diaguita"
auth_password = "diaguita123"
Los datos que van configurados en este punto dependen de la instalación, que esté actualizando.