Переговоры по безопасности

Одеяло безопасности — это группа значений, описывающих параметры безопасности, которые применяются ко всем прокси-серверам в процессе или только к конкретному прокси-серверу интерфейса. Одеяло безопасности состоит из следующих значений:

  • Служба проверки подлинности
  • Служба авторизации
  • Имя участника
  • Уровень проверки подлинности
  • Уровень олицетворения
  • Удостоверение аутентификации
  • Возможности
  • Список управления доступом (ACL) (только серверы)

Согласование безопасности — это процесс, который COM использует для выбора параметров безопасности прокси-сервера при его создании. Этот процесс включает сравнение одеяла безопасности сервера с одеялом безопасности клиента и использование этих значений для создания соответствующего одеяла безопасности по умолчанию для прокси-сервера. В следующих абзацах объясняется, откуда приходят клиентские и серверные одеяла безопасности, а также описываются, как COM согласовывает одеяло безопасности для прокси-сервера с помощью одеяла безопасности клиента и сервера.

Клиент и сервер могут вызывать CoInitializeSecurity , чтобы указать соответствующие одеяла безопасности. Если приложение не вызывает CoInitializeSecurity явным образом, COM вызывает его неявно для приложения, используя соответствующие значения по умолчанию. Дополнительные сведения об этих значениях по умолчанию см. в разделе COM Security Defaults.

Некоторые параметры CoInitializeSecurity применяются, когда приложение является сервером, и некоторые применяются, когда приложение является клиентом. Если приложение выступает в качестве сервера, эти параметры важны: ACL, список кортежей имен службы проверки подлинности, службы авторизации или имени субъекта и уровень проверки подлинности. Вызов сервера CoInitializeSecurity, будь то неявный или явный, определяет одеяло безопасности сервера, которое остается фиксированным.

Когда приложение выступает в качестве клиента, соответствующие значения, передаваемые в CoInitializeSecurity , относятся к уровню проверки подлинности, уровню олицетворения, идентификатору проверки подлинности и возможностям. Неявный или явный вызов клиента CoInitializeSecurity указывает на одеяло безопасности, которое требует клиент.

При создании прокси-сервера COM использует значения, указанные одеялом безопасности сервера, и одеяло безопасности клиента для согласования одеяла безопасности по умолчанию, подходящего для прокси-сервера. COM выбирает службу проверки подлинности, которая работает как на клиенте, так и на сервере. Служба авторизации и имя субъекта выбираются для работы со службой проверки подлинности. Для уровня проверки подлинности COM выбирает более высокие уровни проверки подлинности, указанные клиентом и сервером. Уровень олицетворения и возможности, выбранные COM, являются теми, которые указаны клиентом. Удостоверение проверки подлинности — это удостоверение, указанное клиентом для выбранной службы проверки подлинности.

После вычисления одеяла безопасности по умолчанию его значения назначаются только что созданному прокси-серверу. Клиент может переопределить параметры безопасности прокси-сервера, вызвав IClientSecurity::SetBlanket. Значения, указанные в SetBlanket , не согласованы; они просто назначаются указанному прокси-серверу. Однако если параметры по умолчанию (например, RPC_C_IMP_LEVEL_DEFAULT) передаются в SetBlanket, COM использует ранее описанный алгоритм согласования безопасности для вычисления параметров по умолчанию.

Безопасность в COM