Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Ingreso Único (Single Sign On)
Un marco y una historia
FECHA
4/6/2010
Diego Fontdevila
diego.fontdevila@grupoesfera.com.ar
SSO
Plan
Plan
¿Qué es y qué no es Ingreso Único (SSO)?
Infraestructura y desarrollo/Servicios y aplicaciones
Los usuarios
Herramientas de software libre
Historia de una implementación
Perspectivas
Usuarios finales
Les permite mantener una única clave centralizada (igual que un repositorio).
Les permite presentar sus credenciales una única vez y poder acceder a todas
sus aplicaciones.
Les permite tener una interfaz uniforme y segura de autenticación.
Les permite tener plazos de expiración de autenticación mayores que los
plazos de expiración de sesión de las aplicaciones.
Historia de una implementación
CAS + Eventum (MySQL)
1. Instalación
2. Configuración de LDAP
3. Configuración del servicio CAS
4. Configurar cliente php
5. ¡Usarlo!
Al ingresar a la aplicación, el cliente de CAS redirige al
servicio CAS pasándole su propia url como parámetro
service.
El servicio CAS recibe la redirección, se conecta
programáticamente a la aplicación y valida su certificado (si
usa SSL), luego y valida si el pedido corresponde a un
usuario autenticado. Si es así, redirige a la aplicación.
Si no está autenticado, le presenta la página de login. Luego
proceso el pedido de login y redirige a la aplicación.
> 9 | Ingreso Único (Single Sign On) - 04/06/2010 - www.grupoesfera.com.ar
¿Cómo funciona?
4
Aplicación CAS
5
1 8
7 2 3 6
Navegador
Descargar CAS versión 3.4.2 (fuentes) de jasig.org/cas
Compilar y empaquetar
JDK 1.5 (ojo, en Linux algunos jdk no corren los
tests, luego DskipTests=true)
Maven 2.0.9: mvn package install (no 2.0.8).
Instalar Tomcat 6.
Deploy de casserverwebapp.war a tomcat/webapps/.
No hace falta configuración dependiente del application
server en la aplicación.
> 11 | Ingreso Único (Single Sign On) - 04/06/2010 - www.grupoesfera.com.ar
2. Configuración de LDAP
Compilar y empaquetar el módulo cas de soporte de LDAP.
Agregar dependencia en casserverwebapp/pom.xml.
Ojo, el plugin de Eclipse para Maven a veces no
modifica los archivos en disco, pero los
muestra como modificados.
Configurar el contextoLDAP (información de conexión) y el
autenticador (lógica de validación de credenciales) en
casserverwebapp/src/main/webapp/WEB
INF/deployerConfigContext.xml.
Definir el tipo de validación LDAP (selección de
implementación):
Fast bind (acceder al LDAP con el usuario
final). Optimización, depende del servidor
LDAP.
Bind (acceder al LDAP con un usuario de
consulta, buscar al usuario final y validar).
Funciona en todos los casos.
Definir el contexto de búsqueda de usuarios.
Definir el atributo de búsqueda de usuarios (ej. uid)
> 13 | Ingreso Único (Single Sign On) - 04/06/2010 - www.grupoesfera.com.ar
3. Configurar el servicio CAS
Configurar logging en casserverwebapp/src/main/webapp/
WEBINF/classes/log4j.xml
DEBUG de Spring framework para ver errores de
LDAP.
Configurar SSL en Tomcat (No puede ser http)
Crear certificado.
Configurar Connector en conf/server.xml
Configurar la apariencia (cambiar el tema)
Obtener librerías cliente CAS (ej. phpCAS/phpCAS U
Gent).
Identificar punto de acceso a la aplicación (ej. login.php)
Reemplazar código de login por autenticación CAS, luego
crear o inicializar sesión válida de aplicación.
Acceder a http://apphost/app
Redirige a https://ssohost/cas/login?service=http://apphost/
app
Si no está autenticado (en el Servicio SSO), se conecta a a
aplicación para validar su certificado, luego muestra la
página de login de CAS.
Si lo está, redirige a http://apphost/app
El cliente CAS en apphost recibe el ticket de CAS y
> 16
continúa procesando, iniciando sesión en la aplicación.
| Ingreso Único (Single Sign On) - 04/06/2010 - www.grupoesfera.com.ar
Perspectivas
Obtener otros atributos para el usuario autenticado.
Pueden permitir transformar credenciales (ej. identificador
a mail). Requiere usar protocolo SAML en lugar de CAS.
El cliente phpCAS no lo soporta, sí lo hace la versión
phpCAS de la Universidad de Gent.
No configurar SSL en las aplicaciones (puede generar
advertencias en el navegador), en general reacciona bien
porque tiene urls cortas y usa GET en lugar de POST.
No usar iframes (cuidadanos de segunda en IE).
> 17 | Ingreso Único (Single Sign On) - 04/06/2010 - www.grupoesfera.com.ar
Usted quiere... detalles
Protocolo de SSO: CAS, OpenId, SAML, etc.
Proveedor de autenticación: LDAP, Base de datos, RADIUS, etc.
Single Sign Out: Soportado, require integración extra en las
aplicaciones.
Otros clientes: Java (Filtro estándar JEE)
Tickets: Ticket Granting Tickets/Service Tickets/Expiración
Aplicaciones con soporte por defecto: Liferay, TikiWiki, Moodle,
Drupal,
Soluciones de Single Sign On Open Source
http://www.slideshare.net/craigsdickson/fastandfreessoasurveyof
opensourcesolutionstosinglesignon
Arquitectura de CAS
http://www.jasig.org/cas/cas1architecture
Manual de CAS
https://wiki.jasig.org/display/CASUM/Home
Presentación CAS SSO en ESUPPortail
perso.univrennes1.fr/pascal.aubry/.../casifsic2005/casifsic2005.ppt
CAS PHP Universidad de Gent
http://helpdesk.ugent.be/webhosting/en/cas.php#UGCAS_Simple
http://gallery.photo.net/photo/2526167lg.jpg (imágenes en espejo)
http://bp1.blogger.com/_8hZa4PY88OI/SAjWUQa7VI/AAAAAAAAAQc/
Jr1uwxIvP8Q/s400/puertas.jpg
http://www.tampicocultural.com.mx/artman/uploads/llaveantigua.jpg
http://ffodissahnerak.wordpress.com/2007/09/13/postitcity/ (llave
moderna)
http://astcontrol.com/images/reconocimientohuellaseguridadalarma
panel.jpg