структура RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W (rpcdce.h)
Структура RPC_HTTP_TRANSPORT_CREDENTIALS_V2 определяет дополнительные учетные данные для проверки подлинности на прокси-сервере RPC или прокси-сервере HTTP при использовании RPC/HTTP.
RPC_HTTP_TRANSPORT_CREDENTIALS_V2 расширяет RPC_HTTP_TRANSPORT_CREDENTIALS , разрешая проверку подлинности на прокси-сервере HTTP.
Синтаксис
typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W {
SEC_WINNT_AUTH_IDENTITY_W *TransportCredentials;
unsigned long Flags;
unsigned long AuthenticationTarget;
unsigned long NumberOfAuthnSchemes;
unsigned long *AuthnSchemes;
unsigned short *ServerCertificateSubject;
SEC_WINNT_AUTH_IDENTITY_W *ProxyCredentials;
unsigned long NumberOfProxyAuthnSchemes;
unsigned long *ProxyAuthnSchemes;
} RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W, *PRPC_HTTP_TRANSPORT_CREDENTIALS_V2_W;
Члены
TransportCredentials
Указатель на структуру SEC_WINNT_AUTH_IDENTITY , содержащую имя пользователя, домен и пароль пользователя.
Flags
Набор флагов, которые можно объединить с побитовой оператором OR.
AuthenticationTarget
Указывает целевой объект проверки подлинности.
Должно быть задано одно или оба из следующих значений:
NumberOfAuthnSchemes
Количество элементов в массиве AuthnScheme .
AuthnSchemes
Указатель на массив схем проверки подлинности, которые клиент готов использовать. Каждый элемент массива может содержать одну из следующих констант:
RPC_C_HTTP_AUTHN_SCHEME_BASIC
RPC_C_HTTP_AUTHN_SCHEME_NTLM
RPC_C_HTTP_AUTHN_SCHEME_PASSPORT
RPC_C_HTTP_AUTHN_SCHEME_DIGEST
RPC_C_HTTP_AUTHN_SCHEME_NEGOTIATE
RPC_C_HTTP_AUTHN_SCHEME_PASSPORT, RPC_C_HTTP_AUTHN_SCHEME_NEGOTIATE и RPC_C_HTTP_AUTHN_SCHEME_DIGEST определяются как константы, но в настоящее время не поддерживаются. Вызывающие абоненты не должны указывать их; Это приводит к ошибке RPC_S_CANNOT_SUPPORT. Каждую константу можно указать один раз. RPC не проверяет это ограничение по соображениям производительности, но указание константы несколько раз приводит к неопределенным результатам.
Алгоритм выбора фактической схемы проверки подлинности выглядит следующим образом:
Если указан RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME, выбирается первая схема проверки подлинности. Если это не поддерживается сервером, установка подключения завершается сбоем. Если RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME не указан, клиент RPC сначала пытается анонимно подключиться к прокси-серверу RPC. Если IIS возвращает запрос проверки подлинности, клиент RPC выбирает схему проверки подлинности, предпочитаемую сервером, если она также находится в массиве AuthnScheme . Если схема, предпочитаемая сервером, не находится в массиве AuthnScheme , массив AuthnScheme будет пройден от начала до конца, и если будет найдена схема, которая также поддерживается сервером, используется эта схема проверки подлинности.
ServerCertificateSubject
Содержит необязательную строку с ожидаемым именем субъекта-сервера. Имя субъекта имеет тот же формат, что и имя, созданное для RpcCertGeneratePrincipalName (дополнительные сведения см. в разделе Имена субъектов ). Этот элемент используется только при использовании SSL. В таких случаях сертификат сервера проверяется на соответствие созданному имени субъекта. Если они не совпадают, возвращается ошибка. Этот член позволяет клиентам проходить проверку подлинности прокси-сервера RPC.
ProxyCredentials
Указатель на структуру SEC_WINNT_AUTH_IDENTITY , содержащую имя пользователя, домен и пароль для пользователя при проверке подлинности на прокси-сервере HTTP. ProxyCredentials действителен , только если AuthenticationTarget содержит RPC_C_HTTP_AUTHN_TARGET_PROXY.
NumberOfProxyAuthnSchemes
Количество элементов в массиве ProxyAuthnSchemes при проверке подлинности на прокси-сервере HTTP. Аргумент NumberOfProxyAuthnSchemes действителен , только если AuthenticationTarget содержит RPC_C_HTTP_AUTHN_TARGET_PROXY.
ProxyAuthnSchemes
Указатель на массив схем проверки подлинности, которые клиент готов использовать при проверке подлинности на прокси-сервере HTTP. Каждый элемент массива может содержать одну из следующих констант. ProxyAuthnSchemes действителен , только если AuthenticationTarget содержит RPC_C_HTTP_AUTHN_TARGET_PROXY.
RPC_C_HTTP_AUTHN_SCHEME_BASIC
RPC_C_HTTP_AUTHN_SCHEME_NTLM
RPC_C_HTTP_AUTHN_SCHEME_PASSPORT
RPC_C_HTTP_AUTHN_SCHEME_DIGEST
RPC_C_HTTP_AUTHN_SCHEME_NEGOTIATE
Комментарии
Если член TransportCredentials имеет значение NULL , а схема проверки подлинности — NTLM, используются учетные данные текущего пользователя, выполнившего вход. Чтобы избежать предоставления учетных данных пользователя в сети через слабый хэш LM, учетные данные входа пользователя используются только в том случае, если выполняются одно или оба из следующих условий:
- Вызывающий запрос на использование SSL и член ServerCertificateSubject . Этот сценарий гарантирует защиту учетных данных как при передаче, так и в конечном месте назначения, даже если используется слабый хэш.
- Для ключа lncompatibilitylevel задано значение 2 или выше. Это приводит к тому, что поставщик безопасности NTLM выдает или реагирует только на сильный хэш NT, а не на слабый хэш LM. Кроме того, клиентам рекомендуется использовать уровень 3 или выше, который будет пытаться использовать NTLMv2.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Верхняя часть | rpcdce.h (включая Rpc.h) |
См. также раздел
RPC_HTTP_TRANSPORT_CREDENTIALS
RPC_HTTP_TRANSPORT_CREDENTIALS_V3