Я запускаю набор прокси-серверов NGINX, использующих базовую аутентификацию браузера с файлом htpasswd для пользователей.
Я создал небольшое приложение с Laravel, которое аутентифицирует пользователя и предоставляет им список ссылок на эти прокси-серверы nginx.
Я хочу обновить аутентификацию nginx до чего-то вроде токенов JWT, однако я не уверен, что это было бы достаточно безопасно без стоящего за ним API для проверки самого фактического токена?
Другой вариант, о котором я думал, - это решение LDAP с прокси Laravel и NGINX с использованием аутентификации ldap.
Приложения, которые находятся за прокси-сервером nginx, не имеют аутентификации, и в настоящее время мы не намерены добавлять к ним какие-либо функции.
Nginx включает модуль запроса аутентификации, который
реализует авторизацию клиента на основе результата подзапроса. Если подзапрос возвращает код ответа 2xx, доступ разрешен. Если он возвращает 401 или 403, доступ запрещается с соответствующим кодом ошибки. Любой другой код ответа, возвращенный подзапросом, считается ошибкой.
Для ошибки 401 клиент также получает заголовок «WWW-Authenticate» из ответа на подзапрос.
На ум приходят две возможности:
Разрабатывая второй ответ:
htpasswd
файл для чтения Nginx.Nginx не имеет встроенного средства для этого. Он может выполнять только аутентификацию htpasswd и правила разрешения / запрета для каждого IP-адреса.
В Nginx Plus есть способ сделать это, и он подробно описан в блог Nginx