CAS 2.0 Authentication for Blackboard
blackboard-cas is a CAS authentication module for Blackboard. It utilizes the CAS 3.1 client library in order to connect to CAS 2.x/3.x servers (using the CAS 2.0 protocol).
blackboard-cas is based on CasAuthenticationModule, developed by the University of Bristol.
Configuration
Before building, you should edit the settings in build.properties. Settings include:
- blackboard.home: The path to your Blackboard instance.
- blackboard.java.home: The path to the JDK used by Blackboard.
- blackboard.tomcat.version: The version of Tomcat Blackboard is using. Supported versions: 3, 4, 5.
- blackboard.url: The HTTP protocol and domain name to your Blackboard instance (e.g. http://blackboard.some.edu).
- blackboard.cas: The base URL to your CAS server (e.g. http://sso.some.edu/cas).
- blackboard.cas.isdefault: If true, CAS is used as the default authentication module.
- blackboard.cas.logout_completely: If false, logging out of Blackboard won't log the user out of CAS.
- blackboard.cas.use_post: If true, CAS redirects back to Blackboard using a POST request. This should be enabled if you've applied the recent XSS security patch regarding login redirection.
Building
Make a directory named lib in the blackboard-cas folder. It will need the following files (from cas-client-3.1.6-release.zip):
- cas-client-core-3.1.6.jar
- commons-logging-1.1.jar
- xmlsec-1.3.0.jar
You'll also need an instance of Blackboard in C:\blackboard in order to build.
Once you have this, you can build with ant:
C:\folder\with\ant.bat -lib lib
The build process will execute the main method of the plugin, and it should crash with an invalid ticket exception. If you get a different exception, the plugin was probably unable to connect to your CAS server.
Installation
Copy the following files into C:\blackboard\systemlib:
- dist\cas-bbauth.jar
- lib\cas-client-core-3.1.6.jar
- lib\commons-logging-1.1.jar
- lib\xmlsec-1.3.0.jar
Then update C:\blackboard\config\authentication.properties, add the settings from dist\cas-authentication.properties to it, and change bbconfig.auth.type in C:\blackboard\config\bb-config.properties to cas.
Once this is done, copy cas-common.classpath into C:\blackboard\config\tomcat\classpath.
Now restart the server and test your implementation.
Issues
Are proxy tickets supported?
No. The CAS 3.1 client library provides support for proxy tickets, but this is not yet implemented in blackboard-cas.
Why am I getting java.security.cert.CertificateException errors?
Your CAS server is using an SSL certificate that isn't in Java's database of trusted keys (known as the keystore). If you're using a self-signed certificate for testing purposes, you should add it to either Java's keystore or Blackboard's keystore, using keytool.