Django поставляется с системой аутентификации пользователя. Она обрабатывает учетный записи пользователей, группы, разрешения и сеансы пользователей на основе файлов cookie. В этом разделе документации объясняется, как работает реализация по умолчанию из коробки, а так же как её расширять и настаивать в соответсвии с требованиями проекта.
Обзор
Система аутентификация Django обрабатывает как аутентификацию, так и авторизацию. Вкратце, аутентификация подтвержадет, что пользователь является тем, за кого он себя выдает, а авторизация определяет, что разрешено делать аутентифицированному пользователю. Здесь, тремин аутентификация, используется для обозначения обеих задач.
Система аутентификации состоит из:
- Пользователей (Users)
- Разрешения (Permissions): Двоичные (да/нет) флаги, обозначающие, может ли пользователь выполнять определенную задачу.
- Групп (Group): Общий способ применения меток и разрешений для более чем одного пользователя.
- Настраиваемая системя хеширования паролей
- Формы и инструменты просмотра для авторизованных пользователей, или ограничения контента.
- Подключаемая система бэкенда
Система аутентификации Django нацелена на то, что бы быть очень общей и не предоставляет некоторые функции, обычно встречающиеся в системах веб-аутентификации. Решение некоторых наиболее распростроненных проблем реализованы в сторонних пакетах.
- Проверка надежности пароля
- Ограничение попыток входа
- Аутентификация через стороние сервисы (например, OAuth)
- Разрешения на уровне объекта
Установка
Поддержка аутентификации включена в состав дополнительного модуля Django django.contrib.auth
. По умолчанию, требуемая конфигурация уже включена в settings.py
, сгенерированным командой django-admin startproject
. Она состоит из двух пунктов, перечисленных в настройке INSTALLED_APPS
:
'django.contrib.auth'
содержит ядро аутентификации фреймворка, и основных ее моделейdjango.contrib.contenttypes'
это система типов контента Django, которая позволяет привязать разрешения с создаваемыми моделями
и двух элементов в настройке MIDDLEWARE
:
SessionMiddleware
управляет сессиями между запросамиAuthenticationMiddleware
сопоставляет пользователей, с запросами, использующими сеансы.
После установки этих параметров запуск команды manage.py migrate
создаются необходимые таблицы БД для моделей аутентификации и разрешения для любых моделей, определенных в установленных приложениях