Skip to main content

Django SSO solution

Project description

NOTE! django-admin-sso uses Google’s oauth2client which has been deprecated for a long time; the repository has even been archived by Google now. django-admin-sso isn’t going anywhere but I’d recommend that new projects use django-authlib’s Admin OAuth support.

Django admin SSO

Django admin SSO lets users login to Django’s administration panel using an OAuth2 provider instead of a username/password combination.

Installation

django-admin-sso is most often used with Google OAuth2 and the instructions follow that assumption. At least in theory it is possible to use a different OAuth2 provider.

  1. Make sure you have a working Django project setup.

  2. Install django-admin-sso using pip:

    pip install django-admin-sso
  3. Add admin_sso to INSTALLED_APPS in your settings.py file:

    INSTALLED_APPS = (
        ...
        'admin_sso',
        ...
    )
  4. Add the django-admin authentication backend:

    AUTHENTICATION_BACKENDS = (
        'admin_sso.auth.DjangoSSOAuthBackend',
        'django.contrib.auth.backends.ModelBackend',
    )
  5. Insert your OAuth2 client id and secret key into your settings file:

    DJANGO_ADMIN_SSO_OAUTH_CLIENT_ID = 'your client id here'
    DJANGO_ADMIN_SSO_OAUTH_CLIENT_SECRET = 'your client secret here'

Navigate to Google’s Developer Console, create a new project, and create a new client ID under the menu point “APIs & AUTH”, “Credentials”. The redirect URI should be of the form http://example.com/admin/admin_sso/assignment/end/

  1. Run ./manage.py migrate to create the needed database tables.

  2. Log into the admin and add an Assignment.

Assignments

Any Remote User -> Local User X

  • Select Username mode “any”.

  • Set Domain to your authenticating domain.

  • Select your local user from the User drop down.

Remote User -> Local User

  • Select Username mode “matches” or “don’t match”.

  • Set username to [not] match by.

  • Set Domain to your authenticating domain.

  • Select your local user from the User drop down.

Changelog

3.0

  • Dropped support for Django<1.11 and Python<3.

  • Modernized the package and reformatted the code using black.

2.4

  • Official support for Django 1.11.

2.3

  • Raised the minimum supported Django version to the LTS version, 1.8.

  • Avoid deprecation warnings with Django 1.10.

2.2

  • Official support for Django 1.10 (no changes were necessary)

  • Made the admin panel usable on sites with many users.

2.1

  • Removed support for OpenID

  • Python 3 compatible

  • Dropped support for Django versions older than 1.7

  • Continued development as django-admin-sso (2.0.x versions were released independently as django-admin-sso2)

1.0

Project details


Download files

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

Source Distribution

django-admin-sso-5.2.0.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

django_admin_sso-5.2.0-py2.py3-none-any.whl (9.5 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file django-admin-sso-5.2.0.tar.gz.

File metadata

  • Download URL: django-admin-sso-5.2.0.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for django-admin-sso-5.2.0.tar.gz
Algorithm Hash digest
SHA256 878f1776825c8454c440781153b9a7a755192f97f6a09d66961cd2d1066fd04c
MD5 88abc24f805af7e8d0024e2696c7338b
BLAKE2b-256 9ee318b343f1521a2b82ea6dff612f1c9435fe88f6a677d29b3b9147f964e9b8

See more details on using hashes here.

Provenance

File details

Details for the file django_admin_sso-5.2.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for django_admin_sso-5.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 5cab4c9a3746a60c36f384ec7aa9cd4bc6eb73f44de6bcdba7293346d31fcfc8
MD5 cb23f13351eded39f0a0b6742968bfb7
BLAKE2b-256 729f43610a18d199447a02a7a90a73546c844200b256715633f1305214d7cf22

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page