Джанго и Карты общего доступа (CAC) - PullRequest
2 голосов
/ 19 сентября 2010

Запланировано веб-приложение, написанное на Python, Django является ведущим претендентом в качестве фреймворка.

Одним из требований является доступ к CAC, без необходимости вручную вводить имя пользователя и пароль.Из того, что я могу сказать, доступ к CAC не является частью «батарей», включенных в Django.

Как монолитная структура (не обязательно плохой атрибут), у Django есть репутация высокого уровня обслуживания после измененияядро.Могу ли я легко добавить доступ CAC к сайту Django?Может ли он быть легко поддержан после этого?

Или, может быть, мы должны рассмотреть другой каркас Python?

FYI .. интересная презентация о доступе к CAC ссылка

Ответы [ 3 ]

1 голос
/ 19 сентября 2010

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

Подробнее см. в документации .

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

0 голосов
/ 16 ноября 2012

Я только что сделал это сегодня, создав подкласс django.contrib.auth.middleware.RemoteUserMiddleware и изменил свойство заголовка на то, которое я установил в моем apache conf.Я просто добавил django.contrib.auth.backends.RemoteUserBackend и мое промежуточное ПО в настройки, и он отлично работает.

0 голосов
/ 19 сентября 2010

Расширение contrib.auth - это боль в шее. Это самая худшая вещь в Джанго. Если вам нужен настроенный серверный бэкэнд, я бы предложил использовать другой фреймворк.

...