Имеет эквивалентный модуль для nginx ngx_http_auth_request_module
существуют для HAProxy или Apache? Этот модуль позволяет поддерживать пользовательскую аутентификацию через HTTP. Я цитирую:
В
ngx_http_auth_request_module
модуль (1.5.4+) реализует авторизацию клиента на основе результата подзапроса. Если подзапрос возвращает код ответа 2xx, доступ разрешен. Если он возвращает 401 или 403, доступ запрещается с соответствующим кодом ошибки. Любой другой код ответа, возвращенный подзапросом, считается ошибкой.
Можешь попробовать этот Lua на основе решение. Это вдохновлено ngx_http_auth_request_module
.
Загрузите скрипт lua в global
раздел.
global
lua-load /usr/share/haproxy/auth-request.lua
Определите серверную часть аутентификации
backend auth_request
mode http
server auth_request 127.0.0.1:8080 check
Вызвать проверку Lua во внешнем интерфейсе и отклонить запрос, если он не удался.
frontend http
http-request lua.auth-request auth_request /is-allowed
http-request deny if ! { var(txn.auth_response_successful) -m bool }
Автор также сделал приятный Сообщение блога, где он подробно объяснил внутреннюю работу.
По крайней мере, для apache (как 1.x, так и 2.x) вы можете попробовать https://github.com/kitech/mod_authnz_external. Он запускает внешний сценарий для обработки учетных данных пользователя. Этот сценарий, в свою очередь, может запрашивать внешнюю службу через HTTP [s], в этом случае он будет работать аналогично (без учета проблем с производительностью) ngx_http_auth_request_module