Skip to main content

Custom edX authentication backends and pipeline steps

Project description

auth-backends Travis Codecov

This repo houses custom authentication backends, views, and pipeline steps used by edX projects such as the edx-analytics-dashboard and ecommerce. These components are primarily intended to aid the usage of edX’s single sign-on functionality (built atop OpenID Connect).

This package is compatible with Python 2.7 and 3.5, and Django 1.8 and 1.9.

Installation

The auth_backends package can be installed from PyPI using pip:

$ pip install edx-auth-backends

Backends

Included backends:

Backend Purpose
Open ID Connect Authenticate with the LMS, an OIDC provider.

Required Django settings:

Setting Default
SOCIAL_AUTH_EDX_OIDC_KEY None
SOCIAL_AUTH_EDX_OIDC_SECRET None
SOCIAL_AUTH_EDX_OIDC_ID_TOKEN_DECRYPTION_KEY None
SOCIAL_AUTH_EDX_OIDC_URL_ROOT None
EXTRA_SCOPE []
COURSE_PERMISSIONS_CLAIMS []

Set these to the correct values for your OAuth2/OpenID Connect provider. SOCIAL_AUTH_EDX_OIDC_ID_TOKEN_DECRYPTION_KEY should be the same as SOCIAL_AUTH_EDX_OIDC_SECRET. Set EXTRA_SCOPE equal to a list of scope strings to request additional information from the edX OAuth2 provider at the moment of authentication (e.g., provide course permissions bits to get a full list of courses).

Views

This package includes a login view, EdxOpenIdConnectLoginView, that utilizes edX’s implementation of OpenID Connect. This should be used for all microservices/IDAs.

LogoutRedirectBaseView is also included. It should be overridden, and customized. See the docstring for details.

urls.py

auth_urlpatterns in urls.py includes the patterns necessary to facilitate OpenID Connect login. This should be used by microservices to avoid code duplication. Note that microservices will still need to provide their own implementations of LogoutRedirectBaseView, and define the linking in the service’s urls.py file.

Testing

Call make test.

License

The code in this repository is licensed under the AGPL unless otherwise noted.

Please see LICENSE.txt for details.

How To Contribute

Contributions are very welcome!

Please read How To Contribute for details.

Even though it was written with edx-platform in mind, the guidelines should be followed for Open edX code in general.

Reporting Security Issues

Please do not report security issues in public. Please email security@edx.org.

Mailing List and IRC Channel

You can discuss this code on the edx-code Google Group or in the #edx-code IRC channel on Freenode.

History

0.1.3 (2015-03-31)

  • Update required version of Python Social Auth to 0.2.3.

0.1.2 (2015-02-23)

  • Update required version of Python Social Auth to 0.2.2.

0.1.1 (2015-02-20)

  • Initial release.

Renzo Lucioni <renzo@edx.org>

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for edx-auth-backends, version 0.4.0
Filename, size File type Python version Upload date Hashes
Filename, size edx_auth_backends-0.4.0-py2.py3-none-any.whl (13.8 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size edx-auth-backends-0.4.0.tar.gz (22.1 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page