структура HTTP_REQUEST_AUTH_INFO (http.h)
Структура HTTP_REQUEST_AUTH_INFO содержит состояние проверки подлинности запроса с дескриптором маркера клиента, который принимающий процесс может использовать для олицетворения клиента, прошедшего проверку подлинности.
Эта структура содержится в структуре HTTP_REQUEST_INFO .
Синтаксис
typedef struct _HTTP_REQUEST_AUTH_INFO {
HTTP_AUTH_STATUS AuthStatus;
SECURITY_STATUS SecStatus;
ULONG Flags;
HTTP_REQUEST_AUTH_TYPE AuthType;
HANDLE AccessToken;
ULONG ContextAttributes;
ULONG PackedContextLength;
ULONG PackedContextType;
PVOID PackedContext;
ULONG MutualAuthDataLength;
PCHAR pMutualAuthData;
USHORT PackageNameLength;
PWSTR pPackageName;
} HTTP_REQUEST_AUTH_INFO, *PHTTP_REQUEST_AUTH_INFO;
Члены
AuthStatus
Член перечисления HTTP_AUTH_STATUS , указывающий окончательное состояние проверки подлинности запроса.
Если состояние проверки подлинности не httpAuthStatusSuccess, приложения должны игнорировать элементы этой структуры, кроме AuthStatus, SecStatus и AuthType.
SecStatus
Значение SECURITY_STATUS , указывающее состояние сбоя системы безопасности, если элементОм AuthStatus является HttpAuthStatusFailure.
Flags
Флаги проверки подлинности, указывающие следующие атрибуты проверки подлинности:
attribute | Значение |
---|---|
|
Предоставленный маркер предназначен для NTLM и основан на кэшированных учетных данных подключения Keep Alive (KA). |
AuthType
Член перечисления HTTP_REQUEST_AUTH_TYPE , который указывает, что схема проверки подлинности была предпринята или установлена для запроса.
AccessToken
Дескриптор маркера клиента, который принимающий процесс может использовать для олицетворения клиента, прошедшего проверку подлинности.
Дескриптор маркера должен быть закрыт путем вызова CloseHandle , если он больше не требуется. Этот маркер действителен только в течение времени существования запроса. Приложения могут повторно создать первоначальный запрос 401 для повторной проверки подлинности по истечении срока действия маркера.
ContextAttributes
Атрибуты контекста клиента для маркера доступа.
PackedContextLength
Длина объекта PackedContext в байтах.
PackedContextType
Тип контекста в элементе PackedContext .
PackedContext
Контекст безопасности для типа проверки подлинности.
Приложения могут запрашивать атрибуты упакованного контекста, вызывая API запросов SSPI QueryContextAttributes . Однако приложения должны получить дескриптор учетных данных для пакета безопасности для указанного AuthType.
Приложение должно вызывать API-интерфейс SSPI FreeContextBuffer , чтобы освободить сериализованный контекст, когда он больше не требуется.
MutualAuthDataLength
Длина элемента pMutualAuthData в байтах.
pMutualAuthData
Данные взаимной проверки подлинности в кодировке Base64, используемые в заголовке WWW-Authenticate.
PackageNameLength
pPackageName
Комментарии
Начиная с ВЕРСИИ HTTP 2.0 структура HTTP_REQUEST содержит структуру HTTP_REQUEST_INFO . Элемент pVoid структуры HTTP_REQUEST_INFO указывает на HTTP_REQUEST_AUTH_INFO , если тип сведений о запросе — HttpRequestInfoTypeAuth.
Когда приложение получает запрос с такой структурой и запрос не прошел проверку подлинности, оно может отправить начальное задание 401 с нужным набором заголовков WWW-Authenticate в структуре HTTP_MULTIPLE_KNOWN_HEADERS . Когда API HTTP-сервера завершает подтверждение проверки подлинности, он заполняет структуру HTTP_REQUEST_AUTH_INFO и повторно передает его приложению с запросом. Дескриптор маркера доступа, представляющего удостоверение клиента, предоставляется в этой структуре API HTTP-сервера.
Атрибуты контекста
Элемент ContextAttributes предоставляется для схем на основе SSPI. Например, приложения SSPI могут определить, настроена ли ASC_RET_MUTUAL_AUTH для сеанса с взаимной проверкой подлинности.
API HTTP-сервера не предоставляет срок действия контекста в элементе PackedContext . Для приложений может потребоваться срок действия в определенных обстоятельствах, например, если включено кэширование учетных данных NTLM и приложение запрашивает время окончания срока действия для кэшированного контекста. Если серверное приложение требует истечения срока действия базового контекста клиента, связанного с маркером доступа, оно может получить упакованный контекст и вызвать QueryContextAttributes с SECPKG_ATTR_LIFESPAN.
Данные взаимной проверки подлинности
По умолчанию API HTTP-сервера обеспечивает добавление данных взаимной проверки подлинности в окончательный ответ 200. как правило, серверные приложения не несут ответственности за отправку данных взаимной проверки подлинности.
Однако приложения могут получать данные взаимной проверки подлинности и отправлять их с окончательным ответом. Если для элемента ReceiveMutualAuthструктуры HTTP_SERVER_AUTHENTICATION_INFO задано значение true, приложения получают учетные данные сервера для взаимной проверки подлинности вместе с запросом, прошедшим проверку подлинности.
Данные взаимной проверки подлинности, предоставленные в элементе pMutualAuthData , содержат точное значение заголовка WWW-Authenticate без имени заголовка. Например, pMutualAuthData указывает на "Negotiate ade02938481eca". Приложение создает заголовок WWW-Authenticate, добавляя предоставленный pMutualAuthData в качестве значения заголовка ответа.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Верхняя часть | http.h |