Django viene con un sistema de autenticación de usuarios. Maneja cuentas de usuario, grupos, permisos y sesiones de usuario basadas en cookies. Esta sección de la documentación explica cómo funciona la implementación por defecto «out of the box», así como cómo extender y personalizar para satisfacer las necesidades de tu proyecto.
El sistema de autenticación de Django maneja tanto la autenticación como la autorización. Brevemente, la autenticación verifica que un usuario es quien dice ser y la autorización determina qué puede hacer un usuario autenticado. Aquí el término «autenticación» se utiliza para referirse a ambos tareas.
El sistema auth consiste en:
Usuarios
Permisos: Banderas binarias (sí/no) que designan si un usuario puede realizar una tarea determinada.
Grupos: Una forma genérica de aplicar etiquetas y permisos a más de un usuario.
Un sistema de hashing de contraseñas configurable
Herramientas para formularios y vistas de inicio de sesión de usuarios, o restricción de contenido
Un sistema de backend pluggable
El sistema de autenticación en Django busca ser muy genérico y no proporciona algunas características comunes encontradas en sistemas de autenticación web. Se han implementado soluciones para algunos de estos problemas comunes en paquetes terceros:
Verificación de la fuerza de contraseñas
Limitación del número de intentos de inicio de sesión
Autenticación contra terceros (OAuth, por ejemplo)
Permisos a nivel de objeto
El soporte para autenticación está incluido como un módulo contribuyente de Django en django.contrib.auth. Por defecto, la configuración requerida ya está incluida en el archivo settings.py generado por django-admin startproject, que consiste en dos elementos listados en tu configuración INSTALLED_APPS.
'django.contrib.auth' contiene el núcleo del marco de autenticación y sus modelos predeterminados.
'django.contrib.contenttypes' es el sistema de tipos de contenido de Django :doc:` </ref/contrib/contenttypes>`, que permite asociar permisos con los modelos que creas.
y estos elementos en tu configuración MIDDLEWARE :
SessionMiddleware gestiona las sesiones a lo largo de solicitudes.
AuthenticationMiddleware asocia usuarios con solicitudes utilizando sesiones.
Con estas configuraciones en lugar, ejecutar el comando manage.py migrate crea las tablas de base de datos necesarias para los modelos y permisos relacionados con autenticación y permisos para cualquier modelo definido en tus aplicaciones instaladas.
Usando la implementación predeterminada de Django
Referencia de API para la implementación por defecto
may 31, 2026