Ограничить доступ к веб-сайту.Net группой компьютеров Active Directory.
Мы пытаемся выполнить аутентификацию на основе компьютеров, чтобы любой пользователь на определенных компьютерах мог получить доступ к нашему сайту.Net. Список машин изменится, но все они находятся во внутренней сети. Предполагается, что их IP-адреса не являются статичными.
Чтобы сделать его более управляемым, мы хотели бы иметь возможность ограничить доступ к группе компьютеров Active Directory.
Я могу управлять запросами AD, мой вопрос: где лучше всего извлечь имя компьютера и аутентифицировать весь сеанс?
Я посмотрел на создание нового HttpModule, но, похоже, мне придется проверять подлинность каждого запроса. Аутентификация каждого запроса не кажется идеальной, если задействован запрос AD.
2 ответа
Сеть не имеет состояния, поэтому каждый запрос всегда проходит проверку подлинности независимо от используемой технологии. Однако хитрость в том, чтобы не забивать AD, заключается в использовании http-файла cookie сеанса. Вы установили бы этот файл cookie при первом запросе и проверяли его при последующих запросах. Вам понадобится какая-то криптографическая защита куки, но, к счастью, она уже готова в ASP.NET. Я бы сказал, что вы могли бы использовать инфраструктуру проверки подлинности с помощью форм для установки и проверки файла cookie - вы просто перенесли бы начальную проверку подлинности в AD вместо чтения из опубликованной формы.
Вот отличное место для начала:
Общие сведения о билете и cookie для проверки подлинности с помощью форм http://support.microsoft.com/kb/910443
Вам не нужно проверять подлинность каждого запроса. Аутентифицируйте первый запрос с помощью HttpModule и либо добавьте запросчик в сеанс, либо кэшируйте учетные данные в течение короткого периода времени.