A simple Django app for user authentication with Azure Active Directory.
Project description
Django Azure Auth
A simple Django app for user authentication with Azure Active Directory.
Description
django-azure-auth
is a Django app which wraps the great MSAL
package to enable authentication against Microsoft's Azure Active Directory in Django projects.
The app includes login
, logout
and callback
authentication views, and a decorator
to protect other views. A middleware
module will be included in an upcoming release, which
will avoid the need to protect each view individually with the decorator.
This project is in no way affiliated with Microsoft.
Installation
From PyPi:
pip install django-azure-auth
Configuration
Azure setup
- Register an app at https://portal.azure.com/.
- Add a client secret and note it down.
- Add a redirect URI of the format
https://<domain>/azure_auth/callback
.
Settings
Add the following to your settings.py
, replacing the variables in braces with the values
from your Azure app:
AZURE_AUTH = {
"CLIENT_ID": "<client id>",
"CLIENT_SECRET": "<client secret>",
"REDIRECT_URI": "https://<domain>/azure_auth/callback",
"SCOPES": ["User.Read"],
"AUTHORITY": "https://login.microsoftonline.com/<tenant id>", # Or https://login.microsoftonline.com/common if multi-tenant
"LOGOUT_URI": "https://<domain>/logout", # Optional
}
LOGIN_URL = "/azure_auth/login"
LOGIN_REDIRECT_URL = "/" # Or any other endpoint
Note: You should obfuscate the credentials by using environment variables.
Installed apps
Add the following to your INSTALLED_APPS
:
INSTALLED_APPS = (
"...",
"azure_auth",
"..."
)
Authentication backend
Configure the authentication backend:
AUTHENTICATION_BACKENDS = ("azure_auth.backends.AzureBackend",)
URLs
Include the app's URLs in your urlpatterns
:
from django.urls import path, include
urlpatterns = [
path("azure_auth/", include("azure_auth.urls"),),
]
Usage
Decorator
To make user authentication a requirement for accessing an individual view, decorate the view like so:
from azure_auth.decorators import azure_auth_required
from django.shortcuts import HttpResponse
@azure_auth_required
def protected_view(request):
return HttpResponse("A view protected by the decorator")
Planned development
- Middleware
- Groups management
Credits
This app is heavily inspired by and builds on functionality in https://github.com/shubhamdipt/django-microsoft-authentication, with both feature improvements and code assurance through testing.
Credit also to:
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 django_azure_auth-0.1.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 909b54452be3e83d7e4786aff3365633d705a31aeb11704b3357fd5d3de7d35e |
|
MD5 | ac083fc23dcadd8bbcc40a151e5b4f03 |
|
BLAKE2b-256 | abec518f5c9cdc113b773cb378f31f553d7287417e34ba984008767afbe326fb |