Está en la página 1de 34

Track Tcnico

Federico Bohn
Sebastin 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 va Docker
tomado de MiUNQ

Objetivos tcnicos:
Acceso con Login nico (SSO): no crear un nuevo usuario-
contrasea.
Base de datos mnima o inexistente. Consumir servicios web de
los sistemas y la plataforma sobre la cual se instala.
UI mobile-ready. El layout debe fluir segn los roles del usuario y
las aplicaciones/infraestructura disponible.
Capacidad de personalizacin.
Arquitectura

Aplicacin SYMFONY 2.6. Tiene el concepto de Bundle (mezcla entre plugin y


mdulo).

Mdulo central del Huarpe

Mdulo de RRHH: cliente rest de mapuche y UI de


autogestin.

Mdulos con acceso a infraestructura y


aplicaciones propias de UNQ
Arquitectura
Aplicacin MVC: Controladores, vistas (templates Twig), acceso a
APIs va 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.

Define dependencias de libreras PHP en un archivo


sdsd 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": {
"symfony/symfony": "2.6.*",
Libreras SIU:
"guzzlehttp/guzzle": "~5.1", Dependientes de Toba (open-source):

"siu/arai-cli": "1.0-alpha"
packagist.org/packages/siu-toba
} Comunidad SIU: satis.siu.edu.ar
}
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 va
Docker.
Usuarios: Identity Management

Es un componente ARAI constitudo por:


1. Un Identity Provider (idp)
2. Base de datos centralizada de usuarios.
3. Aplicacin de Gestin (ARAI-Usuarios).
4. API de gestin de usuarios.
Usuarios: Identity Provider
Identity Provider (idp): lo
que autentica al usuario. La
autorizacin sigue estando
en las aplicaciones.
Se utiliza el producto
SimpleSamlPHP (protocolo
SAML).
Es lo que permite el Single-
Sign-On (SSO)
Usuarios: Identity Provider

Mdulos de SimpleSamlPhp
personalizados:
SiuAraiAuth
SiuAraiPassRecovery
SiuAraiTheme
SiuAraiError
Usuarios: Atributos

Se toman los nombres de Atributos de LDAP:


uid: jperez
cn: Juan Perez
givenName: Juan
sn: Perez Se irn incorporando el
mail: jperez@.. resto de atributos de
eduPerson/eduOrg
jpegPhoto: http://..
accessTo [ siu-mapuche_1,
siu_diaguita_1 .. ]
employeeNumber: 18
appLauncherData
Usuarios: BD Postgres

usuarios usuarios_cuentas aplicaciones

identificador id_usuario identificador


password id_aplicacion etiqueta
nombres cuenta url

siu/mapuche
jperez juan_p Mapuche
Juan Perez http://...
Usuarios: Gestin
ABM de usuarios y
atributos.
ABM de aplicaciones.
Vinculacin entre
aplicaciones y
usuarios.
Manejo de la poltica
de seguridad y dems
configuraciones.
Usuarios: Auditora
Permite visualizar el
inicio y fin de la sesin
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
aplicacin.
Barra Comn App-Launcher
Aplicaciones a las que tengo acceso.

Accesos a mi perfil y salida comn a


los sistemas.
Barra Comn App-Launcher

Librera javascript https://github.com/SIU-Toba/js-app-


launcher
Disponible como parte de Toba (2.7.1+).
La informacin viene como atributo SAML (slo login) o a
travs de la API de Usuarios (a demanda).
Recibe una URL para acceder a la edicin 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 va
Docker.
Registry
Manejador de dependencia de servicios:
Permite registrar las aplicaciones, servicios y APIS, respetando la
integridad de dependencias y requisitos de versiones.
Este catlogo de instalaciones agiliza la deteccin y configuracin 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 Diaguita

ofrece: API Pilaga ofrece: API Diaguita


consume: API Diaguita consume: API Pilaga
Registry
mapuche/arai.json Cuando se ejecuta registry:sync
{
name: "siu/mapuche",
description: "SIU-Mapuche",
consume: [ Si hay un IDP (ej ARAI-Usuarios),
{ name: "service:siu/sso-saml-idp", enva el certificado propio y recibe el
version: ">=0.2" certificado y configura el SP.
},

{ name: "service:siu/rdi"
Si encuentra un RDI (ej Nuxeo) en la
version: ">=1.0" registry Configura el rdi.ini de toba
}, con los parmetros de conexin.
{ name: "api:siu/pilaga"
Si hay un Pilag, trae la URL y la deja
version: ">=2.4"
}, en rest.ini
],
provide: [
{ name: "api:siu/mapuche", Si algn proyecto quiere usar la API de
version: "0.1.0", mapuche, se le pasa la URL y seteos.
tag: "rectorado"
Ej. digest o basic auth
},

{ name: "app:siu/mapuche", Registra en la base de instalaciones,


alias: "Mapuche",
description: "Mdulo de RRHH",
el acceso a la app Mapuche.
version: "2.2.2",
icon: "www/img/mapuche.png",
},
]
}
Integracin con Aplicaciones SIU
Se est trabajando con Diaguita, Pilaga y Mapuche para ser compatibles
en prximos releases:
Auto-configuracin de SSO
Auto-configuracin de clientes de APIs
Utilizacin del app-launcher
Integracin 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 va
Docker.
Qu hace?
Permite empaquetar una aplicacin o servicio, con sus
dependencias, en una unidad llamada container.
Estos containers se pueden vincular creando entornos completos.

...
Ventajas sobre VMs
1. Son fciles de programar: la instalacin
es siempre via script.

2. Se personalizan va herencia.

3. Son mucho ms livianas (en storage y en


runtime).
Diferencia con VMs

vs.

Mquinas Virtuales Docker


docker-compose.yml

Es la receta sobre la que se arma un cluster de aplicaciones y


servicios. Se indica:
Sobre qu imagen esttica estn basados (ej. ubuntu, ubuntu-
php, postgres, memcached, nuxeo, toba, etc).
Las dependencias que tienen a nivel TCP/IP.
Qu puertos publica hacia la mquina 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 accin

Se muestra en vivo como se levanta el


caso de uso Huarpe, Ara
con Mapuche, Pilaga y Diaguita
Ms info.

Disponible una versin 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 Tcnica

También podría gustarte