Есть ли способ получить обратный прокси-сервер с использованием базовой аутентификации http перед API REST, в котором также используется базовая аутентификация http с другими именами пользователей и паролями?
Обратный прокси-сервер - Apache, если это имеет значение.
Наиболее очевидное решение, по-видимому, заключается в том, чтобы приложение и прокси-сервер использовали разные заголовки для аутентификации.
1) Например, я мог бы отправить запрос на прокси как:
GET /foo/1 HTTP/1.1
Authorization: proxyuserpasshere
X-Passthru-Authorization: restuserpasshere
И тогда прокси-сервер будет использовать заголовок «Авторизация» и (если он будет действителен) передавать запрос базовому веб-приложению, например:
GET /foo/1 HTTP/1.1
Authorization: restuserpasshere
(где значение restuserpasshere было взято из заголовка X-Passthru-Authorization)
Есть ли способ настроить Apache, чтобы это работало?
2) И наоборот, я мог бы использовать стандартный заголовок "Authorization
" для прокси и использовать настраиваемый заголовок для проверки подлинности моего приложения. Таким образом, запрос будет выглядеть так:
GET /foo/1 HTTP/1.1
Authorization: proxyuserpasshere
X-Myapp-Authorization: restuserpasshere
Недостатком этого является то, что мое приложение теперь жестко задано для использования заголовка "X-Myapp-Authorization
" вместо стандартного заголовка Authorization
.
Есть ли лучший способ обойти это?