Diferencia entre revisiones de «SIU-Arai/usuarios»
m (se propone doc para administrar) |
(ldap y atributos) |
||
(No se muestran 11 ediciones intermedias de 2 usuarios) | |||
Línea 1: | Línea 1: | ||
[[Archivo:siu-arai_iso.png|derecha|link=SIU-Arai]] | [[Archivo:siu-arai_iso.png|derecha|link=SIU-Arai]] | ||
− | = | + | = SIU-Araí: Usuarios = |
− | Arai-Usuarios es un Identity Provider | + | Arai-Usuarios es un ''Identity Provider'' e ''Identity Manager''. |
− | |||
− | == Componentes == | + | Provee identidad (usuarios y sus cuentas) junto con un login centralizado (Single-Sign-On) implementado con el protocolo SAML. A su vez mantiene una base de datos común de usuarios, mientras que provee una interfaz de gestión, una API de acceso a los usuarios y herramientas de auditoría. |
+ | |||
+ | La siguiente imagen resume el conjunto componentes, su integración e interacción en la plataforma: | ||
+ | |||
+ | [[Archivo:Usuarios.png|no|miniaturadeimagen|716x716px|Componentes que integran '''SIU-Araí: Usuarios''']] | ||
+ | === Componentes === | ||
Arai-Usuarios ofrece diferentes componentes: | Arai-Usuarios ofrece diferentes componentes: | ||
− | * Un | + | * Un IdP implementado con un SimpleSAMLPhp con un único authsource (la base de datos común de usuarios) |
− | * | + | * Un IdM como aplicación denominado '''''gestion''''' que ofrece |
** ABMs de usuarios | ** ABMs de usuarios | ||
** Configuración de políticas de acceso y seguridad | ** Configuración de políticas de acceso y seguridad | ||
** Auditoría de edición y acceso a las diferentes aplicaciones del repositorio | ** Auditoría de edición y acceso a las diferentes aplicaciones del repositorio | ||
− | * Una API Rest de gestión de usuarios, para que los diferentes sistemas puedan | + | * Una API Rest de gestión de usuarios, para que los diferentes sistemas puedan interactuar |
+ | * Implementado sobre OpenLdap, que brinda compatibilidad con sistemas '''''legacy''''' mediante el acceso LDAP | ||
* Dentro del paquete de datos que ofrece, se encuentra el que espera la librería js-app-launcher que ayuda a la uniformidad de comportamientos del usuario dentro dentro de las diferentes aplicaciones. | * Dentro del paquete de datos que ofrece, se encuentra el que espera la librería js-app-launcher que ayuda a la uniformidad de comportamientos del usuario dentro dentro de las diferentes aplicaciones. | ||
* Una Base de datos común de Usuarios, con scripts y utilidades para integrar aplicaciones existentes. | * Una Base de datos común de Usuarios, con scripts y utilidades para integrar aplicaciones existentes. | ||
+ | == IdP: Autenticación centralizada vía Protocolo SAML == | ||
+ | El protocolo ''SAML'' es el estándar utilizado para realizar la integración de login entre las distintas aplicaciones. Es lo que nos permite implementar '''Single Sign-On''' y '''Single Logout'''. | ||
+ | |||
+ | [[Archivo:Saml.png|no|miniaturadeimagen|800x800px|Flujo de autenticación basado en el protocolo SAML]] | ||
+ | |||
+ | En la imagen se observa los pasos que se producen normalmente para el login: | ||
+ | # el usuario accede a una aplicación desde el navegador(que se lo conoce como ''Service Provider'' o ''SP'') | ||
+ | # el ''SP'' redirige hacia el ''IdP'' con un token ''SAML'' para autenticarse | ||
+ | # el ''IdP'' vailda el token SAML y como no existe, lo redirige al usuario a un formulario donde ingresar sus credenciales | ||
+ | # el ''Idp'' redirige al usuario al SP con el nuevo token ''SAML'' | ||
+ | # el ''SP'' regresa al usuario con los resultados del acceso al recurso (la página web) | ||
+ | Beneficios del uso de un protocolo de Single Sign-On, una vez que exista un token SAML válido | ||
+ | * el usuario puede ingresar a cualquier aplicación o ''SP'' registrada en la plataforma SIU-Araí, sin pasar por el login. Este intento de acceso tomará el token ''SAML'', lo validará y si está vigente simplemente el usuario tendrá acceso instantaneo a dicho ''SP''. | ||
+ | * al cerrar sesión por acción del usuario o por expiración del tiempo de duración, se invalida el token ''SAML'' en el ''IdP''. Sucesivos intentos de ingreso con dicho token provocará que nos envíe al usuario a la página de login. | ||
+ | |||
+ | === El token SAML === | ||
+ | El proveedor de identidad o '''''IdP''''' retorna a las aplicaciones un el token SAML con los siguientes atributos:<syntaxhighlight lang="php" enclose="div"> | ||
+ | [ | ||
+ | ["uniqueIdentifier"] => [ [0] => "admin" ] | ||
+ | ["uid"] => [ [0] => "admin" ] | ||
+ | ["cn"] => [ [0] => "Usuario Administrador" ] | ||
+ | ["mail"] => [ [0] => "admin@siu.edu.ar" ] | ||
+ | ["givenName"] => [ [0] => "Usuario" ] | ||
+ | ["sn"] => [ [0] => "Administrador" ] | ||
+ | ["jpegPhoto"] => [ [0] => "http://localhost:4001/idp/resources/img/usuario_foto/e5b35d4eae92ada3fd41cd74a8961495.png" ] | ||
+ | ["AccessTo"] => [ [0] => "siu-arai-catalogos_1.siu-arai-catalogos-gestion" | ||
+ | [1] => "siu-arai-usuarios_1.siu-arai-usuarios-gestion" | ||
+ | [2] => "siu-diaguita_1.siu-diaguita" | ||
+ | [3] => "siu-huarpe_1.siu-huarpe" | ||
+ | [4] => "siu-mapuche_1.siu-mapuche" | ||
+ | ... | ||
+ | [n] => "siu-pilaga_1.siu-pilaga" | ||
+ | ] | ||
+ | ["userAccounts"] => [ [0] => "admin" | ||
+ | [1] => "admin_1" | ||
+ | ... | ||
+ | [m] => "admin_m" | ||
+ | ] | ||
+ | ["appLauncherData"] => [ [0] => | ||
+ | "{"aplicaciones":[ | ||
+ | {"url":"http:\/\/localhost:4002\/arai-catalogos","etiqueta":"ARAI-Cat\u00c3\u00a1logos","descripcion":"Sincronizaci\u00c3\u00b3n de datos comunes","appUniqueId":"siu-arai-catalogos_1.siu-arai-catalogos-gestion","icono_url":"http:\/\/localhost:4001\/idp\/resources\/img\/aplicaciones_iconos\/siu-arai-catalogos_1.siu-arai-catalogos-gestion.png"}, | ||
+ | {"url":"http:\/\/localhost:4005\/diaguita","etiqueta":"SIU-Diaguita","descripcion":"Gesti\u00c3\u00b3n de Compras, Contrataciones y Patrimonio","appUniqueId":"siu-diaguita_1.siu-diaguita","icono_url":"http:\/\/localhost:4001\/idp\/resources\/img\/aplicaciones_iconos\/siu-diaguita_1.siu-diaguita.png"}, | ||
+ | {"url":"http:\/\/localhost:4003","etiqueta":"SIU-Huarpe","descripcion":"Portal de autogesti\u00c3\u00b3n","appUniqueId":"siu-huarpe_1.siu-huarpe","icono_url":"http:\/\/localhost:4001\/idp\/resources\/img\/aplicaciones_iconos\/siu-huarpe_1.siu-huarpe.png"}, | ||
+ | {"url":"http:\/\/localhost:4004\/mapuche","etiqueta":"SIU-Mapuche","descripcion":"Gesti\u00c3\u00b3n de recursos humanos","appUniqueId":"siu-mapuche_1.siu-mapuche","icono_url":"http:\/\/localhost:4001\/idp\/resources\/img\/aplicaciones_iconos\/siu-mapuche_1.siu-mapuche.png"}, | ||
+ | ... | ||
+ | {"url":"http:\/\/localhost:4006\/pilaga","etiqueta":"SIU-Pilaga","descripcion":"Gesti\u00c3\u00b3n presupuestaria, financiera y contable","appUniqueId":"siu-pilaga_1.siu-pilaga","icono_url":"http:\/\/localhost:4001\/idp\/resources\/img\/aplicaciones_iconos\/siu-pilaga_1.siu-pilaga.png"}], | ||
+ | "usuario_id":"admin", | ||
+ | "usuario_nombre":"Usuario Administrador", | ||
+ | "usuario_foto":"http:\/\/localhost:4001\/idp\/resources\/img\/usuario_foto\/e5b35d4eae92ada3fd41cd74a8961495.png", | ||
+ | "perfil_url":"http:\/\/localhost:4003\/perfil"}" | ||
+ | ] | ||
+ | ["employeeNumber"] => [ [0] => "2" ] | ||
+ | ] | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == IdM: El directorio de usuarios == | ||
+ | |||
+ | Una de las tareas fundamentales del '''IdP''' es almacenar toda la información relativa a las identidades. Esto se logra mediante la implementación de un directorio basado en el estándar LDAP, como puede ser OpenLDAP. | ||
+ | |||
+ | Cada identidad o '''''Usuario''''' de la plataforma está compuesto por una serie de atributos, tanto opcionales como obligatorios. Algunos de ellos: | ||
+ | * Listado de atributos [http://tools.ietf.org/html/rfc2798 LDAP] | ||
+ | * Listado de atributos [http://software.internet2.edu/eduperson/internet2-mace-dir-eduperson-201310.html Internet2 EduPerson] (que facilita soportar ''[https://www.eduroam.es/ eduroam]'') | ||
+ | * Atributos de la plataforma [https://hub.siu.edu.ar/siu-arai/arai-usuarios/blob/master/templates/ldap/arai-usuarios.schema SIU-Araí] | ||
+ | * Atributos propios de la institución | ||
== Guias prácticas de uso == | == Guias prácticas de uso == | ||
Línea 20: | Línea 89: | ||
* [[SIU-Arai/usuarios/migracion-usuarios|Migración inicial de usuarios Toba hacia Arai-Usuarios]] | * [[SIU-Arai/usuarios/migracion-usuarios|Migración inicial de usuarios Toba hacia Arai-Usuarios]] | ||
* [[SIU-Arai/usuarios/integracion-inicial-toba|Integrando una aplicación Toba con Arai-Usuarios]] | * [[SIU-Arai/usuarios/integracion-inicial-toba|Integrando una aplicación Toba con Arai-Usuarios]] | ||
− | * [[SIU-Arai/usuarios/administracion| | + | * [[SIU-Arai/usuarios/administracion|Administración de Arai-Usuarios]] |
+ | |||
+ | |||
+ | [[SIU-Arai/Arquitectura|<Volver]] |
Revisión actual del 17:13 3 may 2018
Sumario
SIU-Araí: Usuarios
Arai-Usuarios es un Identity Provider e Identity Manager.
Provee identidad (usuarios y sus cuentas) junto con un login centralizado (Single-Sign-On) implementado con el protocolo SAML. A su vez mantiene una base de datos común de usuarios, mientras que provee una interfaz de gestión, una API de acceso a los usuarios y herramientas de auditoría.
La siguiente imagen resume el conjunto componentes, su integración e interacción en la plataforma:
Componentes
Arai-Usuarios ofrece diferentes componentes:
- Un IdP implementado con un SimpleSAMLPhp con un único authsource (la base de datos común de usuarios)
- Un IdM como aplicación denominado gestion que ofrece
- ABMs de usuarios
- Configuración de políticas de acceso y seguridad
- Auditoría de edición y acceso a las diferentes aplicaciones del repositorio
- Una API Rest de gestión de usuarios, para que los diferentes sistemas puedan interactuar
- Implementado sobre OpenLdap, que brinda compatibilidad con sistemas legacy mediante el acceso LDAP
- Dentro del paquete de datos que ofrece, se encuentra el que espera la librería js-app-launcher que ayuda a la uniformidad de comportamientos del usuario dentro dentro de las diferentes aplicaciones.
- Una Base de datos común de Usuarios, con scripts y utilidades para integrar aplicaciones existentes.
IdP: Autenticación centralizada vía Protocolo SAML
El protocolo SAML es el estándar utilizado para realizar la integración de login entre las distintas aplicaciones. Es lo que nos permite implementar Single Sign-On y Single Logout.
En la imagen se observa los pasos que se producen normalmente para el login:
- el usuario accede a una aplicación desde el navegador(que se lo conoce como Service Provider o SP)
- el SP redirige hacia el IdP con un token SAML para autenticarse
- el IdP vailda el token SAML y como no existe, lo redirige al usuario a un formulario donde ingresar sus credenciales
- el Idp redirige al usuario al SP con el nuevo token SAML
- el SP regresa al usuario con los resultados del acceso al recurso (la página web)
Beneficios del uso de un protocolo de Single Sign-On, una vez que exista un token SAML válido
- el usuario puede ingresar a cualquier aplicación o SP registrada en la plataforma SIU-Araí, sin pasar por el login. Este intento de acceso tomará el token SAML, lo validará y si está vigente simplemente el usuario tendrá acceso instantaneo a dicho SP.
- al cerrar sesión por acción del usuario o por expiración del tiempo de duración, se invalida el token SAML en el IdP. Sucesivos intentos de ingreso con dicho token provocará que nos envíe al usuario a la página de login.
El token SAML
El proveedor de identidad o IdP retorna a las aplicaciones un el token SAML con los siguientes atributos:["uniqueIdentifier"] => [ [0] => "admin" ]
["uid"] => [ [0] => "admin" ]
["cn"] => [ [0] => "Usuario Administrador" ]
["mail"] => [ [0] => "admin@siu.edu.ar" ]
["givenName"] => [ [0] => "Usuario" ]
["sn"] => [ [0] => "Administrador" ]
["jpegPhoto"] => [ [0] => "http://localhost:4001/idp/resources/img/usuario_foto/e5b35d4eae92ada3fd41cd74a8961495.png" ]
["AccessTo"] => [ [0] => "siu-arai-catalogos_1.siu-arai-catalogos-gestion"
[1] => "siu-arai-usuarios_1.siu-arai-usuarios-gestion"
[2] => "siu-diaguita_1.siu-diaguita"
[3] => "siu-huarpe_1.siu-huarpe"
[4] => "siu-mapuche_1.siu-mapuche"
...
[n] => "siu-pilaga_1.siu-pilaga"
]
["userAccounts"] => [ [0] => "admin"
[1] => "admin_1"
...
[m] => "admin_m"
]
["appLauncherData"] => [ [0] =>
"{"aplicaciones":[
{"url":"http:\/\/localhost:4002\/arai-catalogos","etiqueta":"ARAI-Cat\u00c3\u00a1logos","descripcion":"Sincronizaci\u00c3\u00b3n de datos comunes","appUniqueId":"siu-arai-catalogos_1.siu-arai-catalogos-gestion","icono_url":"http:\/\/localhost:4001\/idp\/resources\/img\/aplicaciones_iconos\/siu-arai-catalogos_1.siu-arai-catalogos-gestion.png"},
{"url":"http:\/\/localhost:4005\/diaguita","etiqueta":"SIU-Diaguita","descripcion":"Gesti\u00c3\u00b3n de Compras, Contrataciones y Patrimonio","appUniqueId":"siu-diaguita_1.siu-diaguita","icono_url":"http:\/\/localhost:4001\/idp\/resources\/img\/aplicaciones_iconos\/siu-diaguita_1.siu-diaguita.png"},
{"url":"http:\/\/localhost:4003","etiqueta":"SIU-Huarpe","descripcion":"Portal de autogesti\u00c3\u00b3n","appUniqueId":"siu-huarpe_1.siu-huarpe","icono_url":"http:\/\/localhost:4001\/idp\/resources\/img\/aplicaciones_iconos\/siu-huarpe_1.siu-huarpe.png"},
{"url":"http:\/\/localhost:4004\/mapuche","etiqueta":"SIU-Mapuche","descripcion":"Gesti\u00c3\u00b3n de recursos humanos","appUniqueId":"siu-mapuche_1.siu-mapuche","icono_url":"http:\/\/localhost:4001\/idp\/resources\/img\/aplicaciones_iconos\/siu-mapuche_1.siu-mapuche.png"},
...
{"url":"http:\/\/localhost:4006\/pilaga","etiqueta":"SIU-Pilaga","descripcion":"Gesti\u00c3\u00b3n presupuestaria, financiera y contable","appUniqueId":"siu-pilaga_1.siu-pilaga","icono_url":"http:\/\/localhost:4001\/idp\/resources\/img\/aplicaciones_iconos\/siu-pilaga_1.siu-pilaga.png"}],
"usuario_id":"admin",
"usuario_nombre":"Usuario Administrador",
"usuario_foto":"http:\/\/localhost:4001\/idp\/resources\/img\/usuario_foto\/e5b35d4eae92ada3fd41cd74a8961495.png",
"perfil_url":"http:\/\/localhost:4003\/perfil"}"
]
["employeeNumber"] => [ [0] => "2" ]
]
IdM: El directorio de usuarios
Una de las tareas fundamentales del IdP es almacenar toda la información relativa a las identidades. Esto se logra mediante la implementación de un directorio basado en el estándar LDAP, como puede ser OpenLDAP.
Cada identidad o Usuario de la plataforma está compuesto por una serie de atributos, tanto opcionales como obligatorios. Algunos de ellos:
- Listado de atributos LDAP
- Listado de atributos Internet2 EduPerson (que facilita soportar eduroam)
- Atributos de la plataforma SIU-Araí
- Atributos propios de la institución