Building a custom authentication backend
Django allows you to authenticate against different sources. The AUTHENTICATION_BACKENDS
setting includes the list of authentication backends for your project. By default, this setting is set as follows:
['django.contrib.auth.backends.ModelBackend']
The default ModelBackend
authenticates users against the database using the user model of django.contrib.auth
. This will suit most of your projects. However, you can create custom backends to authenticate your user against other sources, such as an LDAP directory or any other system.
You can read more information about customizing authentication at https://docs.djangoproject.com/en/2.0/topics/auth/customizing/#other-authentication-sources.
Whenever you use the authenticate()
function of django.contrib.auth
, Django tries to authenticate the user against each of the backends defined in AUTHENTICATION_BACKENDS
one by one, until one of them successfully authenticates the user. Only if all of the backends fail...