Django auth backend :
comment Django vérifie qui se connecte

Un auth backend (backend d'authentification) dans Django est un composant enfichable chargé de vérifier l'identité d'un utilisateur ; le backend par défaut valide identifiant et mot de passe contre la base de données.
Derrière chaque connexion réussie sur un site Django se cache un mécanisme discret : le auth backend, composant chargé de vérifier l’identité des utilisateurs.
Django ne code pas « en dur » la vérification d’identité : il la délègue à des backends interchangeables, ce qui rend le système remarquablement souple.
Un backend d’authentification répond à une seule question : « ces identifiants correspondent-ils à un utilisateur légitime ? » C’est une classe Python exposant une méthode authenticate() qui reçoit nom et mot de passe, puis renvoie un objet utilisateur ou None. Django teste les backends dans l’ordre. Le premier qui valide l’identité l’emporte, tandis que login() ouvre la session.
ModelBackend, le backend par défaut, valide les identifiants contre la base de données. Pour la majorité des sites, ce réglage suffit.
Au-delà du backend par défaut
Dès que l’identité ne vit pas uniquement chez vous — annuaire d’entreprise, connexion via Google, règle sur mesure — vous pouvez brancher une autre source. Django autorise plusieurs backends : on tente d’abord une source externe, puis on retombe sur les comptes locaux via le paramètre AUTHENTICATION_BACKENDS.
Un espace client à sécuriser ou une authentification à brancher ? Parlons-en.
Notions liées.
Le réseau de notions autour de cette fiche — chaque entrée renvoie vers sa propre définition.
Écrire un authentication backend
Comment créer sa propre classe d'authentification.
Le réglage AUTHENTICATION_BACKENDS
Empiler plusieurs backends et gérer leur ordre.
Django comme back-end
Le rôle serveur global du framework.
Développement back-end en Python
Le contexte plus large côté serveur.
Le back-end, côté serveur
Les fondamentaux du développement serveur.
Ce qu'on nous demande souvent.
Une question qui n'est pas ici ? Écrivez-nous : on répond en clair, sans jargon, sous 24 h.
Poser votre questionQu'est-ce qu'un auth backend dans Django ?
C'est le composant qui répond à la question « cet utilisateur est-il bien qui il prétend être ? ». Django utilise un système d'authentification enfichable : quand quelqu'un tente de se connecter, le framework interroge un ou plusieurs backends d'authentification jusqu'à ce que l'un valide l'identité.
Le backend par défaut, ModelBackend, compare l'identifiant et le mot de passe aux comptes stockés en base de données.
Comment fonctionne le backend par défaut ?
Le ModelBackend fourni par Django vérifie les identifiants contre le modèle utilisateur enregistré en base. Lors d'un appel à la fonction authenticate, il cherche l'utilisateur correspondant, contrôle le mot de passe haché, et confirme éventuellement que le compte est actif.
C'est suffisant pour la grande majorité des sites qui gèrent leurs propres comptes.
Pourquoi utiliser un autre backend que celui par défaut ?
Dès que l'identité ne vit pas uniquement dans votre base : connexion via un annuaire d'entreprise (LDAP), délégation à un fournisseur externe (Google, un serveur OAuth), ou règle sur mesure comme une connexion par e-mail plutôt que par nom d'utilisateur.
Le système enfichable permet de brancher ces sources sans réécrire la logique de session de Django.
Peut-on utiliser plusieurs backends à la fois ?
Oui. Django autorise une liste de backends, essayés dans l'ordre.
Le premier qui authentifie l'utilisateur l'emporte. Ce mécanisme se règle via le paramètre AUTHENTICATION_BACKENDS, ce qui permet, par exemple, de tenter d'abord un annuaire externe puis de retomber sur les comptes locaux.
Auth backend et permissions, est-ce lié ?
En partie. Un backend d'authentification peut aussi fournir des informations d'autorisation : Django interroge les backends non seulement pour valider l'identité, mais aussi pour savoir de quelles permissions dispose un utilisateur.
Un backend sur mesure peut donc influencer à la fois qui se connecte et ce qu'il a le droit de faire.