Основные сведения о проверке подлинности HTTP
Проверка подлинности — это процесс проверки наличия у клиента права доступа к ресурсу. Протокол HTTP поддерживает проверку подлинности как средство согласования доступа к защищенному ресурсу.
Исходный запрос от клиента как правило является анонимными и не содержит информацию для проверки подлинности. Приложения сервера HTTP могут отклонить анонимный запрос, если требуется проверка подлинности. Серверное приложение посылает заголовки WWW-Authentication для обозначения поддерживаемых схем проверки подлинности. Этот документ описывает несколько схем проверки подлинности для протокола HTTP и описывает их реализацию в Windows Communication Foundation (WCF).
Схемы проверки подлинности HTTP
Сервер может задать несколько доступных схем проверки подлинности для клиента. В следующей таблице описывается несколько схем проверки подлинности, обычно используемых в приложениях Windows.
Схема проверки подлинности | Описание |
---|---|
Anonymous |
Анонимный запрос не содержит информацию для проверки подлинности. Это эквивалентно предоставлению доступа к ресурсу без ограничений. |
Basic |
Обычная проверка подлинности заключается в передаче строки в кодировке Base64, которая содержит имя пользователя и пароль для клиента. Base64 не является формой шифрования, ее следует рассматривать как передачу пароля и имени пользователя открытым текстом. Если требуется защита ресурса, настоятельно рекомендуется использовать схему проверку подлинности, отличную от обычной. |
Digest |
Дайджест-проверка подлинности — это схема запроса-ответа, предназначенная для замены обычной проверки подлинности. Сервер посылает строку случайных данных клиенту, называемую специальным словом, в качестве запроса. Клиент отвечает с хэшем, который содержит помимо дополнительной информации имя пользователя, пароль и специальное слово. Хэширование данных и сложность этого обмена усложняют кражу и повторное использование учетных данных пользователя при использовании этой схемы проверки подлинности. Дайджест-проверка подлинности требует использования учетных записей домена Windows. Область дайджест-проверки — это имя домена Windows. Поэтому нельзя использовать дайджест-проверку подлинности на сервере под управлением операционной системы, которая не поддерживает домены Windows (например Windows XP Home Edition). И наоборот, если клиент запущен под управлением операционной системы, которая не поддерживает домены Windows, учетная запись домена должна быть явно задана при проверке подлинности. |
NTLM |
Проверка подлинности NTLM (NT LAN Manager) — это схема запроса-ответа, которая является более безопасным вариантом дайджест-проверки подлинности. NTLM использует учетные данные Windows для преобразования данных вызова вместо передачи незашифрованных имени пользователя и пароля. Проверка подлинности NTLM требует множественного обмена между клиентом и сервером. Сервер и любой промежуточный прокси-сервер должны поддерживать постоянные соединения для успешного завершения проверки подлинности. |
Negotiate |
Проверка подлинности Negotiate, в зависимости от доступности, автоматически выбирает протокол Kerberos или проверку подлинности NTLM. Если доступен, используется протокол Kerberos, в противном случае предпринимается попытка использования протокола NTLM. Проверка подлинности Kerberos обладает существенными преимуществами перед NTLM. Проверка подлинности Kerberos быстрее NTLM и позволяет использовать взаимную проверку подлинности и делегирование учетных данных удаленным компьютерам. |
Passport |
Базовая служба HTTP Windows включает проверку подлинности с использованием федеративных протоколов. Тем не менее, стандартный транспорт HTTP в WCF не поддерживает схемы федеративной проверки подлинности, например Microsoft Passport. Поддержка этой функции в данный момент доступна посредством безопасности сообщения. Дополнительные сведения см. в разделе Федерация и выданные маркеры. |
Выбор схемы проверки подлинности
При выборе потенциальной схемы проверки подлинности для HTTP-сервера необходимо учитывать несколько моментов.
Рассмотрите, требуется ли защита ресурса. Использование проверки подлинности HTTP требует передачи большего объема данных и может ограничить взаимодействие с клиентами. Можно разрешить анонимный доступ к ресурсу, не требующему защиты.
Если требуется защита ресурса, проанализируйте, какая схема проверки подлинности обеспечит требуемый уровень безопасности. Самая слабая стандартная схема проверки подлинности — обычная проверка подлинности. Обычная проверка подлинности не защищает учетные данные пользователя. Самая стойкая стандартная схема проверка подлинности — проверка подлинности Negotiate, реализованная в протоколе Kerberos.
Сервер не должен (в заголовках WWW-Authentication) предоставлять любую схему, которая не готова принять или обеспечить достаточную защиту безопасного ресурса. Клиент свободен в выборе любой схемы проверки подлинности, предоставляемой сервером. Некоторые клиенты выбирают по умолчанию слабую схему проверки подлинности или первую схему проверки подлинности в списке сервера.
См. также
Основные понятия
Общие сведения о безопасности транспорта
Использование олицетворения при обеспечении безопасности транспорта
Делегирование и олицетворение с использованием WCF