Поделиться через


Использование олицетворения с безопасностью транспорта

Олицетворение — это возможность серверного приложения взять на себя удостоверение клиента. Обычно службы используют олицетворение при проверке доступа к ресурсам. Серверное приложение запускается с помощью учетной записи службы, но когда сервер принимает клиентское подключение, он олицетворяет клиента, чтобы проверки доступа выполнялись с помощью учетных данных клиента. Безопасность транспорта — это механизм передачи учетных данных и защиты связи с помощью этих учетных данных. В этом разделе описывается использование безопасности транспорта в Windows Communication Foundation (WCF) с функцией олицетворения. Дополнительные сведения об олицетворении с помощью безопасности сообщений см. в разделе "Делегирование и олицетворение".

Пять уровней олицетворения

Безопасность транспорта использует пять уровней олицетворения, как описано в следующей таблице.

Уровень олицетворения Описание
Отсутствует Серверное приложение не пытается олицетворить клиента.
Анонимный Серверное приложение может выполнять проверки доступа к учетным данным клиента, но не получает никаких сведений об удостоверении клиента. Этот уровень имперсонации имеет смысл только для внутреннего взаимодействия на компьютере, например, через именованные каналы. Использование Anonymous с удаленным подключением повышает уровень олицетворения для идентификации.
Определить Серверное приложение знает удостоверение клиента и может выполнять проверку доступа к учетным данным клиента, но не может олицетворить клиента. Если поставщик токенов не предоставляет другой уровень олицетворения, то уровень олицетворения по умолчанию используется с учетными данными SSPI в WCF — это Идентификация.
Выдавать себя за Серверное приложение может получать доступ к ресурсам на серверном компьютере, выступая в роли клиента, помимо выполнения проверок доступа. Серверное приложение не может получить доступ к ресурсам на удаленных компьютерах с помощью удостоверения клиента, так как у олицетворенного маркера нет сетевых учетных данных.
Делегировать В дополнение к тем же возможностям, что и у Impersonate, уровень олицетворения делегата также позволяет серверному приложению получать доступ к ресурсам на удаленных машинах, используя удостоверение клиента, и передавать это удостоверение другим приложениям.

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

Уровни, наиболее часто используемые с безопасностью транспорта, являются Identify и Impersonate. Уровни None и Anonymous не рекомендуются для обычного использования, и многие транспорты не поддерживают использование этих уровней с аутентификацией. Уровень Delegate — это мощная функция, которая должна использоваться с осторожностью. Только доверенные серверные приложения должны быть предоставлены разрешение на делегирование учетных данных.

Использование олицетворения на уровнях Impersonate или Delegate требует, чтобы серверное приложение имело привилегию SeImpersonatePrivilege. Приложение имеет эту привилегию по умолчанию, если она выполняется в учетной записи в группе "Администраторы" или в учетной записи с идентификатором безопасности службы (сетевая служба, локальная служба или локальная система). Олицетворение не требует взаимной проверки подлинности клиента и сервера. Некоторые схемы проверки подлинности, поддерживающие олицетворение, такие как NTLM, нельзя использовать с взаимной проверкой подлинности.

Transport-Specific проблемы с подделкой личности

Выбор транспорта в WCF влияет на возможные варианты олицетворения. В этом разделе описываются проблемы, влияющие на стандартные транспорты HTTP и на именованные каналы в WCF. Пользовательские транспорты имеют собственные ограничения на поддержку олицетворения.

Транспорт именованных каналов

Следующие элементы используются с транспортом именованных каналов:

  • Транспорт именованных каналов предназначен только для локального компьютера. Транспорт именованных каналов в WCF явно запрещает подключения между компьютерами.

  • Именованные каналы нельзя использовать с уровнем олицетворения Impersonate или Delegate. Именованный канал не может применить гарантию на компьютере на этих уровнях олицетворения.

Дополнительные сведения о именованных каналах см. в разделе "Выбор транспорта".

Транспорт HTTP

Привязки, использующие транспорт HTTP (WSHttpBinding и BasicHttpBinding) поддерживают несколько схем проверки подлинности, как описано в разделе "Общие сведения о проверке подлинности HTTP". Поддерживаемый уровень олицетворения зависит от схемы проверки подлинности. Следующие элементы используются с транспортом HTTP:

  • Схема Anonymous проверки подлинности игнорирует персонификацию.

  • Схема Basic проверки подлинности поддерживает только Delegate уровень. Все более низкие уровни олицетворения обновляются.

  • Схема Digest проверки подлинности поддерживает только Impersonate уровни и Delegate уровни.

  • Схема NTLM проверки подлинности, доступная напрямую или через согласование, поддерживает только Delegate уровень на локальном компьютере.

  • Схема проверки подлинности Kerberos, которая может быть выбрана только через согласование, может использоваться с любым поддерживаемым уровнем олицетворения.

Дополнительные сведения о транспорте HTTP см. в разделе "Выбор транспорта".

См. также