Django запрос для CAC (общей карты доступа)

В настоящее время я запускаю свое приложение Django на сервере Apache v2.4.5.2. Когда пользователь заходит на начальную страницу (т.е. www.djangoApp.com), ему предлагается ввести свой CAC и PIN. После завершения ввода PIN всплывающее окно исчезает, и пользователь попадает на целевую страницу. Проблема, с которой я столкнулся, заключается в том, чтобы выяснить, как идентифицировать пользователя на основе HTTP-ответа, полученного от внешнего источника (GCDS). В журналах сервера я могу увидеть информацию о запросе, но я не знаю, как просмотреть этот запрос в представлениях Django. Я пытался закомментировать все промежуточное ПО, чтобы запрос прошел, но это не работает. Блокирует ли Apache определенные HTTP-запросы? Есть ли место, где мне нужно разрешить внешние запросы? Единственный запрос, который я получаю:

Мой settings.py выглядит следующим образом:

Я пробовал создавать свое собственное промежуточное ПО, комментировать все промежуточное ПО... Я застрял. Как я могу просмотреть запрос GCDS, содержащий информацию CAC? Блокирует ли Apache определенные HTTP-запросы? Есть ли место, где мне нужно разрешить внешние запросы?

Проблема связана с именованием заголовков на стороне Apache. Django отбрасывает все заголовки, названные с подчеркиванием ("_"). Однако, если вы используете тире ("-"), django примет заголовок и преобразует тире в подчеркивание.

Мы изменили это в файле httpd-ssl.conf:

RequestHeader set REMOTE_USER "%{SSL_CLIENT_S_DN_CN}s"

to:

RequestHeader set REMOTE-USER "%{SSL_CLIENT_S_DN_CN}s"

Теперь в нашем views.py мы можем вызвать request.META и получить всю информацию об аутентификации. Даже с промежуточным ПО запрос проходит со всеми данными.

Вернуться на верх