Джанго Админ - Повторная аутентификация? - PullRequest
5 голосов
/ 16 ноября 2009

В данный момент у меня возникла небольшая дилемма в отношении административного бэкэнда Django. Система аутентификации по умолчанию позволяет уже зарегистрированным пользователям, имеющим привилегии персонала, получать доступ к сайту администратора, однако она просто позволяет им войти.

Мне это не кажется «правильным», и мне интересно, будет ли трудно хотя бы потребовать повторную аутентификацию этого же сеанса, чтобы войти в бэкэнд.

Желательно, однако, было бы хорошо, если бы сеансы внешнего интерфейса могли быть отделены от внутренних (хотя все еще с использованием одних и тех же пользовательских объектов), это позволило бы четко разделить обе части сайта. Возможно, это потребует двух отдельных аутентификационных бэкэндов? Трудно ли достичь чего-то подобного?

Ответы [ 2 ]

7 голосов
/ 16 ноября 2009

Вот идея: запустить приложение администратора в домене, отличном от внешнего интерфейса. Файлы cookie не будут действительны в другом домене, поэтому пользователю придется снова войти в систему. Все, что вам нужно, это отдельный Apache vhost и базовый файл settings.py, который просто имеет contrib.admin в INSTALLED_APPS.

1 голос
/ 16 ноября 2009

Возможно, вы могли бы реализовать промежуточное программное обеспечение, которое запрашивает аутентификацию при доступе к сайту администратора от реферера, который не находится на сайте администратора. Он может выйти из системы и заставить его снова войти в систему, но даже в этом нет необходимости. Просто потребуйте еще один ввод пароля и перенаправьте их в случае сбоя. Это может включать установку переменной сеанса, is_admin_authenticated или что-то еще.

...