HTTP_REQUEST_AUTH_INFO structure (http.h)
La structure HTTP_REQUEST_AUTH_INFO contient le status d’authentification de la demande avec un handle pour le jeton client que le processus de réception peut utiliser pour emprunter l’identité du client authentifié.
Cette structure est contenue dans la structure HTTP_REQUEST_INFO .
Syntaxe
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;
Membres
AuthStatus
Membre de l’énumération HTTP_AUTH_STATUS qui indique la status d’authentification finale de la demande.
Si le status d’authentification n’est pas HttpAuthStatusSuccess, les applications doivent ignorer les membres de cette structure, à l’exception de AuthStatus, SecStatus et AuthType.
SecStatus
Valeur SECURITY_STATUS qui indique l’échec de sécurité status lorsque le membre AuthStatus est HttpAuthStatusFailure.
Flags
Indicateurs d’authentification qui indiquent les attributs d’authentification suivants :
AuthType
Un membre de l’énumération HTTP_REQUEST_AUTH_TYPE qui indique le schéma d’authentification tenté ou établi pour la demande.
AccessToken
Handle du jeton client que le processus de réception peut utiliser pour emprunter l’identité du client authentifié.
Le handle du jeton doit être fermé en appelant CloseHandle lorsqu’il n’est plus nécessaire. Ce jeton est valide uniquement pendant la durée de vie de la demande. Les applications peuvent régénérer le défi 401 initial pour se réauthentifier à l’expiration du jeton.
ContextAttributes
Attributs de contexte client pour le jeton d’accès.
PackedContextLength
Longueur, en octets, de PackedContext.
PackedContextType
Type de contexte dans le membre PackedContext .
PackedContext
Contexte de sécurité pour le type d’authentification.
Les applications peuvent interroger les attributs du contexte packé en appelant l’API QueryContextAttributes SSPI. Toutefois, les applications doivent acquérir un handle d’informations d’identification pour le package de sécurité pour l’AuthType indiqué.
L’application doit appeler l’API SSPI FreeContextBuffer pour libérer le contexte sérialisé lorsqu’il n’est plus nécessaire.
MutualAuthDataLength
Longueur, en octets, du membre pMutualAuthData .
pMutualAuthData
Données d’authentification mutuelle encodées en Base64 utilisées dans l’en-tête WWW-Authenticate.
PackageNameLength
pPackageName
Remarques
À compter de la version HTTP 2.0, la structure HTTP_REQUEST contient une structure HTTP_REQUEST_INFO . Le membre pVoid de la structure HTTP_REQUEST_INFO pointe vers le HTTP_REQUEST_AUTH_INFO lorsque le type d’informations de requête est HttpRequestInfoTypeAuth.
Lorsque l’application reçoit une demande avec cette structure et que la demande n’a pas été authentifiée, elle peut envoyer le défi 401 initial avec l’ensemble souhaité d’en-têtes WWW-Authenticate dans la structure HTTP_MULTIPLE_KNOWN_HEADERS . Lorsque l’API du serveur HTTP termine la négociation d’authentification, elle remplit la structure HTTP_REQUEST_AUTH_INFO et la transmet à nouveau à l’application avec la requête. Le handle du jeton d’accès qui représente l’identité du client est fourni dans cette structure par l’API serveur HTTP.
Attributs de contexte
Le membre ContextAttributes est fourni pour les schémas basés sur SSPI. Par exemple, les applications SSPI peuvent déterminer si ASC_RET_MUTUAL_AUTH est défini pour une session mutuellement authentifiée.
L’API du serveur HTTP ne fournit pas le délai d’expiration du contexte dans le membre PackedContext . Les applications peuvent nécessiter le délai d’expiration dans des circonstances spécifiques, par exemple lorsque la mise en cache des informations d’identification NTLM est activée et que l’application interroge l’heure d’expiration d’un contexte mis en cache. Si l’application serveur nécessite le délai d’expiration pour le contexte client sous-jacent associé au jeton d’accès, elle peut recevoir le contexte packé et appeler QueryContextAttributes avec le SECPKG_ATTR_LIFESPAN.
Données d’authentification mutuelle
Par défaut, l’API serveur HTTP garantit que les données d’authentification mutuelle sont ajoutées à la réponse 200 finale ; en général, les applications serveur ne sont pas responsables de l’envoi des données d’authentification mutuelle.
Toutefois, les applications peuvent recevoir les données d’authentification mutuelle et les envoyer avec la réponse finale. Lorsque le membre ReceiveMutualAuth de la structure HTTP_SERVER_AUTHENTICATION_INFO a la valeur true, les applications reçoivent les informations d’identification du serveur pour l’authentification mutuelle, ainsi que la demande authentifiée.
Les données d’authentification mutuelle fournies dans le membre pMutualAuthData contiennent la valeur exacte de WWW-Authenticate'en-tête sans le nom d’en-tête. Par exemple, pMutualAuthData pointe vers « Negotiate ade02938481eca ». L’application génère l’en-tête WWW-Authenticate en ajoutant le pMutualAuthData fourni en tant que valeur d’en-tête de réponse.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau uniquement] |
En-tête | http.h |