SaslAcceptSecurityContext, fonction (sspi.h)
La fonction SaslAcceptSecurityContext encapsule un appel standard à la fonction AcceptSecurityContext (General) de l’interface du fournisseur de support de sécurité et inclut la création de cookies serveur SASL.
Syntaxe
SECURITY_STATUS SEC_ENTRY SaslAcceptSecurityContext(
[in] PCredHandle phCredential,
[in, optional] PCtxtHandle phContext,
[in] PSecBufferDesc pInput,
[in] unsigned long fContextReq,
[in] unsigned long TargetDataRep,
[out] PCtxtHandle phNewContext,
[in, out] PSecBufferDesc pOutput,
[out] unsigned long *pfContextAttr,
[out, optional] PTimeStamp ptsExpiry
);
Paramètres
[in] phCredential
Handle pour les informations d’identification du serveur. Le serveur appelle la fonction AcquireCredentialsHandle avec l’indicateur INBOUND défini pour récupérer ce handle.
[in, optional] phContext
Pointeur vers une structure CtxtHandle . Lors du premier appel à AcceptSecurityContext (Général), ce pointeur a la valeur NULL. Lors des appels suivants, phContext est le handle du contexte partiellement formé qui a été retourné dans le paramètre phNewContext par le premier appel.
[in] pInput
Pointeur vers une structure SecBufferDesc générée par un appel client à la fonction InitializeSecurityContext (Général) qui contient le descripteur de mémoire tampon d’entrée.
SASL nécessite une mémoire tampon unique de type SECBUFFER_TOKEN. La mémoire tampon est vide pour le premier appel à la fonction AcceptSecurityContext (Général) et contient la réponse de défi reçue du client pour le deuxième appel.
[in] fContextReq
Indicateurs de bits qui spécifient les attributs requis par le serveur pour établir le contexte. Les indicateurs de bits peuvent être combinés à l’aide d’opérations or au niveau du bit. Le tableau suivant répertorie les valeurs possibles.
[in] TargetDataRep
Indique la représentation des données, telle que l’ordre des octets, sur la cible. Cette valeur peut être SECURITY_NATIVE_DREP ou SECURITY_NETWORK_DREP.
[out] phNewContext
Pointeur vers une structure CtxtHandle . Lors du premier appel à AcceptSecurityContext (Général), ce pointeur reçoit le nouveau handle de contexte. Lors des appels suivants, phNewContext peut être identique au handle spécifié dans le paramètre phContext .
[in, out] pOutput
Pointeur vers une structure SecBufferDesc qui contient le descripteur de mémoire tampon de sortie. Cette mémoire tampon est envoyée au client pour entrée dans des appels supplémentaires à InitializeSecurityContext (Général). Une mémoire tampon de sortie peut être générée même si la fonction retourne SEC_E_OK. Toute mémoire tampon générée doit être renvoyée à l’application cliente.
[out] pfContextAttr
Pointeur vers une variable qui reçoit un ensemble d’indicateurs de bits indiquant les attributs du contexte établi. Pour obtenir une description des différents attributs, consultez Configuration requise du contexte. Les indicateurs utilisés pour ce paramètre sont précédés de ASC_RET, comme ASC_RET_DELEGATE.
Ne case activée pas pour les attributs liés à la sécurité tant que l’appel de fonction final n’est pas retourné. Les indicateurs d’attribut non liés à la sécurité, tels que l’indicateur ASC_RET_ALLOCATED_MEMORY, peuvent être vérifiés avant le retour final.
[out, optional] ptsExpiry
Pointeur vers une structure TimeStamp qui reçoit l’heure d’expiration du contexte. Il est recommandé que le package de sécurité retourne toujours cette valeur en heure locale.
Valeur retournée
Si l’appel est terminé avec succès, cette fonction retourne SEC_E_OK. Le tableau suivant présente certaines valeurs de retour d’échec possibles.
Code de retour | Description |
---|---|
|
Le traitement authz n’est pas autorisé. |
|
La mémoire disponible est insuffisante pour terminer la demande. |
|
Aucune mémoire tampon de jeton ne se trouve dans le paramètre pOutput , ou le message n’a pas pu être déchiffré. |
Remarques
L’appel final de la fonction AcceptSecurityContext (Général) qui retourne SEC_E_OK est identifié. Si un jeton de retour est produit, le traitement SASL est suspendu pour un aller-retour vers le client afin de permettre le traitement du jeton final. Une fois l’échange terminé, SEC_E_CONTINUE_NEEDED est retourné à l’application avec un cookie serveur SASL supplémentaire chiffré avec des fonctions de message SSPI. Le cookie de serveur initial indique si l’INTÉGRITÉ et la CONFIDENTIALITÉ sont prises en charge. Ce cookie serveur initial est traité par le client, et le client retourne un cookie client pour indiquer les services que le client demande. Le cookie client est ensuite déchiffré par le serveur et les services finaux sont déterminés pour le trafic de message suivant.
Configuration requise
Client minimal pris en charge | Aucun pris en charge |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | sspi.h (include Security.h) |
Bibliothèque | Secur32.lib |
DLL | Secur32.dll |
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour