Track Técnico
Federico Bohn
Sebastián Marconi
Área de Desarrollo - SIU
Agenda
1. De MiUNQ a SIU-Huarpe.
2. ARAI-Usuarios: Identity Management.
3. ARAI-Registry: manejo de dependencias de servicios.
4. Caso de uso: ARAI-Huarpe-Diaguita-Mapuche-Pilagá vía Docker
tomado de MiUNQ
Objetivos técnicos:
● Acceso con Login único (SSO): no crear un nuevo usuario-
contraseña.
● Base de datos mínima o inexistente. Consumir servicios web de
los sistemas y la plataforma sobre la cual se instala.
● UI mobile-ready. El layout debe fluir según los roles del usuario y
las aplicaciones/infraestructura disponible.
● Capacidad de personalización.
Arquitectura
Aplicación SYMFONY 2.6. Tiene el concepto de Bundle (mezcla entre plugin y
módulo).
Módulo central del Huarpe
Módulo de RRHH: cliente rest de mapuche y UI de
autogestión.
Módulos con acceso a infraestructura y
aplicaciones propias de UNQ
Arquitectura
● Aplicación MVC: Controladores, vistas (templates Twig), acceso a
APIs vía Guzzle, etc.
● Se puede personalizar Huarpe tomando Bundles de distintas
instituciones, incluyendo SIU, integrando con distintos servicios.
● Cada Bundle se programa en su propio repositorio y se publica en
PHP-Composer.
● sdsd Define dependencias de librerías PHP en un archivo
● llamado composer.json, incluyendo rango de versiones
compatibles.
PHP-Composer
Archivo composer.json: Comandos sencillos:
{ ● Instalar dependencias: composer install
"name": "siu/huarpe", ● Actualizar versiones: composer update
"require": { Librerías SIU:
"symfony/symfony": "2.6.*", ● Dependientes de Toba (open-source):
"guzzlehttp/guzzle": "~5.1", packagist.org/packages/siu-toba
… ● Comunidad SIU: satis.siu.edu.ar
"siu/arai-cli": "1.0-alpha"
}
}
Agenda
1. De MiUNQ a SIU-Huarpe.
2. ARAI-Usuarios: Identity Management.
3. ARAI-Registry: manejo de dependencias de servicios.
4. Caso de uso: ARAI-Huarpe-Diaguita-Mapuche-Pilagá vía
Docker.
Usuarios: Identity Management
Es un componente ARAI constituído por:
1. Un Identity Provider (idp)
2. Base de datos centralizada de usuarios.
3. Aplicación de Gestión (ARAI-Usuarios).
4. API de gestión de usuarios.
Usuarios: Identity Provider
Identity Provider (idp): lo
que autentica al usuario. La
autorización sigue estando
en las aplicaciones.
Se utiliza el producto
SimpleSamlPHP (protocolo
SAML).
Es lo que permite el Single-
Sign-On (SSO)
Usuarios: Identity Provider
Módulos de SimpleSamlPhp
personalizados:
● SiuAraiAuth
● SiuAraiPassRecovery
● SiuAraiTheme
● SiuAraiError
Usuarios: Atributos
Se toman los nombres de Atributos de LDAP:
● uid: jperez Se irán incorporando el
● cn: Juan Perez resto de atributos de
● givenName: Juan
● sn: Perez eduPerson/eduOrg
● mail: jperez@..
● jpegPhoto: http://..
● accessTo [ siu-mapuche_1,
siu_diaguita_1 .. ]
● employeeNumber: 18
● appLauncherData
Usuarios: BD Postgres
usuarios usuarios_cuentas aplicaciones
identificador
password id_usuario identificador
nombres id_aplicacion etiqueta
… cuenta url
…
jperez
Juan Perez juan_p siu/mapuche
Mapuche
http://...
Usuarios: Gestión
● ABM de usuarios y
atributos.
● ABM de aplicaciones.
● Vinculación entre
aplicaciones y
usuarios.
● Manejo de la política
de seguridad y demás
configuraciones.
Usuarios: Auditoría
Permite visualizar el
inicio y fin de la sesión
de cada usuario, junto al
ingreso en cada una de
las aplicaciones.
Se considera desde la
entrega del token SAML.
La trazabilidad interna
corresponde a cada
aplicación.
Barra Común “App-Launcher”
Aplicaciones a las que tengo acceso.
Accesos a mi perfil y salida común a
los sistemas.
Barra Común “App-Launcher”
● Librería javascript https://github.com/SIU-Toba/js-app-
launcher
● Disponible como parte de Toba (2.7.1+).
● La información viene como atributo SAML (sólo login) o a
través de la API de Usuarios (a demanda).
● Recibe una URL para acceder a la edición del Perfil. Se
configura en ARAI-Usuarios, ofreciendo por defecto la del
portal SIU-Huarpe.
API para consumir
desde:
● ABM de usuarios
de aplicaciones.
● Editor de perfil
(como en SIU-
Huarpe)
● App-Launcher.
Usuarios: Provisioning
Migraciones iniciales de usuarios desde aplicaciones SIU. Matching de
atributos.
Provisioning “inline” desde las aplicaciones:
● Built-in: Toba desde 2.7.1
● Desde Toba-Usuarios consume la API de ARAI-Usuarios
● Se traen las cuentas y se notifican las modificaciones.
Alternativa a futuro: provisioning desde ARAI-Usuarios hacia las
aplicaciones.
Agenda
1. De MiUNQ a SIU-Huarpe.
2. ARAI-Usuarios: Identity Management.
3. ARAI-Registry: manejo de dependencias de servicios.
4. Caso de uso: ARAI-Huarpe-Diaguita-Mapuche-Pilagá vía
Docker.
Registry
Manejador de dependencia de servicios:
● Permite registrar las aplicaciones, servicios y APIS, respetando la
integridad de dependencias y requisitos de versiones.
● Este catálogo de instalaciones agiliza la detección y configuración de los
distintos servicios.
● Al conocer las aplicaciones instaladas permite armar un app-launcher para
navegarlas.
● A futuro puede ser un punto de monitoreo y soporte centralizado
Registry
● Cada sistema declara un archivo arai.json con todo lo que consume y
provee, con filtros de versiones.
● ARAI-Registry es una API REST que recibe los distintos arai.json, los controla
y almacena.
● El sistema al sincronizar impacta las novedades.
Pilaga Registry Diaguita
ofrece: API Pilaga ofrece: API Diaguita
consume: API Diaguita consume: API Pilaga
mapuche/arai.json Cuando se ejecuta “registry:sync”
{ Si hay un IDP (ej ARAI-Usuarios),
name: "siu/mapuche", envía el certificado propio y recibe el
description: "SIU-Mapuche", certificado y configura el SP.
consume: [ Si encuentra un RDI (ej Nuxeo) en la
registry Configura el rdi.ini de toba
{ name: "service:siu/sso-saml-idp", con los parámetros de conexión.
version: ">=0.2"
Si hay un Pilagá, trae la URL y la deja
}, en rest.ini
{ name: "service:siu/rdi" Si algún proyecto quiere usar la API de
version: ">=1.0" mapuche, se le pasa la URL y seteos.
Ej. digest o basic auth
},
Registra en la base de instalaciones,
{ name: "api:siu/pilaga" el acceso a la app Mapuche.
version: ">=2.4"
},
], name: "api:siu/mapuche",
version: "0.1.0",
provide: [ tag: "rectorado"
{
},
{ name: "app:siu/mapuche",
alias: "Mapuche",
description: "Módulo de RRHH",
version: "2.2.2",
icon: "www/img/mapuche.png",
},
]
}
Integración con Aplicaciones SIU
Se está trabajando con Diaguita, Pilaga y Mapuche para ser compatibles
en próximos releases:
● Auto-configuración de SSO
● Auto-configuración de clientes de API’s
● Utilización del app-launcher
● Integración provisioning ARAI-Usuarios
Arquitectura SIU
Agenda
1. De MiUNQ a SIU-Huarpe.
2. ARAI-Usuarios: Identity Management.
3. ARAI-Registry: manejo de dependencias de servicios.
4. Caso de uso: ARAI-Huarpe-Diaguita-Mapuche-Pilagá vía
Docker.
¿Qué hace?
Permite empaquetar una aplicación o servicio, con sus
dependencias, en una unidad llamada container.
Estos containers se pueden vincular creando entornos completos.
...
Ventajas sobre VMs
1. Son fáciles de programar: la instalación
es siempre via script.
2. Se personalizan vía herencia.
3. Son mucho más livianas (en storage y en
runtime).
Diferencia con VMs
vs. Docker
Máquinas Virtuales
docker-compose.yml
Es la receta sobre la que se arma un cluster de aplicaciones y
servicios. Se indica:
● Sobre qué imagen estática están basados (ej. ubuntu, ubuntu-
php, postgres, memcached, nuxeo, toba, etc).
● Las dependencias que tienen a nivel TCP/IP.
● Qué puertos publica hacia la máquina real (host).
● Variables de entorno (ej TOBA_DIR).
postgres: mapuche:
image: postgres:9.4 image: siutoba/docker-toba:v1.0
ports:
memcached: - "4004:80"
image: memcached:latest links:
- postgres
arai-registry: - arai-registry
image: siutoba/docker-web:v1.2 - arai-usuarios
links:
- postgres huarpe:
image: siutoba/docker-portal:v1.0
arai-usuarios: ports:
image: siutoba/docker-web:v1.2 - "4003:80"
ports: links:
- "4001:80" - postgres
links: - memcached
- postgres - mapuche
- arai-registry - arai-usuarios
- arai-registry
Ejemplo en acción
Se muestra en vivo como se levanta el
caso de uso Huarpe, Araí
con Mapuche, Pilaga y Diaguita
Más info….
● Disponible una versión alpha de todos esto en http://goo.
gl/47RSBg, como early-preview (sin soporte, no se garantiza
compatibilidad en futuras versiones)
● Apuntamos beta en Q1 2016
Demo Online
arai-desarrollo.siu.edu.ar
usuario: demo
password: demo
Contacto: Foro “Interoperabilidad Técnica”