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

Структура RPC_HTTP_TRANSPORT_CREDENTIALS определяет дополнительные учетные данные для проверки подлинности на прокси-сервере RPC при использовании RPC/HTTP.

Синтаксис

typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_A {
  SEC_WINNT_AUTH_IDENTITY_A *TransportCredentials;
  unsigned long             Flags;
  unsigned long             AuthenticationTarget;
  unsigned long             NumberOfAuthnSchemes;
  unsigned long             *AuthnSchemes;
  unsigned char             *ServerCertificateSubject;
} RPC_HTTP_TRANSPORT_CREDENTIALS_A, *PRPC_HTTP_TRANSPORT_CREDENTIALS_A;

Члены

TransportCredentials

Указатель на структуру SEC_WINNT_AUTH_IDENTITY , содержащую имя пользователя, домен и пароль пользователя.

Flags

Набор флагов, которые можно объединить с побитовой оператором OR.

Значение Значение
RPC_C_HTTP_FLAG_USE_SSL
Указывает RPC использовать SSL для связи с прокси-сервером RPC.
RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME
Если этот параметр задан, RPC выбирает первую схему в массиве AuthnSchemes и пытается пройти проверку подлинности на прокси-сервере RPC. Если прокси-сервер RPC не поддерживает выбранную схему проверки подлинности, вызов завершится ошибкой. Если этот параметр не задан, клиент RPC запрашивает у прокси-сервера RPC поддерживаемые схемы проверки подлинности и выбирает одну из них.

AuthenticationTarget

Указывает целевой объект проверки подлинности.

Должно быть задано одно или оба из следующих значений:

Значение Значение
RPC_C_HTTP_AUTHN_TARGET_SERVER
Выполните проверку подлинности на прокси-сервере RPC, который является HTTP-сервером с точки зрения HTTP. Это наиболее распространенное значение.
RPC_C_HTTP_AUTHN_TARGET_PROXY
Проверка подлинности на прокси-сервере HTTP. Это значение встречается редко.

NumberOfAuthnSchemes

Количество элементов в массиве AuthnScheme .

AuthnSchemes

ServerCertificateSubject

Содержит необязательную строку с ожидаемым именем субъекта-сервера. Имя субъекта имеет тот же формат, что и имя, созданное для RpcCertGeneratePrincipalName (дополнительные сведения см. в разделе Имена субъектов ). Этот элемент используется только при использовании SSL. В таких случаях сертификат сервера проверяется на соответствие созданному имени субъекта. Если они не совпадают, возвращается ошибка. Этот член позволяет клиентам проходить проверку подлинности прокси-сервера RPC.

Комментарии

Если член TransportCredentials имеет значение NULL , а схема проверки подлинности — NTLM, используются учетные данные текущего пользователя, выполнившего вход. Чтобы избежать предоставления учетных данных пользователя в сети через слабый хэш LM, учетные данные входа пользователя используются только в том случае, если выполняются одно или оба из следующих условий:

  • Вызывающий запрос на использование SSL и член ServerCertificateSubject . Этот сценарий гарантирует защиту учетных данных как при передаче, так и в конечном месте назначения, даже если используется слабый хэш.
  • Для ключа lncompatibilitylevel задано значение 2 или выше. Это приводит к тому, что поставщик безопасности NTLM выдает или реагирует только на сильный хэш NT, а не на слабый хэш LM. Кроме того, клиентам рекомендуется использовать уровень 3 или выше, который будет пытаться использовать NTLMv2.
Если используется версия Юникода функции RpcBindingSetAuthInfoEx , необходимо также указать версии Юникода RPC_HTTP_TRANSPORT_CREDENTIALS и SEC_WINNT_AUTH_IDENTITY структур, а член Flags в TransportCredentials должен иметь значение SEC_WINNT_AUTH_IDENTITY_UNICODE. Если используется версия ANSI функции RpcBindingSetAuthInfoEx , необходимо указать версии ANSI RPC_HTTP_TRANSPORT_CREDENTIALS и SEC_WINNT_AUTH_IDENTITY структур, а для элемента Flags в TransportCredentials должно быть задано значение SEC_WINNT_AUTH_IDENTITY_ANSI.

Требования

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

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

Имена субъектов

RPC_HTTP_TRANSPORT_CREDENTIALS_V2

RPC_HTTP_TRANSPORT_CREDENTIALS_V3

RPC_SECURITY_QOS

RPC_SECURITY_QOS_V2

RPC_SECURITY_QOS_V3

Удаленные вызовы процедур с помощью RPC через HTTP

RpcBindingSetAuthInfoEx

RpcCertGeneratePrincipalName

SEC_WINNT_AUTH_IDENTITY