Autenticación CAS

CAS (Central Authentication Service) es un sistema creado originalmente por la Universidad de Yale, que provee a una aplicación de una forma confiable de autenticar un usuario.

Implementación

Para poder utilizar este servicio, debe enviar una solicitud indicando :

  • Unidad solicitante.
  • URL, donde se desea utilizar el servicio (por ejemplo: http ://www.servicios.ubiobio.cl/protegido)
  • Contacto administrativo: Responsable formal. Se debe indicar el nombre completo, correo electrónico y número de anexo telefónico.
  • Contacto técnico: Encargado de la mantención de la página, actualizaciones y notificaciones de los cambios técnicos que ocurran en el servidor. Se debe indicar el nombre completo, correo electrónico y número de teléfono.

La solicitud debe ser enviada a hostmaster ubiobio.cl (agregue el símbolo @ entre 'hostmaster' y 'ubiobio.cl'). Una vez aceptada la solicitud, se dará de alta su URL para que pueda utilizar este mecanismo de autenticación. A continuación se indican algunos ejemplos de implementación, existen otros métodos que puede consultar aquí

Apache

Para poder hacer uso del servicio directamente desde Apache, debe instalar mod_auth_cas y agregar a la configuración de apache las siguientes variables:

 

CASLoginURL https://shib.ubiobio.cl/vubb/login

CASValidateURL https://shib.ubiobio.cl/vubb/serviceValidate

CASCertificatePath /etc/ssl/certs/ CASValidateServer On



Después definir la URL a proteger, si por ejemplo desea proteger todo su sitio, debe agregar :

<Location / >
    AuthType CAS
    Require valid-user
</Location>

 

PHP

Para poder utilizar CAS con PHP, debe instalar phpCAS Las siguientes son las líneas de código que debe incluir en su código.

include_once('CAS.php');
phpCAS::setDebug();
phpCAS::client(CAS_VERSION_2_0,'shib.ubiobio.cl',443,'vubb'); //URL del Servicio
phpCAS::setNoCasServerValidation();
phpCAS::forceAuthentication();
$user=phpCAS::getUser(); //Almacena el login del usuario

// Resto del Codigo

 

PERL

Para poder utilizar el servicio con PERL, debe tener instalado en su servidor AuthCAS. Las siguientes líneas son las que debe colocar en su código.

use strict;
use warnings;
use CGI;
use AuthCAS;
use CGI::Carp qw( fatalsToBrowser );

my $id = $ENV{QUERY_STRING};
my $q = new CGI;
my $target = "Colocar la URL del CGI a proteger";  #CGI a proteger
my $cas = new AuthCAS(casUrl => 'https://shib.ubiobio.cl/vubb/'); #Servicio de Autenticación

if ($id eq "") {
   my $login_url = $cas->getServerLoginURL($target);
   printf "Location: $login_url\n\n";
   exit 0;
}

my $ST = $q->param('ticket');
my $user = $cas->validateST($target, $ST); #Almacena el login del usuario

#Resto del código perl.