2009-11-16 2 views
5

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

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

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

ответ

1

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

+0

Имейте в виду, что реферер может быть трогательным в зависимости от вашей аудитории. Некоторые пакеты «Internet Security» фильтруют заголовок реферера из запросов. –

7

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