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


структура RPC_BINDING_HANDLE_SECURITY_V1_A (rpcdce.h)

Структура RPC_BINDING_HANDLE_SECURITY_V1 содержит основные параметры безопасности, с помощью которых создается дескриптор привязки RPC.

Синтаксис

typedef struct _RPC_BINDING_HANDLE_SECURITY_V1_A {
  unsigned long             Version;
  unsigned char             *ServerPrincName;
  unsigned long             AuthnLevel;
  unsigned long             AuthnSvc;
  SEC_WINNT_AUTH_IDENTITY_A *AuthIdentity;
  RPC_SECURITY_QOS          *SecurityQos;
} RPC_BINDING_HANDLE_SECURITY_V1_A, *PRPC_BINDING_HANDLE_SECURITY_V1_A;

Члены

Version

Версия этой структуры. Для RPC_BINDING_HANDLE_SECURITY_V1 это значение должно быть равным 1.

ServerPrincName

Указатель на строку, содержащую имя участника сервера, на которое ссылается дескриптор привязки. Содержимое имени и его синтаксис определяются используемой службой проверки подлинности.

AuthnLevel

Уровень проверки подлинности для удаленных вызовов процедур, выполненных с помощью этого дескриптора привязки. Список уровней проверки подлинности, поддерживаемых RPC, см. в разделе Константы уровня проверки подлинности.

Если для AuthnSvc задано значение RPC_C_AUTHN_NONE, для этого элемента также должно быть задано значение RPC_C_AUTHN_NONE.

AuthnSvc

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

Укажите RPC_C_AUTHN_NONE, чтобы отключить проверку подлинности для удаленных вызовов процедур, выполненных с помощью дескриптора привязки.

Если указано RPC_C_AUTHN_DEFAULT, библиотека времени выполнения RPC использует службу проверки подлинности RPC_C_AUTHN_WINNT для удаленных вызовов процедур, выполняемых с помощью дескриптора привязки.

Если для AuthnLevel задано значение RPC_C_AUTHN_NONE, для этого элемента также должно быть задано значение RPC_C_AUTHN_NONE.

AuthIdentity

SEC_WINNT_AUTH_IDENTITY структура, содержащая учетные данные для проверки подлинности и авторизации клиента, соответствующие выбранной службе проверки подлинности и авторизации.

SecurityQos

RPC_SECURITY_QOS структуры, содержащей параметры качества обслуживания безопасности для дескриптора привязки.

Примечание Список служб проверки подлинности, поддерживаемых RPC, см. в разделе Authentication-Service Constants.
 

Комментарии

Если эта структура не передается в RpcBindingCreate , то есть если параметр SecurityrpcBindingCreate имеет значение NULL , то предполагается следующее поведение безопасности по умолчанию:

  • Для последовательности протокола ncalrpc (локальный RPC) RPC будет использовать безопасность на уровне транспорта. Это означает, что RPC будет использовать механизмы безопасности, предлагаемые ядром Windows для обеспечения безопасности, и RPC не будет проверять подлинность сервера, так как он подключается с использованием текущего удостоверения потока. В этом случае отслеживание удостоверений является статическим, тип олицетворения — "Олицетворение", а уровень проверки подлинности — "Конфиденциальность".
  • Для ncacn_np последовательности протоколов RPC также будет использовать безопасность на уровне транспорта. Если вызов является удаленным, RPC использует механизмы безопасности, предоставляемые перенаправителем файловой системы Windows, и взаимная проверка подлинности отсутствует. В этом случае удостоверение — это удостоверение текущего потока, состояние отслеживания удостоверений — статическое, тип олицетворения — «Олицетворение», а уровень проверки подлинности определяется политиками удаленного компьютера.

    Если вызов является локальным, RPC использует механизмы безопасности, предоставляемые файловой системой именованного канала (NPFS), а также не существует взаимной проверки подлинности. В этом случае удостоверением является текущее удостоверение потока или любое удостоверение, установленное с помощью команды net use для сервера. Состояние отслеживания удостоверений является динамическим, для типа олицетворения задано значение "Олицетворение", а для уровня проверки подлинности — значение "Конфиденциальность".

  • Для последовательностей протоколов ncacn_ip_tcp, ncacn_ip_udp и ncacn_http безопасность не используется, если для параметра Безопасность задано значение NULL. Сервер не будет выполнять олицетворение, и все данные будут отправляться в виде ясного текста. Чтобы обеспечить максимальную защиту данных, приложение должно всегда предоставлять данные безопасности.

В следующей таблице перечислены параметры безопасности по умолчанию для различных последовательностей протоколов, если параметр SecurityrpcBindingCreate имеет значение NULL.

Параметры безопасности по умолчанию ncalrpc локальная ncacn_np удаленное ncacn_np ncacn_ip_tcp, ncacn_ip_udp и ncacn_http
Механизм безопасности Ядро Windows NPFS Перенаправитель файловой системы None
Уровень проверки подлинности Конфиденциальность Конфиденциальность Зависимость от политики сервера None
Взаимная проверка подлинности? Нет Нет Нет Нет
Тип олицетворения Impersonate Impersonate Impersonate Н/Д
Тип отслеживания удостоверений Статические Динамический Статические Н/Д
Действует только? Да Нет Н/Д Н/Д
Идентификатор вызова Текущий поток Текущий поток Параметры текущего потока или "net use" Н/Д
 
Примечание Если вы создаете дескриптор привязки путем вызова API RpcBindingFromStringBinding , отслеживание удостоверений по умолчанию для ncalrpc при отсутствии определенных параметров безопасности будет динамическим.

При создании дескриптора быстрой привязки путем вызова API RpcBindingCreate отслеживание удостоверений по умолчанию для ncalrpc при отсутствии определенных параметров безопасности будет статическим.

При переключении между ними в приложении следует учитывать различия в этих двух API.

После создания дескриптора привязки можно использовать API RpcBindingSetAuthInfo и RpcBindingSetAuthInfoEx для изменения параметров набора дескрипторов привязки с этой структурой.

 

Требования

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

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

RPC_BINDING_HANDLE

RpcBindingBindd

RpcBindingCreate