NAME
Dancer2::Plugin::Auth::CAS - CAS sso authentication for Dancer2
VERSION
Version 2.000
SYNOPSIS
Dancer2::Plugin::Auth::CAS provides CAS single-sign-on authentication
Add the plugin to your application:
use Dancer2::Plugin::Auth::CAS;
Configure the plugin in your config:
plugins:
"Auth::CAS":
cas_url: "https://your.org/sso"
cas_denied_path: "/denied"
cas_version: "2.0"
cas_user_map: "user"
cas_attr_map:
email: "email"
username: "username"
firstName: "firstname"
lastName: "lastname"
Call the auth_cas
function in a before filter:
before sub {
# fetches the ticket via URL 'ticket' parameter
auth_cas;
# or if you want to fetch the ticket yourself:
auth_cas( ticket => $cas_ticket_id );
# or if you want to override global options:
auth_cas(
cas_denied_path => ... ,
cas_user_map => ... ,
);
};
or in a route handler:
get '/confidential' => sub {
auth_cas;
# Authenticated
...
};
DESCRIPTION
Cancer::Plugin::Auth::CAS provides single-sign-on (sso) authentication via JASIGs Central Authentication Service (CAS). See http://www.jasig.org/cas
CONFIGURATION
The available configuration options are listed below.
cas_url
The URL of your CAS server
cas_denied_path
Redirect towards this path or URL when authentication worked but was simply invalid.
cas_version
The version of your CAS server, usually '2.0' or '1.0'
cas_user_map
This lets you choose under what name the CAS user details will be stored in your session. Defaults to: 'cas_user' All user attributes delivered by the CAS-Server will be stored as a HashRef under the session key of cas_user_map
. Defaults to: 'cas_user'
cas_attr_map
This lets you map CAS user attributes towards your own attribute names.
Example:
cas_attr_map:
email: "user_email"
username: "username"
firstName: "first_name"
lastName: "last_name"
This will map the CAS user attribute email
to user_email
aso..
FUNCTIONS
auth_cas ( %args )
This function may be called in a before filter or at the beginning of a route handler. It checks if the client is authenticated, else it redirects the client towards the CAS-server SSO login URL.
If the login succeeds, the CAS-Server will redirect the client towards the first requested path including a 'ticket' as URL parameter. This triggers the auth_cas
a second time, where it validates the 'ticket' against the CAS-Server. If the service ticket validation fails, it will redirect the client towards the cas_denied_path
URL.
Once the ticket validation has been done, the server includes user attributes in its reponse to the Dancer application. These user attributes are stored as a HashRef in a session
key (see cas_user_map
). These attributes can be renamed/mapped towards your own keys with the cas_attr_map
option.
Parameters:
ticket
(optional)If you want to extract the CAS ticket yourself, then you can forward it explicitly with this parameter.
cas_denied_path
(optional)See
cas_denied_path
in the configuration section.cas_user_map
(optional)See
cas_user_map
in the configuration section.
AUTHOR
Jean Stebens, <cpan.helba at recursor.net>
BUGS
Please report any bugs or feature requests at https://github.com/corecache/Dancer-Plugin-Auth-CAS. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Dancer2::Plugin::Auth::CAS
You can also look for information at: https://github.com/corecache/Dancer-Plugin-Auth-CAS
LICENSE AND COPYRIGHT
Copyright 2013-2014 Jean Stebens.
This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.