Martes 21 Mayo 2024

  • 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.