Перечисление EOLE_AUTHENTICATION_CAPABILITIES (objidl.h)

Задает различные возможности в CoInitializeSecurity и IClientSecurity::SetBlanket (или его вспомогательной функции CoSetProxyBlanket).

Синтаксис

typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES {
  EOAC_NONE = 0,
  EOAC_MUTUAL_AUTH = 0x1,
  EOAC_STATIC_CLOAKING = 0x20,
  EOAC_DYNAMIC_CLOAKING = 0x40,
  EOAC_ANY_AUTHORITY = 0x80,
  EOAC_MAKE_FULLSIC = 0x100,
  EOAC_DEFAULT = 0x800,
  EOAC_SECURE_REFS = 0x2,
  EOAC_ACCESS_CONTROL = 0x4,
  EOAC_APPID = 0x8,
  EOAC_DYNAMIC = 0x10,
  EOAC_REQUIRE_FULLSIC = 0x200,
  EOAC_AUTO_IMPERSONATE = 0x400,
  EOAC_DISABLE_AAA = 0x1000,
  EOAC_NO_CUSTOM_MARSHAL = 0x2000,
  EOAC_RESERVED1 = 0x4000
} EOLE_AUTHENTICATION_CAPABILITIES;

Константы

 
EOAC_NONE
Значение: 0
Указывает, что флаги возможностей не заданы.
EOAC_MUTUAL_AUTH
Значение: 0x1
Если этот флаг указан, он будет игнорироваться. Поддержка взаимной проверки подлинности автоматически обеспечивается некоторыми службами проверки подлинности. Дополнительные сведения см. в разделе COM и пакеты безопасности .
EOAC_STATIC_CLOAKING
Значение: 0x20
Задает статическое маскирование. Если этот флаг установлен, DCOM использует маркер потока (при его наличии) при определении удостоверения клиента. Однако удостоверение клиента определяется при первом вызове на каждом прокси-сервере (если не вызывается SetBlanket ) и при каждом вызове CoSetProxyBlanket на прокси-сервере. Дополнительные сведения о статической маскировке см. в разделе Cloaking.


CoInitializeSecurity и IClientSecurity::SetBlanket возвращают ошибки, если установлены оба флага маскировки или если один из флагов установлен, если Schannel является службой проверки подлинности.
EOAC_DYNAMIC_CLOAKING
Значение: 0x40
Задает динамическое маскирование. Если этот флаг установлен, DCOM использует маркер потока (при его наличии) при определении удостоверения клиента. При каждом вызове прокси-сервера текущий токен потока проверяется, изменилось ли удостоверение клиента (что привело к дополнительным затратам на производительность), и клиент снова проходит проверку подлинности только при необходимости. Динамическое маскирование может быть установлено только клиентами. Дополнительные сведения о динамическом маскировке см. в разделе Cloaking.


CoInitializeSecurity и IClientSecurity::SetBlanket возвращают ошибки, если установлены оба флага маскировки или если один из флагов установлен, если Schannel является службой проверки подлинности.
EOAC_ANY_AUTHORITY
Значение: 0x80
Этот флаг устарел.
EOAC_MAKE_FULLSIC
Значение: 0x100
Вызывает отправку DCOM имен субъектов сервера Schannel в полном формате клиентам в рамках согласования безопасности по умолчанию. Имя извлекается из сертификата сервера. Дополнительные сведения о полной форме см. в разделе Имена субъектов.
EOAC_DEFAULT
Значение: 0x800
Указывает DCOM использовать допустимые возможности из вызова CoInitializeSecurity. Если метод CoInitializeSecurity не был вызван, для флага возможностей будет использоваться EOAC_NONE. Этот флаг может быть установлен только клиентами при вызове IClientSecurity::SetBlanket или CoSetProxyBlanket.
EOAC_SECURE_REFS
Значение: 0x2
Проверяет подлинность распределенных вызовов счетчика ссылок, чтобы предотвратить освобождение объектов, которые все еще используются злоумышленниками. Если этот флаг установлен, что может быть выполнено только при вызове CoInitializeSecurity клиентом, уровень проверки подлинности (в dwAuthnLevel) не может быть установлен равным none.

