Custom edX authentication backends and pipeline steps
Project description
auth-backends
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for edx_auth_backends-0.5.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 66e9e1afffc69ae76df1c6cae454e74d889a4a61aa30398c70f50b84d068d915 |
|
MD5 | d304d96a2f1a3f87c13b5f3e83dcca24 |
|
BLAKE2b-256 | 70bd27e472ff73e754ab6ea9551fdb832d2a65081cea787584d7243e4fcf6f5c |