вложенная HTTP базовая аутентификация? - PullRequest
4 голосов
/ 05 января 2012

Есть ли способ получить обратный прокси-сервер с использованием базовой аутентификации 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.

Есть ли лучший способ обойти это?

1 Ответ

2 голосов
/ 11 августа 2012

Не проверено, но я бы попробовал что-то вроде:

RequestHeader set Authorization %{HTTP:X-Passthru-Authorization}

Я не знаю, разрешен ли синтаксис %{HTTP:x-HEADER}.Возможно, вам придется поиграть с переменными окружения.

См .:

http://httpd.apache.org/docs/2.2/mod/mod_headers.html

http://php.dzone.com/news/inserting-variable-headers-apa

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...