NTLM и автоматическая анонимная аутентификация IIS - PullRequest
3 голосов
/ 02 ноября 2010

У меня есть приложение MVC для нашей интрасети, которое использует проверку подлинности NTLM, однако я хочу иметь возможность разрешить внешним пользователям доступ к приложению.Все внешние подключения к нашей интрасети осуществляются через NAT и, следовательно, имеют один IP-адрес, который можно использовать для обозначения того, является ли запрос внешним или нет.Я хочу, чтобы все внутренние пользователи проходили аутентификацию NTLM, как они уже делают, но любое соединение, исходящее от внешнего IP-адреса, автоматически получает анонимную аутентификацию («анонимным» является любой потенциальный пользователь по умолчанию, например, стандартная сетевая служба или учетная запись IUSR_, указанный пользователь домена (строгозаблокирован для других целей, конечно) и т. д.).В результате никто не должен видеть запрос пароля, кроме внутреннего и с браузером, который по умолчанию использует NTLM.

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

  1. Перехват запросов до того, как они попадут в модуль WindowsAuthenticationModule, в IIS, одно из событий в global.asax или HTTPHandler, чтобы мы могли внедритьаутентификация для назначенного пользователя.
  2. В NAT есть способ внедрить заголовки NTLM в HTTP-запрос для назначенного пользователя.
  3. Когда внешние пользователи получают к нему через другой хост (DNS обрабатывается на своем конце, чтобы соответствовать их соглашениям по присвоению имен) заставить IIS обслуживать простой прокси-сайт, который принимает запрос, перенаправляет запрос на основной веб-сайт с использованием NTLM назначенного пользователя, а затем отправляет ответ обратно исходному запрашивающему.

1 Ответ

1 голос
/ 05 ноября 2010

Я разработал веб-сайт, используя метод перехвата запроса, который вы описываете. Вот ссылка с подробной информацией.

...