Как обрабатывать конфликтующие базовый аутентификатор из обратного прокси NGINX и JWT аутентификатор из Django?

у нас есть стандартное веб-приложение Django, работающее за обратным прокси.

Я хочу настроить двухуровневую аутентификацию: одна от обратного прокси-сервера nginx для защиты приложения (в настоящее время HTTP Basic аутентификация - да, мы планируем перейти на что-то более сильное, например, сертификат клиента SSL или смарт-карты), и одна на уровне приложения

Однако в настоящее время мы столкнулись с проблемой, поскольку заголовок HTTP Basic Authorization конфликтует с заголовком Django Authorization

Проблема возникает потому, что JWT auth из Django требует от нас заполнения заголовка "Authorization" токеном, в то время как NGINX использует другой тип аутентификации.

Я ищу лучший способ решения этой проблемы и у меня есть следующие вопросы :

  1. is it possible to require Django to use an alternative HTTP header to carry its authentication token (instead of "Authorization")
  2. or, conversely, is it possible to configure our nginx to use an alternative header for the HTTP Basic authentication (but it seems unlikely as it is done at the browser level) or to require the nginx to do the header translation : i.e. converting back and forth header before pushing them to the Django app.
  3. or, even better, can we configure Django to stop using tokens and use the user authentified by nginx?

Я ищу решение, которое позволит nginx обрабатывать безопасность и быть ответственным за это, добавляя еще один слой поверх этого в Django, что было бы лучшим решением, чтобы попробовать?

Спасибо

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