Назад | Перейти на главную страницу

Как настроить apache для базовой аутентификации или разрешить использование ntlm при проксировании?

Вот мой учебный пример:

браузер ---> прокси-сервер apache ---> ISA-сервер ---> Интернет

Сервер ISA требует аутентификации.

Проблема в том, чтобы разрешить HTTPS через два прокси.

Конфигурация, которая работает с HTTP, выглядит примерно так: (да, я не хочу использовать ProxyPass, но ProxyRequests)

<virtualhost *:8080>
 ...
 SetEnv auth-proxy-chain on
 ...
 ProxyRequests On
 ProxyRemote * http://isaproxy:80
 ...
 <proxy *>
  AuthName "ISA server auth"
  AuthType Basic
  [here a module to authenticate]
  require valid-user
  Allow from all
 </proxy> 
 ...
 </virtualhost>

Пользователь может аутентифицироваться на прокси-сервере apache, после чего цепочка аутентификации отправляется на ISA-сервер, который разрешает HTTP-трафик.

Но пока браузер переключается на HTTPS, сервер ISA «говорит» NTLM и нарушает аутентификацию на прокси-сервере apache.


Если я попытаюсь использовать модуль SSPI (ntlm) примерно так:

Blablabla

  <proxy *>
    AuthName "ISA server auth"
    AuthType ntlm
    [ SSPI stuff ]
    Require valid-user
    Allow from all
   </proxy>

Сервер apache отклоняет аутентификацию (или сервер ISA, которого я действительно не знаю).


Я использую WireShark, чтобы посмотреть на номинальный процесс, используя непосредственно ISA-сервер в качестве прокси. Первая цепочка аутентификации относится к типу BASIC, затем она переключается на NTLM (и проблема продолжается с NTLM).

Как мне настроить apache, чтобы он передавал аутентификацию NTLM на прокси-сервер ISA, не проверяя ее (*)? Или переписать заголовки для принудительной аутентификации BASIC?

(*) Кажется, это не так просто, как кажется ...

Если вы не выполняете аутентификацию на прокси-сервере, то между ISA-сервером и клиентом будет происходить нормальный процесс аутентификации.

Если это сработает для вас, то я бы сделал это предложение; на самом деле нет возможности выполнить двойную аутентификацию в одних и тех же заголовках на обоих разных серверах, если только оба сервера не выполняют базовую аутентификацию с одинаковыми учетными данными.