h1. Objetivo {{>toc}} El objetivo del siguiente proyecto es el de lograr un *sistema centralizado de autenticación, autorización y directorio* de las personas de la organización. Para ello, se estudia emplear los siguientes protocolos: # *Autorización y Directorio: LDAP* LDAP (Lightweight Directory Access Protocol) es un protocolo que permite el acceso a un servicio de directorio ordenado y distribuido para buscar diversa información en un entorno de red. # *Autenticación: CAS* CAS (Central Authentication Service)[1] permite centralizar las credenciales del usuario para todos los procesos de login (GNU/Linux, Windows, Moodle, Drupal, SquirelMail, Samba...) permitiendo SSO (Single-sign-on) y persistencia en la autenticación (no pide el pwd de nuevo al cambiar de una aplicación a otra). Este documento: * Describe la arquitectura actual y propone una futura arquitectura. * Plantea un plan de trabajo enumerando las tareas que habría que realizar. * Presenta los desarrollos que permitirían llevar a cabo esta tarea. * Recopila documentación con definiciones, estado del arte y howtos. *Comentario:* Si una aplicación todavía no se ha CASificado, se sugiere emplear temporalmente autenticación contra el LDAP. h1. Plan de trabajo Se plantea atacar el proyecto de forma progresiva realizando las siguientes tareas: # Conocer experiencias similares ** Otras Facultades o Servicios nacionales ** Otras instituciones estatales ** Otras Universidades de otros países (región, mundo entero) # Diseñar sistema de autenticación centralizada. ** *Ver:* "Un borrador del DIT":https://docs.google.com/drawings/d/1MoAKkA59jJkxTK1Zq8QpOntejNhzzzo-jvRrk_pCbaw/edit?hl=es (en gdocs) ** [[unifopriv:Directorio-ldap|Wiki sobre instalación LDAP]] *(interno)* ** Tarea asociada a instalación LDAP #813 # [[unifopriv:Directorio-ldap|Instalar servidor OpenLDAP]] (configurar mecanismos de autorización) (Ver tarea #1175) # Conectar con CAS (autenticación) # Pruebas de Autorización: acceso a servicios según LDAP ([[Wiki#Listado-de-aplicaciones|Listado de aplicaciones]]) # Pruebas de Integración: Single-Sign-On ([[Wiki#Listado-de-servicios|Listado de servicios]]) # Presentación del directorio (GOsa, Drupal, desarrollo?) # Automodificación de los datos personales en el directorio (GOsa, Drupal, desarrollo própio?) # Sincronización de perfiles y roles de usuario (Moodle, Drupal...) h1. Arquitectura de la organización FIXME: aquí va un gráfico de todo lo que hay y otro de todo lo que habrá... y de como se relaciona entre si FIXME: tenemos algo avanzado "acá":http://projek.psico.edu.uy/attachments/download/296/red-psico-v0.3.dia sobre los servicios de red *(interno)* h2. Diseño * [[schema-psico|Adoptando un esquema en Psico]] ** Bibliografía (ya se sistematizó en: https://www.zotero.org/groups/ldap__sso) ** "Documento sobre diseño":http://projek.psico.edu.uy/attachments/104/ldap-schema-design-feb-2005.pdf de un directorio: conceptos y recomendaciones [EN] * Esquemas *eduPerson* y *eduOrg*: http://middleware.internet2.edu/eduperson/ ** Números OID: http://middleware.internet2.edu/dir/edu-schema-oid-registry.html ** http://middleware.internet2.edu/dir/docs/ldap-recipe.htm ** Los *ldifs* para instalar: *** eduPerson: https://spaces.internet2.edu/display/macedir/OpenLDAP+eduPerson *** eduMember: https://spaces.internet2.edu/display/macedir/OpenLDAP+eduMember *** eduOrg: https://spaces.internet2.edu/display/macedir/Generic+eduOrg * Ver "curso curso de Gestión de Identidad":http://projek.psico.edu.uy/projects/uninfo/wiki/Curso-gestion-identidad-c1#LDAP Identidad: http://projek.psico.edu.uy/projects/uninfo/wiki/Curso-gestion-identidad-c1#LDAP * Proyecto SAUCE (por ahora no hay versión pública) h3. Por resolver * Hacer un template para la creación de usuario eduPerson con PHPLDAPMyAdmin * Ver si vale la pena y cómo almacenar la cédula y/o número de funcionario en el directorio * [[integracion-siap|Integración con SIAP]] h1. CAS: Integración con terceros h2. Gestores de contenidos (Drupal) * Drupal: ** http://drupal.org/search/apachesolr_multisitesearch/cas?filters=ss_meta_type%3Amodule ** Propuesta: http://drupal.org/project/cas ** A valorar: http://drupal.org/project/cas_attributes * Joomla: ** http://joomlacode.org/gf/project/auth_manager/ * Sipip: ** https://sourcesup.cru.fr/projects/casldapauthspip/ * Wordpress (revisar): ** http://wordpress.org/extend/plugins/wpcas/ ** http://wordpress.org/extend/plugins/cas-authentication/ *Comentario*: Valorar en cada caso si no merece la pena unificar el uso de CMS. h2. EVA (Moodle) * Moodle 1.x soporta autenticación CAS de forma nativa. * Moodle 2.0 incorpora autenticación CAS de forma nativa. ** http://docs.moodle.org/20/en/CAS_server_%28SSO%29 ** http://docs.moodle.org/22/en/Use_a_CAS_server_%28SSO%29 *Comentario*: Valorar SSO con LDAP hasta migración a 2.0 h2. Correo (Roundcube y/o Zimbra, Sympa ) * Roundcube: http://code.google.com/p/rc-cas-plugin/ * Zimbra: https://wiki.jasig.org/display/CAS/CASifying+Zimbra * Sympa: http://www.sympa.org/manual/authentication *Comentario*: Valorar coexistencia de roundcube y zimbra. h2. Gestor documental (DMS) * Alfresco: http://wiki.alfresco.com/wiki/Alfresco_With_mod_auth_cas * OwnCloud: http://owncloud.org *Comentario*: La implantación de Alfresco[2] o OwnCloud se planteará como un proyecto a parte. Enlaces en h2. Monotorización (Zabix) * Zabix: http://www.zabbix.org/wiki/Tasks/SSO#CAS *Comentario*: Valorar si merece la pena integración con CAS de la herramienta de monitoreo. h2. Otros * Django: https://docs.djangoproject.com/en/1.3/howto/auth-remote-user/ * RoR: https://wiki.jasig.org/display/CASC/Ruby+on+Rails+CAS+Client * Más info: https://wiki.jasig.org/display/CAS/CASifying+Applications h1. Listado del directorio y datos de personas del LDAP. Movido a: [[directorio-docente:Wiki#Drupal-como-herramienta-de-directorio|Drupal como herramienta de directorio]] h1. Listado de servicios A continuación un listado de los servicios a integrar con el LDAP/CAS: # -Login en Windows- # Login en gnu/Linux # Unidades de red (Samba o fuse) # Impresoras en red (Samba u otro) # Moodle # Drupal # Redmine # Roundcube # "Software propio de la UdelaR":http://projek.psico.edu.uy/projects/uninfo/wiki/Software-psico#Software-de-gesti%C3%B3n-y-administrativo-software-propio-de-la-UdeLar # Alfresco h1. Bibliografía: Referencias, Howto's, Módulos y enlaces *Bibliografía leída* y sistematizada en Zotero: https://www.zotero.org/groups/ldap__sso * General LDAP ** Definición de LDAP: http://es.wikipedia.org/wiki/LDAP ** Más info: [[LDAP | http://wiki.case.edu/LDAP]] * General CAS * Definición de CAS: http://en.wikipedia.org/wiki/Central_Authentication_Service ** Más info: [[CAS | http://wiki.case.edu/Central_Authentication_Service]] * Documentación de CSIC (Uy) *(revisar)* ** http://wiki.csic.edu.uy/pruebas+de+instalar+OpenLDAP+y+GOSa ** http://wiki.csic.edu.uy/Galois&structure=Informatica * Wiki/Repositorio del SIG sobre arquitecturas abiertas en instituciones: ** https://wiki.jasig.org/display/CAS/Home ** Conceptos: *** "Presentaciones sobre CAS": https://wiki.jasig.org/display/CAS/Presentations+about+CAS *** "Roadmap de CAS":https://wiki.jasig.org/display/CAS/CAS+Vision+and+Roadmap *** "Marist: Integración Sakai & CAS":https://wiki.jasig.org/download/attachments/13567279/Integrating+Sakai+and+CAS.pdf *** "Presentación de OpenRegistry":https://wiki.jasig.org/download/attachments/17006624/Jasig+OpenRegistry+Mar+2009.pdf *** "Update sobre OpenRegistry 2010":https://wiki.jasig.org/download/attachments/17006624/Jasig+OpenRegistry+March+2010.pdf ** Howtos ** "LDAP Authentication Handler":https://wiki.jasig.org/display/CASUM/HOWTO+Configure+CAS+for+LDAP+DIGEST-MD5 ** "Setup Dual Authentication in CAS":https://wiki.jasig.org/display/CASUM/HOWTO+Setup+Dual+Authentication+in+CAS+-+SSL+Client+Auth+and+LDAP ** "Howto setup CAS locally (with Maven2 & WAR)":https://wiki.jasig.org/display/CASUM/Best+Practice+-+Setting+Up+CAS+Locally+using+the+Maven2+WAR+Overlay+Method ** "uPortal & eduperson":https://wiki.jasig.org/display/GAP/PersonDirs.xml * Intregración con Moodle: http://docs.moodle.org/20/en/Integration_FAQ * Módulos sobre Drupal y LDAP (por orden de interés para el proyecto) ** http://drupal.org/project/ldap_integration ** http://drupal.org/project/extended_ldapgroups ** http://drupal.org/project/ldap_sso ** http://drupal.org/project/ldap_provisioning ** http://drupal.org/project/og_ldap ** D7: http://drupal.org/project/ldap fn1. _"CAS is "Single Sign-on for the Web" and is developed by JA-SIG in an open-source, collaborative manner. CAS is very beneficial in environments where a number of different web applications share a set of common users. If all the web applications were "CASified" a user would log in once and would then be able to move between the various web applications without ever having to present authentication credentials again"_ fn2. "Descripción Alfresco":http://en.wikipedia.org/wiki/Alfresco_%28software%29