edx/edx-platform — pull request #401 by ichuang (2013-07-15 12:55:21+00:00)
Title: Provide CAS authentication integration

CAS authentication (http://en.wikipedia.org/wiki/Central_Authentication_Service) is a widely employed standard, which is also very convenient to use. It works in the native nginx setup used by edX, for example.

This PR provides CAS authentication via a small set of changes, and a stub in `external_auth` for dealing with the need for UserProfile. This builds on `django_cas` (using a version which has been updated to work in Django 1.4: https://github.com/mitocw/django-cas).

MIT is currently using this PR for authentication to its Shibboleth service. It employs a separate CAS provider which runs behind Apache2; this is convenient, since nginx doesn't natively handle Shibboleth. The CAS provider can also handle openid authentication. The code has been in production use for some time.

Note that there are no tests provided in this PR.