Diferencia entre revisiones de «SIU-Arai/usuarios»

De SIU
Saltar a: navegación, buscar
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]]
  
= Arai-Usuarios =
+
= SIU-Araí: Usuarios =
Arai-Usuarios es un Identity Provider y Manager.
+
Arai-Usuarios es un ''Identity Provider'' e ''Identity Manager''.
Provee identidad y login centralizado (Single-Sign-On) implementado con el protocolo SAML. A su vez mantiene una base de datos común de usuarios, provee una interfaz de gestión, una API de acceso a los usuarios y herramientas de auditoría.
 
  
== 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 IDP implementado con un SimpleSAMLPhp con un único authsource (la base de datos común de usuarios)
+
* Un IdP implementado con un SimpleSAMLPhp con un único authsource (la base de datos común de usuarios)
* Una aplicación denominado ARAI-Usuarios Gestión que ofrece  
+
* 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 obtener
+
* 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|Administrando Arai-Usuarios]]
+
* [[SIU-Arai/usuarios/administracion|Administración de Arai-Usuarios]]
 +
 
 +
 
 +
[[SIU-Arai/Arquitectura|<Volver]]

Revisión actual del 17:13 3 may 2018

Siu-arai iso.png

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 que integran SIU-Araí: Usuarios

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.

Flujo de autenticación basado en el protocolo SAML

En la imagen se observa los pasos que se producen normalmente para el login:

  1. el usuario accede a una aplicación desde el navegador(que se lo conoce como Service Provider o SP)
  2. el SP redirige hacia el IdP con un token SAML para autenticarse
  3. el IdP vailda el token SAML y como no existe, lo redirige al usuario a un formulario donde ingresar sus credenciales
  4. el Idp redirige al usuario al SP con el nuevo token SAML
  5. 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:

Guias prácticas de uso


<Volver