Contents
Introduction
Paraphrased from the JASig CAS Project Page:
Central Authentication Service, or CAS, is an authentication system originally created by Yale University to provide a trusted way for an application to authenticate a user. CAS provides enterprise single sign-on (SSO) service.
This document provides the steps for setting up different CAS Server implementations on Ubuntu Server. It does NOT cover the client side.
The procedures outlined here should work for other Linuxen including OSX, but YMMV.
Setting up the Server
All the server versions use mostly the same sequence of steps. Here's the general outline of what we're going to do here is:
- get the latest CAS server code (as of this writing)
- configure CAS to read users from in-memory database (default)
- configure CAS to read users from a MySQL database
- set up an server to which the CAS server can be deployed. This could be Ruby, Tomcat, JBoss, whatever. The server-specific configuration is detailed in the relevant sections below.
- set up an automated deployment for the CAS server
- configure CAS to store the ticketRegistry in-memory (default)
- configure CAS to store ticketRegistry in MySQL
- customize the CAS interface to make it better
Each server may have a specific further configuration, but that's in addition to the steps outlined here. Ok, let's get started.
JASig CAS Server on Tomcat
Custom configurations for the tomcat server are:
- Maven deployment to create a WAR file to distribute to the tomcat server
Pre-Requisites
Tomcat. You can get it in one of two ways. Either through aptitude:
sudo aptitude install tomcat
OR downloading it from the tomcat project page
wget <need url>
Maven. CAS comes with a Project Object Model (POM) file, which tell Maven, the project build/management tool, how to compile the CAS project.
sudo apt-get install maven2
Optionally you can install maven-ant-helper in case you decide to use Ant to create deployment tasks:
sudo apt-get install ant sudo apt-get install maven-ant-helper
Configuring CAS Server Build for Maven
Get the latest CAS server archive from JASig:
wget http://www.ja-sig.org/downloads/cas/cas-server-3.3.5-release.tar.gz tar -xvzf cas-server-3.3.5-release.tar.gz cd cas-server-3.3.5
CAS uses Maven, which relies on the pom.xml file to define tasks.
Configure the pom.xml file
Configure WEB-INF/deployerContext. Note: Keep in mind that dependencies are downloaded from the maven site, and stored in ~/.m2/repository. You can check this out for the MySQL dependency that we've defined above.
Set up database sources
RubyCAS: Ruby-based Server
JASig CAS Server on JBoss
Revoking Sessions
Ubuntu Version Specific Configuration
Troubleshooting
References
Configuring a CAS Server to Use a MySQL backend. Sachin's post inspired the creation of this Ubuntu wiki entry