icono_twiter icono LinkedIn
Rubén Aguilera Díaz-Heredero

Consultor tecnológico de desarrollo de proyectos informáticos.

Ingeniero en Informática, especialidad en Ingeniería del Software

Puedes encontrarme en Autentia: Ofrecemos servicios de soporte a desarrollo, factoría y formación

Somos expertos en Java/J2EE

Ver todos los tutoriales del autor

Fecha de publicación del tutorial: 2010-09-05

Tutorial visitado 11.909 veces Descargar en PDF
Introducción a CAS

Introducción a CAS (Central Authentication Service)

0. Índice de contenidos.

1. Introducción

CAS (Central Authentication Service) es de una aplicación web que nos permite implementar el conocido SSO (Single Sign On) que es un procedimiento de autenticación que habilita a un usuario para acceder a distintas aplicaciones web (en distintos dominios y en distintos servidores) con hacer login una única vez.

En general, cuando un usuario se conecta a una de estas aplicaciones el sistema comprueba si está autenticado y si no lo está, lo redirige a la pantalla del servidor de autenticación. Si la autenticación es correcta el sistema de autenticación, en este caso CAS, vuelve a redirigir al usuario a la página a la que quería acceder en un primer momento.

Que implica esto para los que desarrollamos, que no tenemos que preocuparnos por mantener la seguridad y tener un formulario de login en cada una de las aplicaciones web que desarrollemos, sino que simplemente tendremos que hacer la comprobación de si el usuario ya está registrado, que es tan sencillo como preguntar a la request de esta forma: request.getRemoteUser()

Si el método devuelve null es que no está registrado y será redireccionado a la página de login de CAS. Si ya está registrado por CAS, esté método devolverá un valor con el que sabremos que es un usuario registrado.

Algo que tiene que quedar muy claro es que CAS se encarga única y exclusivamente de la autenticación es decir, de comprobar contra una fuente de datos especifica si el usuario y contraseña facilitados existen, NO se encarga de la autorización, que sería la gestión de lo que puede o no puede hacer ese usuario en función de sus roles.

Para tener además autorización, CAS se integra fácilmente con Spring Security.

2. Entorno

El tutorial está escrito usando el siguiente entorno:
  • Hardware: Portátil Mac Book Pro 17" (2,6 Ghz Intel Core i7, 8 GB DDR3)
  • Sistema Operativo: Mac OS X Snow Leopard 10.6.4
  • CAS Server 3.4.2.1
3. Instalación
Primero nos hacemos con los binarios de la última versión en esta dirección: http://www.jasig.org/cas/download

Descomprimimos el contenido en una carpeta a la que conoceremos como CAS_HOME. Si entramos en CAS_HOME podremos comprobar que el producto se distribuye en distintos proyectos de tipo Maven con todos los fuentes, por lo que necesitamos tener Maven instalado en la máquina.

Para hacer una prueba rápida del producto, abrimos un terminal y nos situamos dentro de la carpeta CAS_HOME/cas-server-webapp y ejecutamos: mvn clean install

Esta sentencia (después de unos minutos) creará en el directorio CAS_HOME/cas-server-webapp/target un fichero cas.war listo para ser desplegado en cualquier servidor de aplicaciones.

Probamos a desplegarlo en un Apache Tomcat y este es el resultado:





Por defecto, este producto viene con un sistema de autenticación de prueba que es tan sencillo como que el campo “NetId” y el campo “Contraseña” coincidan. De esta forma cuando ponemos los campos iguales obtenemos la siguiente pantalla:


4. Conclusiones

Este es un sistema muy sencillo para olvidarnos de las tediosas tareas relacionadas con la seguridad como la creación del típico formulario de login en todas nuestras aplicaciones web. Podemos delegar la autenticación en este producto y conectarlo con cualquier fuente de datos de usuarios: base de datos, LDAP, ActiveDirectory, ... De esta forma podremos tener centralizada toda esta información y los mantenimientos serán mucho más sencillos.

No olvideis que esto es sólo un sistema de autenticación, por lo que si queréis también autorización tendréis que recurrir a integrarlo con Spring Security.

En posteriores tutoriales veremos como establecer nuestro propio sistema de autenticación y como integrarlo con Spring Security.

Saludos.

A continuación puedes evaluarlo:

Regístrate para evaluarlo

Por favor, vota +1 o compártelo si te pareció interesante

Share |
Anímate y coméntanos lo que pienses sobre este TUTORIAL:

Fecha publicación: 2012-01-17-12:58:27

Autor: rubenagui

Hola Alexander,

Aquí te dejo la información sobre la licencia de CAS: http://www.jasig.org/cas/license

Es de código libre y por tanto se puede utilizar de forma gratuita, bajo las condiciones que dice en la página.

Saludos

Fecha publicación: 2012-01-10-23:44:13

Autor: Alexander

Hola

Están excelentes los tutoriales sobre CAS, Tengo una duda, la licencia para la utilización de esta solución es free o tiene licencia comercial y hay que pagar para ser utilizado.

Muchas Gracias.

Fecha publicación: 2010-10-27-15:04:55

Autor: rubenagui

Hola fsd,

las aplicaciones clientes no tienen porque estar en el mismo servidor de aplicaciones donde este corriendo CAS, pero todas tienen que estar implementadas con tecnología J2EE.

Saludos

Fecha publicación: 2010-10-27-10:38:32

Autor: fsd

Hola, solo me queda una duda con respecto al CAS. Las aplicaciones Cliente, ¿necseitan estar en el mismo servidor de aplicaciones o es lo mismo? ¿Pueden ser de distintas tecnologias?

gracias

Fecha publicación: 2010-09-05-23:00:59

Autor: franferri

Muy bueno