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


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

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

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

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

Уровень олицетворения Описание

None

Серверное приложение не пытается олицетворить клиент.

Anonymous

Серверное приложение может выполнять проверки доступа с использованием учетных данных клиента, но не получает никакой информации об идентификации клиента. Использовать этот уровень олицетворения имеет смысл только при обмене данными на компьютере, например по именованным каналам. Если уровень Anonymous используется при удаленном подключении, он повышается до уровня олицетворения "Identify".

Identify

Серверное приложение знает идентификацию клиента и может выполнить проверку доступа с использованием учетных данных клиента, но не может олицетворить клиент. Уровень "Identify" — это уровень олицетворения по умолчанию, используемый с учетными данными SSPI в WCF, пока поставщик маркеров не укажет другой уровень олицетворения.

Impersonate

Серверное приложение может получить доступ к ресурсам на компьютере-сервере в качестве клиента помимо выполнения проверок доступа. Серверное приложение не может получить доступ к ресурсам на удаленных компьютерах, используя идентификацию клиента, поскольку олицетворяемый маркер не имеет сетевых учетных данных.

Delegate

Уровень олицетворения "Delegate" предоставляет те же возможности, что уровень Impersonate, а также позволяет серверному приложению получить доступ к ресурсам на удаленных компьютерах с использованием идентификации клиента и передавать эту идентификацию другим приложениям.

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

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

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

Проблемы соответствия транспорта и олицетворения

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

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

К транспорту именованных каналов применяются следующие положения.

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

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

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

Транспорт HTTP

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

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

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

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

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

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

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

См. также

Задачи

Как олицетворять клиент в рамках службы

Основные понятия

Делегирование и олицетворение с использованием WCF
Основные сведения о проверке подлинности HTTP

Другие ресурсы

Авторизация