estructura HTTP_REQUEST_AUTH_INFO (http.h)
La estructura de HTTP_REQUEST_AUTH_INFO contiene el estado de autenticación de la solicitud con un identificador para el token de cliente que el proceso receptor puede usar para suplantar al cliente autenticado.
Esta estructura se encuentra en la estructura HTTP_REQUEST_INFO .
Sintaxis
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;
Miembros
AuthStatus
Miembro de la enumeración HTTP_AUTH_STATUS que indica el estado de autenticación final de la solicitud.
Si el estado de autenticación no es HttpAuthStatusSuccess, las aplicaciones deben ignorar los miembros de esta estructura, excepto AuthStatus, SecStatus y AuthType.
SecStatus
Valor de SECURITY_STATUS que indica el estado de error de seguridad cuando el miembro AuthStatus es HttpAuthStatusFailure.
Flags
Marcas de autenticación que indican los siguientes atributos de autenticación:
Atributo | Significado |
---|---|
|
El token proporcionado es para NTLM y se basa en una credencial almacenada en caché de una conexión Keep Alive (KA). |
AuthType
Miembro de la enumeración HTTP_REQUEST_AUTH_TYPE que indica el esquema de autenticación intentado o establecido para la solicitud.
AccessToken
Identificador del token de cliente que el proceso de recepción puede usar para suplantar al cliente autenticado.
El identificador del token debe cerrarse llamando a CloseHandle cuando ya no sea necesario. Este token solo es válido durante la vigencia de la solicitud. Las aplicaciones pueden volver a generar el desafío 401 inicial para volver a autenticarse cuando expire el token.
ContextAttributes
Atributos de contexto de cliente para el token de acceso.
PackedContextLength
Longitud, en bytes, de PackedContext.
PackedContextType
Tipo de contexto en el miembro PackedContext .
PackedContext
Contexto de seguridad del tipo de autenticación.
Las aplicaciones pueden consultar los atributos del contexto empaquetado mediante una llamada a la API QueryContextAttributes de SSPI. Sin embargo, las aplicaciones deben adquirir un identificador de credenciales para el paquete de seguridad para el AuthType indicado.
La aplicación debe llamar a la API FreeContextBuffer de SSPI para liberar el contexto serializado cuando ya no sea necesario.
MutualAuthDataLength
Longitud, en bytes, del miembro pMutualAuthData .
pMutualAuthData
Los datos de autenticación mutua codificados en Base64 usados en el encabezado WWW-Authenticate.
PackageNameLength
pPackageName
Comentarios
A partir de http versión 2.0, la estructura de HTTP_REQUEST contiene una estructura de HTTP_REQUEST_INFO . El miembro pVoid de la estructura HTTP_REQUEST_INFO apunta al HTTP_REQUEST_AUTH_INFO cuando el tipo de información de solicitud es HttpRequestInfoTypeAuth.
Cuando la aplicación recibe una solicitud con esta estructura y la solicitud no se ha autenticado, puede enviar el desafío 401 inicial con el conjunto deseado de encabezados de WWW-Authenticate en la estructura HTTP_MULTIPLE_KNOWN_HEADERS . Cuando la API del servidor HTTP completa el protocolo de enlace de autenticación, rellena la estructura de HTTP_REQUEST_AUTH_INFO y la pasa a la aplicación de nuevo con la solicitud. La API de servidor HTTP proporciona el identificador del token de acceso que representa la identidad de cliente en esta estructura.
Atributos de contexto
El miembro ContextAttributes se proporciona para esquemas basados en SSPI. Por ejemplo, las aplicaciones SSPI pueden determinar si se establece ASC_RET_MUTUAL_AUTH para una sesión autenticada mutuamente.
La API del servidor HTTP no proporciona la hora de expiración del contexto en el miembro PackedContext . Las aplicaciones pueden requerir la hora de expiración en circunstancias específicas, por ejemplo, cuando se habilita el almacenamiento en caché de credenciales NTLM y la aplicación consulta la hora de expiración de un contexto almacenado en caché. Si la aplicación de servidor requiere la hora de expiración del contexto de cliente subyacente asociado al token de acceso, puede recibir el contexto empaquetado y llamar a QueryContextAttributes con el SECPKG_ATTR_LIFESPAN.
Datos de autenticación mutua
De forma predeterminada, la API de servidor HTTP garantiza que los datos de autenticación mutua se agreguen a la respuesta final de 200; en general, las aplicaciones de servidor no son responsables de enviar los datos de autenticación mutua.
Sin embargo, las aplicaciones pueden recibir los datos de autenticación mutua y enviarlos con la respuesta final. Cuando el miembro ReceiveMutualAuth de la estructura de HTTP_SERVER_AUTHENTICATION_INFO se establece en true, las aplicaciones reciben las credenciales del servidor para la autenticación mutua junto con la solicitud autenticada.
Los datos de autenticación mutua proporcionados en el miembro pMutualAuthData contienen el valor exacto de WWW-Authenticate encabezado sin el nombre del encabezado. Por ejemplo, pMutualAuthData apunta a "Negotiate ade02938481eca". La aplicación compila el encabezado WWW-Authenticate anexando el valor de encabezado pMutualAuthData proporcionado como un valor de encabezado de respuesta.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
Encabezado | http.h |