Встроенная проверка подлинности Windows

Майк Уассон

Встроенная проверка подлинности Windows позволяет пользователям входить с учетными данными Windows с помощью Kerberos или NTLM. Клиент отправляет учетные данные в заголовке авторизации. Проверка подлинности Windows наилучшим образом подходит для среды интрасети. Дополнительные сведения: Проверка подлинности Windows.

Преимущества Недостатки
Встроенная служба IIS. Не рекомендуется для интернет-приложений.
Не отправляет учетные данные пользователя в запросе. Требуется поддержка Kerberos или NTLM в клиенте.
Если клиентский компьютер принадлежит к домену (например, приложению интрасети), пользователю не нужно вводить учетные данные. Клиент должен находиться в домене Active Directory.

Примечание

Если приложение размещено в Azure и у вас есть локальный домен Active Directory, рассмотрите возможность федерации локальной службы AD с Azure Active Directory. Таким образом, пользователи могут входить в систему со своими локальными учетными данными, но проверка подлинности выполняется Azure AD. Дополнительные сведения см. в статье Проверка подлинности Azure.

Чтобы создать приложение, использующее интегрированные проверка подлинности Windows, выберите шаблон "Приложение интрасети" в мастере проектов MVC 4. Этот шаблон проекта помещает следующий параметр в файл Web.config:

<system.web>
    <authentication mode="Windows" />
</system.web>

На стороне клиента интегрированная проверка подлинности Windows работает с любым браузером, поддерживающим схему проверки подлинности Negotiate, которая включает большинство основных браузеров. Для клиентских приложений .NET класс HttpClient поддерживает проверка подлинности Windows:

HttpClientHandler handler = new HttpClientHandler()
{
    UseDefaultCredentials = true
};

HttpClient client = new HttpClient(handler);

проверка подлинности Windows уязвима для атак с подделкой межсайтовых запросов (CSRF). См. статью Предотвращение атак с подделкой межсайтовых запросов (CSRF).