Client library for cas 2.0 authentication server
Version 1.5
AuthCAS aims at providing a Perl \s-1API\s0 to Yale's Central Authentication System (\s-1CAS\s0). Only a basic Perl library is provided with \s-1CAS\s0 whereas AuthCAS is a full object-oriented library. =head1 \s-1PREREQUISITES\s0
This script requires IO::Socket::SSL and LWP::UserAgent
any
Network
A simple example with a direct CAS authentication use AuthCAS; my $cas = new AuthCAS(casUrl => 'https://cas.myserver, CAFile => '/etc/httpd/conf/ssl.crt/ca-bundle.crt', ); my $login_url = $cas->getServerLoginURL('http://myserver/app.cgi'); ## The user should be redirected to the $login_url ## When coming back from the CAS server a ticket is provided in the QUERY_STRING ## $ST should contain the receaved Service Ticket my $user = $cas->validateST('http://myserver/app.cgi', $ST); printf "User authenticated as %s\n", $user; In the following example a proxy is requesting a Proxy Ticket for the target application $cas->proxyMode(pgtFile => '/tmp/pgt.txt', pgtCallbackUrl => 'https://myserver/proxy.cgi?callback=1 ); ## Same as before but the URL is the proxy URL my $login_url = $cas->getServerLoginURL('http://myserver/proxy.cgi'); ## Like in the previous example we should receave a $ST my $user = $cas->validateST('http://myserver/proxy.cgi', $ST); ## Process errors printf STDERR "Error: %s\n", &AuthCAS::get_errors() unless (defined $user); ## Now we request a Proxy Ticket for the target application my $PT = $cas->retrievePT('http://myserver/app.cgi'); ## This piece of code is executed by the target application ## It received a Proxy Ticket from the proxy my ($user, @proxies) = $cas->validatePT('http://myserver/app.cgi', $PT); printf "User authenticated as %s via %s proxies\n", $user, join(',',@proxies);
\s-1CAS\s0 is Yale University's web authentication system, heavily inspired by Kerberos. Release 2.0 of \s-1CAS\s0 provides \*(L"proxied credential\*(R" feature that allows authentication tickets to be carried by intermediate applications (Portals for instance), they are called proxy.
This AuthCAS Perl module provides required subroutines to validate and retrieve \s-1CAS\s0 tickets.
Yale Central Authentication Service (http://www.yale.edu/tp/auth/) phpCAS (http://esup-phpcas.sourceforge.net/)
Copyright (C) 2003 Comite Reseau des Universites (http://www.cru.fr). All rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Olivier Salaun