django-windowsauth

Easy integration and deployment of Django projects into Windows Environments.


Keywords
active-directory, active-directory-integration, django, django-auth, django-authentication, django-authorization, iis, iis-server, ldap, ldap-authentication, ldap3, python, python3, wfastcgi, windows
License
BSD-3-Clause
Install
pip install django-windowsauth==1.3.2

Documentation

django-windowsauth

Documentation Status

Maintained

image

Easy integration and deployment of Django projects into Windows Environments.

Requirements:

  • Python (3.6, 3.7, 3.8, 3.9)
  • Django (2.2, 3.1, 3.2)

Features

Quick Start

  1. Install with pip install django-windowsauth
  2. Run py manage.py migrate windows_auth
  3. Add "fastcgi application" with wfastcgi-enable
  4. Configure project settings
INSTALLED_APPS = [
    "windows_auth",
]

MIDDLEWARE = [
    # ...
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.RemoteUserMiddleware',
    'windows_auth.middleware.UserSyncMiddleware',
    # ...
]

AUTHENTICATION_BACKENDS = [
    "windows_auth.backends.WindowsAuthBackend",
    "django.contrib.auth.backends.ModelBackend",
]

WAUTH_DOMAINS = {
    "<your domain's NetBIOS Name> (EXAMPLE)": {
        "SERVER": "<domain FQDN> (example.local)",
        "SEARCH_SCOPE": "<search scope> (DC=example,DC=local)",
        "USERNAME": "<bind account username>",
        "PASSWORD": "<bind account password>",
    }
}

# optional
STATIC_URL = '/static/'
STATIC_ROOT = BASE_DIR / "static"

MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR / "media"
  1. Generate web.config files with py manage.py createwebconfig -s -m
  2. Create new IIS Website from the project files

If you don't need Windows Authentication on your site, skip adding the middleware and authentication backend.

For more details visit the docs for installation: https://django-windowsauth.readthedocs.io/en/latest/installation/installation.html

Getting help

In case you have trouble while using this module, you may use the GitHub Disccussion.

For any bug or issue, open a new GitHub Issue.

Contributing