Version: | 0.3.0 |
---|---|
Source: | https://github.com/isprojects/django-auth-adfs-db |
Keywords: | ADFS, Django, database, authentication backend |
PythonVersion: | 3.7 |
A database-backed django-auth-adfs settings class
Contents
- Thin layer on top of django-auth-adfs
- SAAS ready: store ADFS configuration in a database singleton
- Quick toggle to enable/disable ADFS based auth
- Hooks into Django's auth machinery
Django-auth-adfs-db provides a setting class reading out the dynamic ADFS configuration. This moves the ADFS configuration from deploy-time to run-time, and SAAS clients can configure their ADFS integration themselves. No more server reloads of deployment environment variable changes needed!
- Python 3.6 or higher
- setuptools 30.3.0 or higher
- Django 2.1 or higher
- PostgreSQL (with jsonb field)
pip install django-auth-adfs-db
This will also install the django-auth-adfs
and django-solo
packages.
Make sure the following libraries are added to your INSTALLED_APPS
:
INSTALLED_APPS = [
...
"django_auth_adfs"
"django_auth_adfs_db"
"solo",
...
]
Add django_auth_adfs_db.backends.AdfsAuthCodeBackend
to
AUTHENTICATION_BACKENDS
.
Ensure that LOGIN_URL
and LOGIN_REDIRECT_URL
are configured. You can
set:
LOGIN_URL = reverse_lazy("django_auth_adfs:login")
LOGIN_REDIRECT_URL = "/"
if you wish to make ADFS your primary auth login.
Set the AUTH_ADFS
config class:
AUTH_ADFS = {"SETTINGS_CLASS": "django_auth_adfs_db.settings.Settings"}
or a subclass thereof.
Finally, register the URLs in your root config with:
urlpatterns += [path("oauth2/", include("django_auth_adfs.urls")),]
Template: admin/login.html
{% extends "admin/login.html" %}
{% load solo_tags i18n %}
{% block content %}
{{ block.super }}
{% get_solo 'django_auth_adfs_db.ADFSConfig' as adfs_config %}
{% if adfs_config.enabled %}
<div class="submit-row">
<a href="{% url 'django_auth_adfs:login' %}">{% trans "Login with ADFS" %}</a>
</div>
{% endif %}
{% endblock %}
You can now configure the ADFS settings in the Django admin.
Please follow the django-auth-adfs
documentation for advanced usage.