Diferencia entre revisiones de «Guia rapida diaguita eei»
Línea 3: | Línea 3: | ||
====================================================================== | ====================================================================== | ||
− | + | ''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.1 Ingrese a Araí-Usuarios | ||
Línea 19: | Línea 19: | ||
1.4 Completar de la siguiente manera el tab Datos Generales | 1.4 Completar de la siguiente manera el tab Datos Generales | ||
− | > Url: | + | <blockquote>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''] | ||
+ | </blockquote> | ||
1.5 Completar de la siguiente manera el tab SAML | 1.5 Completar de la siguiente manera el tab SAML | ||
− | + | <ul> | |
− | + | <li><blockquote><p>Chequear la opción Activo</p></blockquote></li> | |
− | + | <li><blockquote><p>Entity Id: [https://universidad.edu.ar/diaguita/default-sp ''https://universidad.edu.ar/diaguita/default-sp'']</p></blockquote></li> | |
− | + | <li><blockquote><p>Assertion Consumer Serv.: [https://universidad.edu.ar/diaguita/?acs ''https://universidad.edu.ar/diaguita/?acs'']</p></blockquote></li> | |
− | + | <li><blockquote><p>Single Logout Serv.: [https://universidad.edu.ar/diaguita/?sls ''https://universidad.edu.ar/diaguita/?sls'']</p></blockquote></li></ul> | |
− | |||
− | |||
− | |||
− | |||
1.6 Presionar el botón Guardar | 1.6 Presionar el botón Guardar | ||
− | = | + | = '''2 - Configurar parámetros SAML en SIU-Diaguita''' = |
− | 2.1 Editar en el archivo | + | 2.1 Editar en el archivo '''instalador.env''' las siguientes líneas: |
###### CONFIG SP ONE LOGIN ###### | ###### CONFIG SP ONE LOGIN ###### | ||
− | SSO_SP_IDP_METADATA_URL=https: | + | SSO_SP_IDP_METADATA_URL=https://uunn.local/idp/saml2/idp/metadata.php |
− | SSO_SP_IDP_URL_SERVICE=https: | + | SSO_SP_IDP_URL_SERVICE=https://uunn.local/idp/saml2/idp/SSOService.php |
− | SSO_SP_IDP_SINGLE_LOGOUT_URL_SERVICE=https: | + | 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_IDP_PUBLIC_KEY_FILE=/usr/local/siu/diaguita/temp/certificado_idp.crt | ||
Línea 61: | Línea 57: | ||
SSO_SP_COOKIE_NAME=TOBA_SESSID | SSO_SP_COOKIE_NAME=TOBA_SESSID | ||
− | SSO_SP_IDP_NAME= | + | 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'' | |
====================================================================== | ====================================================================== | ||
Línea 87: | Línea 83: | ||
2.2 Ejecutar el comando de reconfiguración del instalador: | 2.2 Ejecutar el comando de reconfiguración del instalador: | ||
− | + | '''./bin/instalador proyecto:reconfigurar sso''' | |
− | 2.3 Editar en el archivo | + | 2.3 Editar en el archivo '''instalacion/instalacion.ini''' donde se incorporan las sgtes líneas: |
− | autenticacion = | + | autenticacion = "saml_onelogin" |
− | vincula_arai_usuarios = | + | 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 | + | 2.4 Verificar en el archivo '''instalacion/saml_onelogin.ini''' que exista la entrada: |
− | proyecto_login = | + | 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 | + | 3.1 Verificar el archivo '''instalacion/web_server.ini''' que esté configurado HTTPS |
− | 3.1.1 De lo contrario puede editar el archivo | + | 3.1.1 De lo contrario puede editar el archivo '''instalador.env''' |
TOBA_FORZAR_HTTPS=on | TOBA_FORZAR_HTTPS=on | ||
Línea 121: | Línea 117: | ||
3.1.2 Ejecutar el comando de reconfiguración de TOBA: | 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 | + | 4.1 Editar el archivo '''instalacion/i__produccion/p__toba_usuarios/rest/rest_arai_usuarios/cliente.ini''' |
[conexion] | [conexion] | ||
− | to = | + | to = "https://uunn.local/api-usuarios/v1/" |
− | auth_tipo = | + | auth_tipo = "basic" |
− | auth_usuario = | + | auth_usuario = "USR_API_USUARIOS" |
− | auth_password = | + | 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 | + | 4.2 Editar el archivo '''instalacion/instalacion.ini''' y agregar el appUniqueId |
vincula_arai_appID = 'APP_UNIQUE_ID_DIAGUITA' | vincula_arai_appID = 'APP_UNIQUE_ID_DIAGUITA' | ||
Línea 159: | Línea 155: | ||
====================================================================== | ====================================================================== | ||
− | + | ''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 | + | 5.1 Editar el archivo '''instalacion/i__produccion/p__diaguita/rest/servidor.ini''' |
[settings] | [settings] | ||
− | formato_respuesta = | + | formato_respuesta = "json" |
− | url_protegida = | + | url_protegida = "/(?=^((?!convocatorias-publicas|notificaciones).)+$)/xs" |
− | encoding = | + | encoding = "utf-8" |
− | = | + | = '''6 - Configurar los parámetros para Araí-Documentos en SIU-Diaguita''' = |
− | 6.1 Se debe crear el archivo | + | 6.1 Se debe crear el archivo '''instalacion/arai_documentos.ini''' con los siguientes valores: |
− | host_arai= | + | host_arai="https://uunn.local/docs" |
− | usr_arai= | + | usr_arai="USR_API_DOCUMENTOS" |
− | pass_arai= | + | pass_arai="PASS_API_DOCUMENTOS" |
− | queue_path= | + | queue_path="/usr/local/app/temp" |
− | queue_temp_dir = | + | queue_temp_dir = "/usr/local/app/temp" |
− | db_queue = | + | db_queue = "DB_DIAGUITA" |
− | dbq_host = | + | dbq_host = "HOST_POSTGRES" |
dbq_port = PUERTO_POSTGRES | dbq_port = PUERTO_POSTGRES | ||
− | dbq_user = | + | dbq_user = "USER_POSTGRES" |
− | dbq_password = | + | dbq_password = "PASSWORD_POSTGRES" |
− | dbq_table_name = | + | dbq_table_name = "queue.queue" |
polling_interval = 1000 | polling_interval = 1000 | ||
− | rest_diaguita = | + | 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 | + | 7.1 Editar el archivo '''docs.yml''' |
Agregar las líneas: | 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): | 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. | 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: | 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. | 8.1.1 También puede configurar Supervisor para correr el worker de documentos. | ||
Línea 267: | Línea 263: | ||
[program:diaguita-worker-documentos] | [program:diaguita-worker-documentos] | ||
− | command= | + | command=<path_instalacion_diaguita>/bin/toba proyecto iniciar_workers_arai_documentos -p diaguita |
autostart=true | autostart=true | ||
Línea 291: | Línea 287: | ||
8.1.2 Ejecutar para iniciar Supervisor | 8.1.2 Ejecutar para iniciar Supervisor | ||
− | + | '''systemctl start supervisor''' | |
8.1.3 Verificar la ejecución del worker | 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: | 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 | + | O podemos editar el archivo '''secrets.sh''' y agregar la línea: |
− | printf | + | printf "diaguita123" | docker secret create diaguita_api_client_pass - |
− | 9.2 En caso de haber editado el archivo | + | 9.2 En caso de haber editado el archivo '''secrets.sh''' ejecutar: |
− | + | '''./secrets.sh''' | |
− | 9.3 En el archivo | + | 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 | # Agregar en la sección webapp:secrets | ||
Línea 333: | Línea 329: | ||
external: true | external: true | ||
− | 9.4 En el archivo | + | 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_USR=diaguita_api_client_user | ||
− | API_DIAGUITA_URL=https: | + | API_DIAGUITA_URL=https://universidad.edu.ar/diaguita/rest/v1/ |
API_DIAGUITA_PASS_FILE=/run/secrets/diaguita_api_client_pass | API_DIAGUITA_PASS_FILE=/run/secrets/diaguita_api_client_pass | ||
Línea 345: | Línea 341: | ||
BUNDLE_PATRIMONIO_ACTIVO=1 | BUNDLE_PATRIMONIO_ACTIVO=1 | ||
− | DIAGUITA_URL_COMPRAS=https: | + | DIAGUITA_URL_COMPRAS=https://compras.uunn.local/ |
DIAGUITA_APP_UNIQUE_ID= | DIAGUITA_APP_UNIQUE_ID= | ||
Línea 351: | Línea 347: | ||
====================================================================== | ====================================================================== | ||
− | + | ''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'' | |
====================================================================== | ====================================================================== | ||
Línea 367: | Línea 363: | ||
9.5 Ejecutar los comandos: | 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: | En adelante, nos referiremos de la siguiente manera: | ||
− | + | <ul> | |
− | + | <li><blockquote><p>Llamaremos `usuario` a los usuarios de SIU-Araí: Usuarios</p></blockquote></li> | |
− | + | <li><blockquote><p>Llamaremos `cuenta` a la identificación/es que tenía un humano o sistema en la aplicación de origen</p></blockquote></li></ul> | |
− | |||
− | |||
− | Para que un usuario tenga acceso a una cuenta de SIU-Diaguita necesita hacer el mapeo correspondiente en ARAI-Usuarios desde | + | 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''' [[File:media/image1.gif|16x16px]] '''-> 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: Diaguita (Es el nombre que se definió al momento de dar de alta la aplicación en ARAI-Usuarios) | ||
− | Seleccionamos la Aplicación: | + | 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: | Una representación esquemática sería: | ||
Línea 397: | Línea 391: | ||
| | | | ||
− | usuario | + | usuario <──────> cuenta <──────> aplicacion |
| | | | | | | | ||
Línea 407: | Línea 401: | ||
svier servier pilagá | 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: | 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. | 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. | ||
Línea 419: | Línea 413: | ||
Por ejemplo: | 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 | + | 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 | + | 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: | 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 | + | 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. | 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 | 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 | + | 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: | Para configurar el nivel de firma de los documentos generados por Diaguita: | ||
− | Ingresar al ítem de menú | + | 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''' = | |
− | |||
− | |||
− | > | + | <ul> |
+ | <li><blockquote><p>Tener mal las las rutas de '''Entity Id, Assertion Consumer Serv. y Single Logout Serv.'''</p></blockquote></li></ul> | ||
− | < | + | <blockquote>Una vez hechas todas las configuraciones usted puede verificarlas en la URLs en '''https://diaguita.local/diaguita/?metadata''' |
− | < | + | </blockquote> |
− | + | <ul> | |
+ | <li><blockquote><p>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'']</p></blockquote></li></ul> | ||
− | + | <ul> | |
− | + | <li><blockquote><p>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'''</p></blockquote></li></ul> | |
− | |||
− | + | <ul> | |
− | + | <li><blockquote><p>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:</p></blockquote></li></ul> | |
− | |||
− | + | '''openssl s_client -connect uunn.local:443''' | |
− | + | '''curl -I https://uunn.local ''' | |
− | + | '''openssl s_client -connect diaguita.local:443''' | |
− | + | '''curl -I https://diaguita.local ''' | |
− | + | <ul> | |
− | + | <li><blockquote><p>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 '''/'''</p></blockquote></li></ul> | |
− | |||
− | + | <ul> | |
− | + | <li><blockquote><p>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.</p></blockquote></li></ul> | |
− | |||
− | + | <ul> | |
− | + | <li><blockquote><p>Error en la url o en los datos de acceso de la api de documentos en el archivo '''instalacion/arai_documentos.ini '''</p></blockquote></li></ul> | |
− | |||
− | + | <ul> | |
− | + | <li><blockquote><p>Problemas de escritura en '''/tmp''' debe configurar '''queue_temp_dir''' en el archivo '''instalacion/arai_documentos.ini '''</p></blockquote></li></ul> | |
− | |||
− | + | <ul> | |
− | + | <li><blockquote><p>No tener en la base de datos de Diaguita, el esquema y la tabla queue</p></blockquote></li></ul> | |
− | |||
− | + | <ul> | |
− | + | <li><blockquote><p>No tener corriendo Jasper, ejecutar '''diaguita_reportes.sh'''</p></blockquote></li> | |
− | + | <li><blockquote><p>'''Error en Postgres: “'''''sintaxis de entrada no válida para tipo json''”</p></blockquote></li></ul> | |
− | |||
− | |||
Se puede obtener este error tanto en Diaguita como en Arai-Documentos. | Se puede obtener este error tanto en Diaguita como en Arai-Documentos. | ||
− | > Normalmente ocurre por tener | + | <blockquote>Normalmente ocurre por tener '''standard_conforming_strings = off.''' |
− | + | </blockquote> | |
− | Se debe modificar ese valor ya que se requiere tener en Postgres el | + | Se debe modificar ese valor ya que se requiere tener en Postgres el '''standard_conforming_strings''' = '''on''' |
− | + | <ul> | |
− | + | <li><blockquote><p>Los documentos quedan en el estado “'''Pendiente de envío”'''</p></blockquote></li></ul> | |
− | |||
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) | 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) | ||
− | + | <ul> | |
− | + | <li><blockquote><p>Documento en diaguita en estado '''Fallido'''</p></blockquote></li></ul> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Verificar: '''docs-cli.log/queue.log''' y logs de arai-documentos | |
− | |||
− | + | <ul> | |
− | + | <li><blockquote><p>Luego de firmar el documento en huarpe, no cambia de estado en diaguita</p></blockquote></li></ul> | |
− | |||
− | |||
− | |||
− | |||
− | + | Verificar '''docs-cli.log/queue.log''' y logs de arai-documentos | |
− | |||
− | |||
− | |||
− | |||
− | < | + | <blockquote>Verificar si hay error en el log del worker de arai-documentos |
− | < | + | </blockquote> |
− | < | + | <ul> |
+ | <li><blockquote><p>Posibles causas:</p></blockquote> | ||
+ | <ul> | ||
+ | <li><blockquote><p>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.</p></blockquote></li> | ||
+ | <li><blockquote><p>No está público el rest de notificaciones. Verificar '''url_protegida''' en '''servidor.ini.'''</p></blockquote></li> | ||
+ | <li><blockquote><p>Verificar si es correcta la url del parámetro '''diaguita_rest''' en '''instalacion/arai_documentos.ini'''</p></blockquote> | ||
+ | <ul> | ||
+ | <li><blockquote><p>Puede que hayan cambiado las credenciales/secrets, corregir con: service supervisor restart</p></blockquote></li></ul> | ||
+ | </li></ul> | ||
+ | </li></ul> | ||
− | > | + | <ul> |
+ | <li><blockquote><p>Error el enviar documentos a Arai-Documentos:</p></blockquote></li></ul> | ||
− | Este error posiblemente ocurre porque algún parámetro de conexión a la base donde se encuentra la tabla | + | <blockquote>'''Mensaje''': ''The transport fails to send the message due to some internal error.'' |
+ | </blockquote> | ||
+ | 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. | 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. | 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/instalacion.ini | ||
Línea 577: | Línea 551: | ||
instalacion/web_server.ini | instalacion/web_server.ini | ||
− | instalacion/ | + | instalacion/i__produccion/instancia.ini |
− | instalacion/ | + | instalacion/i__produccion/p__diaguita/rest/servidor.ini |
− | instalacion/ | + | 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 | En el archivo instalacion/instalacion.ini no se agrega los campos | ||
− | vincula_arai_usuarios = | + | vincula_arai_usuarios = "1" |
− | vincula_arai_appID = | + | vincula_arai_appID = "_15e386a849792db499366d86aa4accf0c7e234c7f8" |
− | Se necesita agregar al archivo vincula_arai_usuarios = | + | 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/ | + | 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] | [conexion] | ||
− | to = | + | to = "https://uunn.local/api-usuarios/v1/" |
− | auth_tipo = | + | auth_tipo = "basic" |
− | auth_usuario = | + | auth_usuario = "diaguita" |
− | auth_password = | + | auth_password = "diaguita123" |
Los datos que van configurados en este punto dependen de la instalación, que esté actualizando. | Los datos que van configurados en este punto dependen de la instalación, que esté actualizando. |
Revisión del 18:16 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
- 4.1 ==========================================================
- 4.2 ==========================================================
- 4.3 ==========================================================
- 4.4 ==========================================================
- 4.5 ==========================================================
- 4.6 ==========================================================
- 5 3 - Forzar uso de HTTPS en SIU-Diaguita
- 6 4 - Configurar el cliente de usuarios en SIU-Diaguita
- 7 5 - Habilitar el REST de notificaciones
- 8 6 - Configurar los parámetros para Araí-Documentos en SIU-Diaguita
- 9 7 - Habilitar acceso externo de API Backend de documentos
- 10 8 - Worker de Documentos
- 11 9- Habilitar Bundles
- 12 10 - Usuarios y cuentas
- 13 11 - Configuración de niveles de autorización de firma de documentos
- 14 12 - Errores más comunes
- 15 13 - Anexo: Actualización en modo Ecosistema
==========================================================
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/diaguitaNombre: diaguita
Cómo ícono colocar esta imagen: https://hub.siu.edu.ar/siu/expedientes/-/blob/master/var/logos/diaguita.png
1.5 Completar de la siguiente manera el tab SAML
Chequear la opción Activo
Assertion Consumer Serv.: https://universidad.edu.ar/diaguita/?acs
Single Logout Serv.: https://universidad.edu.ar/diaguita/?sls
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
==========================================================
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/%22
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%22
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%22
==========================================================
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%7C%7Cnro
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:
Llamaremos `usuario` a los usuarios de SIU-Araí: Usuarios
Llamaremos `cuenta` a la identificación/es que tenía un humano o sistema en la aplicación de origen
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 16x16px -> 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 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 'Plantilla:.Name')
docker node update --label-add cmd=usuarios $NODE_NAME
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_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 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
Tener mal las las rutas de Entity Id, Assertion Consumer Serv. y Single Logout Serv.
Una vez hechas todas las configuraciones usted puede verificarlas en la URLs en https://diaguita.local/diaguita/?metadata
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
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
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:
openssl s_client -connect uunn.local:443
curl -I https://uunn.local
openssl s_client -connect diaguita.local:443
curl -I https://diaguita.local
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 /
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.
Error en la url o en los datos de acceso de la api de documentos en el archivo instalacion/arai_documentos.ini
Problemas de escritura en /tmp debe configurar queue_temp_dir en el archivo instalacion/arai_documentos.ini
No tener en la base de datos de Diaguita, el esquema y la tabla queue
No tener corriendo Jasper, ejecutar diaguita_reportes.sh
Error en Postgres: “sintaxis de entrada no válida para tipo json”
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
Los documentos quedan en el estado “Pendiente de envío”
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)
Documento en diaguita en estado Fallido
Verificar: docs-cli.log/queue.log y logs de arai-documentos
Luego de firmar el documento en huarpe, no cambia de estado en diaguita
Verificar docs-cli.log/queue.log y logs de arai-documentos
Verificar si hay error en el log del worker de arai-documentos
Posibles causas:
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.
No está público el rest de notificaciones. Verificar url_protegida en servidor.ini.
Verificar si es correcta la url del parámetro diaguita_rest en instalacion/arai_documentos.ini
Puede que hayan cambiado las credenciales/secrets, corregir con: service supervisor restart
Error el enviar documentos a Arai-Documentos:
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/%22
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.