Simple app to enable Microsoft Account, Office 365 and Xbox Live authentcation as a Django authentcation backend.
- Free software: MIT license
- Documentation: https://django-microsoft-auth.readthedocs.io.
django_microsoft_auth follows the same support cycle as Django, with one exception: no Python 2 support. If you absoutely need Python 2.7 support, everything should largely already work, but you may need to patch microsoft_auth.admin and/or other files to get it to work.
Supported python versions: 3.4+
Supported Django version: 1.11 LTS, 2.0+
Install Django
- Install and configure the Sites framework
- Make sure you update the domain of SITE_ID, this is important and used later. Easy way is to go /admin/sites/site/1/change/ if you have the admin site enabled.
- Create a Microsoft OAuth Application
- write down your client ID
- Generate an Application Secret, store this somewhere, you will need it for later
- Add a Web Platform with Allow Implicit Flow and a valid Redirect URL (this will probably be https://<your-domain>/microsoft/auth-callback/), it must be HTTPS
- Add User.Read under Delegated Permissions
Install package from PyPi:
pip install django_microsoft_auth
Add the following to your settings.py:
INSTALLED_APPS = [ # other apps... 'django.contrib.sites', 'microsoft_auth', ] TEMPLATES = [ { # other template settings... 'OPTIONS': { 'context_processors': [ # other context_processors... 'microsoft_auth.context_processors.microsoft', ], }, }, ] AUTHENTICATION_BACKENDS = [ 'microsoft_auth.backends.MicrosoftAuthenticationBackend', 'django.contrib.auth.backends.ModelBackend' # if you also want to use Django's authentication # I recommend keeping this with at least one database superuser in case of unable to use others ] # pick one # Microsoft authentication # include Microsoft Accounts, Office 365 Enterpirse and Azure AD accounts MICROSOFT_AUTH_LOGIN_TYPE = 'ma' # Xbox Live authentication # MICROSOFT_AUTH_LOGIN_TYPE = 'xbl' # Xbox Live authentication MICROSOFT_AUTH_CLIENT_ID = 'your-client-id-from-apps.dev.microsoft.com' MICROSOFT_AUTH_CLIENT_SECRET = 'your-client-secret-from-apps.dev.microsoft.com'
Add the following to your urls.py:
urlpatterns = [ # other urlpatterns... url(r'^microsoft/', include('microsoft_auth.urls', namespace='microsoft')), ]
Run migrations:
python manage.py migrate
Start site and goto /admin to and logout if you are logged in.
Login as Microsoft/Office 365/Xbox Live user. It will fail. This will automatically create your new user.
Login as a Password user with access to change user accounts.
Go to Admin -> Users and edit your Microsoft user to have any permissions you want as you normally.
See microsoft_auth/templates/microsoft/admin_login.html for details examples on making a Login form.
See official docs for more details on setup and configuration.
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.