A CAS OmniAuth Strategy
Pull request Compare This branch is 97 commits behind dlindahl:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


OmniAuth CAS Strategy Build Status Dependency Status

This is a OmniAuth 1.0 compatible port of the previously available OmniAuth CAS strategy that was bundled with OmniAuth 0.3.

View the documentation


Add this line to your application's Gemfile:

gem 'omniauth-cas'

And then execute:

$ bundle

Or install it yourself as:

$ gem install omniauth-cas


Use like any other OmniAuth strategy:

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :cas, :host => 'cas.yourdomain.com'

OmniAuth CAS requires at least one of the following two configuration options:

  • host - Defines the host of your CAS server. A default login URL of /login will be assumed.
  • login_url - Defines the URL used to prompt users for their login information. If no host is configured, the host application's domain will be used.

Other configuration options:

  • port - The port to use for your configured CAS host
  • ssl - TRUE to connect to your CAS server over SSL.
  • service_validate_url - The URL to use to validate a user. Defaults to '/serviceValidate'
  • logout_url - The URL to use to logout a user. Defaults to '/logout'
  • uid_key - The user data attribute to use as your user's unique identifier. Defaults to 'user' (which usually contains the user's login name)
  • ca_path - Optional when ssl is true. Sets path of a CA certification directory. See Net::HTTP for more details

Migrating from OmniAuth 0.3

Given the following OA 0.3 configuration:

provider :CAS, :cas_server => 'https://cas.example.com/cas/'

... your new settings should look similar to this:

provider :cas, :host => 'cas.example.com',
         :login_url => '/cas/login',
  	     :service_validate_url => '/cas/serviceValidate'

If you encounter problems wih SSL certificates you may want to set the ca_path parameter or activate disable_ssl_verification (not recommended).


  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request


Special thanks go out to the following people

  • Phillip Aldridge (@iterateNZ) and JB Barth (@jbbarth) for helping out with Issue #3