Introduction
New CAS documentation site
CAS documentation has moved over to apereo.github.io/cas, starting with CAS version 4.x. The wiki will no longer be maintained. For the most recent version of the documentation, please refer to the aforementioned link.
What is CAS?
JA-SIG Central Authentication Service is an enterprise level, open-source, single sign on solution with a Java server component and various client libraries written in a multitude of languages including PHP, PL/SQL, Java, and more.
History
The Central Authentication Service project began in 2001 at Yale University, initially developed by Shawn Bayern. It initially only supported 1-tier, centralized single sign on. In 2002, Yale released a new version of CAS (2.0) that provided n-tier, proxiable, single sign-on.
In September of 2004, Yale University and Rutgers, the State University of New Jersey held initial discussions about a new version of CAS. In December of 2005, CAS became a Jasig project. Though the protocol did not change, CAS 3.0 introduced a completely new architecture that enabled deployers to easily extend and plug-in to the CAS server without modifying the code. This enabled new levels of sharing amongst deployers! The architecture for CAS has not changed much since its June 2005 release, and has allowed rapid development of new features and add-ons.
Release Numbering
It is useful to understand how CAS release numbers work, as it will help you identify the effort (or lack thereof) involved in migrating to future releases of the project. Officially, the CAS project uses the Apache Portable Runtime Project versioning guidelines. We quote the introduction contained on that page for your convenience:
Versions are denoted using a standard triplet of integers: MAJOR.MINOR.PATCH. The basic intent is that MAJOR versions are incompatible, large-scale upgrades of the API. MINOR versions retain source and binary compatibility with older minor versions, and changes in the PATCH level are perfectly compatible, forwards and backwards.
Note that we make every attempt for the CAS API to be perfectly compatible. However, there have been a few instances in patch releases where we were upgrading libraries that were stabilizing their own APIs. In those instances, CAS may not have been perfectly compatible. In these few instances we will expend every effort to make the differences as apparent as possible.