djangosaml

Django SAML2 Authentication Made Easy. Easily integrate with SAML2 SSO identity providers like Okta


Keywords
Django, SAML2, Authentication, Made, Easy, integrate, with, SSO, such, as, Okta, easily
License
Apache-2.0
Install
pip install djangosaml==1.0.0

Documentation

Django SAML Authentication Made Easy.

Full documentation for the project is available at https://djangosaml.readthedocs.io/en/latest/.

Python Version

Pypi

Downloads

Requirements

  • Python 3.6+
  • Django 5.0, 4.2, 4.1, 4.0, 3.2, 3.1, 3.0

Installation

xmlsec1 is required by pysaml2:

    apt install xmlsec1
    // or
    yum install xmlsec1
    // or
    brew install xmlsec1

Install using pip...

pip install djangosaml

Add 'djangosaml' to your INSTALLED_APPS setting.

INSTALLED_APPS = [
    ...
    'djangosaml',
]

Now update your root urls.py:

urlpatterns = [
    ...
    path('djangosaml/', include('djangosaml.urls')),
]

Copy your metadata.xml into root directory.

In settings.py, add the SAML2 related configuration.

SAML2_AUTH = {
    # Metadata is required, local file path
    'METADATA_LOCAL_FILE_PATH': BASE_DIR / 'metadata.xml',
    # Populates the Issuer element in authn request
    'ENTITY_ID': 'https://your-domain/djangosaml/acs/',
    # Change Email/UserName/FirstName/LastName to corresponding SAML2 userprofile attributes.
    'ATTRIBUTES_MAP': { 
        'email': '',
        'username': '',
        'first_name': '',
        'last_name': '',
    },
}

In your SAML2 SSO identity provider, set the Single-sign-on URL and Audience URI(SP Entity ID) to:

https://your-domain/djangosaml/acs/