Сервер всегда проверяет подлинность вызовов выпуска. Установка этого флага не позволяет клиенту, прошедшему проверку подлинности, освободить объекты другого клиента, прошедшего проверку подлинности. Рекомендуется, чтобы клиенты всегда устанавливали этот флаг, хотя производительность влияет из-за накладных расходов, связанных с дополнительной безопасностью.
EOAC_ACCESS_CONTROL
Значение: 0x4
Указывает, что параметр pSecDescдля CoInitializeSecurity является указателем на интерфейс IAccessControl в объекте управления доступом. Когда DCOM выполняет проверки безопасности, он вызывает IAccessControl::IsAccessAllowed. Этот флаг устанавливается только сервером.


CoInitializeSecurity возвращает ошибку, если установлены флаги EOAC_APPID и EOAC_ACCESS_CONTROL.
EOAC_APPID
Значение: 0x8
Указывает, что параметр pSecDescдля CoInitializeSecurity является указателем на GUID, который является AppID. Функция CoInitializeSecurity ищет AppID в реестре и считывает оттуда параметры безопасности. Если этот флаг установлен, все остальные параметры CoInitializeSecurity игнорируются и должны иметь нулевое значение. Только сервер может установить этот флаг. Дополнительные сведения об этом флаге возможности см. в разделе Примечания ниже.


CoInitializeSecurity возвращает ошибку, если установлены флаги EOAC_APPID и EOAC_ACCESS_CONTROL.
EOAC_DYNAMIC
Значение: 0x10
Зарезервировано.
EOAC_REQUIRE_FULLSIC
Значение: 0x200
Вызывает сбой вызовов CoSetProxyBlanket В DCOM, где имя участника Schannel указано в любом формате, кроме fullsic. В настоящее время этот флаг предназначен только для клиентов. Дополнительные сведения о полной форме см. в разделе Имена субъектов.
EOAC_AUTO_IMPERSONATE
Значение: 0x400
Зарезервировано.
EOAC_DISABLE_AAA
Значение: 0x1000
Вызывает сбой любой активации, при которой серверный процесс запускается под удостоверением вызывающего абонента (activate-as-activateor), с E_ACCESSDENIED. Это значение, которое может быть указано только при вызове coInitializeSecurity клиентом, позволяет приложению, работающему под привилегированной учетной записью (например, LocalSystem), предотвратить использование его удостоверения для запуска ненадежных компонентов.

Вызов активации, использующий CLSCTX_ENABLE_AAA перечисления CLSCTX , позволит активировать активацию как активатор для этого вызова.
EOAC_NO_CUSTOM_MARSHAL
Значение: 0x2000
Указание этого флага помогает защитить безопасность сервера при использовании DCOM или COM+. Это снижает вероятность выполнения произвольных библиотек DLL, так как позволяет маршалировать только идентификаторы CLSID, реализованные в Ole32.dll, ComAdmin.dll, ComSvcs.dll или Es.dll либо реализующие идентификатор категории CATID_MARSHALER. Любая служба, которая имеет решающее значение для работы системы, должна устанавливать этот флаг.
EOAC_RESERVED1
Значение: 0x4000

Комментарии

Если установлен флаг EOAC_APPID, CoInitializeSecurity ищет уровень проверки подлинности в appID. Если уровень проверки подлинности не найден, выполняется поиск уровня проверки подлинности по умолчанию. Если уровень проверки подлинности по умолчанию не найден, создается уровень проверки подлинности подключения по умолчанию. Если уровень проверки подлинности не RPC_C_AUTHN_LEVEL_NONE, CoInitializeSecurity ищет значение разрешения на доступ в appID. Если он не найден, он ищет значение разрешения на доступ по умолчанию. Если он не найден, он создает разрешение на доступ по умолчанию. Все остальные параметры безопасности определяются так же, как и для устаревшего приложения.

Если appID имеет значение NULL, CoInitializeSecurity ищет имя .exe приложения в реестре и использует хранящийся в нем идентификатор AppID. Если идентификатор приложения не существует, используются значения по умолчанию для компьютера.

Метод IClientSecurity::SetBlanket и функция CoSetProxyBlanket возвращают ошибку , если в параметре capabilities задан любой из следующих флагов: EOAC_SECURE_REFS, EOAC_ACCESS_CONTROL, EOAC_APPID, EOAC_DYNAMIC, EOAC_REQUIRE_FULLSIC, EOAC_DISABLE_AAA или EOAC_NO_CUSTOM_MARSHAL.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Верхняя часть objidl.h (включая Objidl.h)

См. также раздел

CoInitializeSecurity

CoSetProxyBlanket

IAccessControl

IClientSecurity::SetBlanket