Fonction de rappel SpAcceptLsaModeContextFn (ntsecpkg.h)
Fonction de répartition du serveur utilisée pour créer un contexte de sécurité partagé par un serveur et un client.
La fonction SpAcceptLsaModeContext est appelée lorsque le serveur appelle la fonction AcceptSecurityContext (Général) de l’interface du fournisseur de support de sécurité.
Syntaxe
SpAcceptLsaModeContextFn Spacceptlsamodecontextfn;
NTSTATUS Spacceptlsamodecontextfn(
[in] LSA_SEC_HANDLE CredentialHandle,
[in] LSA_SEC_HANDLE ContextHandle,
[in] PSecBufferDesc InputBuffer,
[in] ULONG ContextRequirements,
[in] ULONG TargetDataRep,
[out] PLSA_SEC_HANDLE NewContextHandle,
[out] PSecBufferDesc OutputBuffer,
[out] PULONG ContextAttributes,
[out] PTimeStamp ExpirationTime,
[out] PBOOLEAN MappedContext,
[out] PSecBuffer ContextData
)
{...}
Paramètres
[in] CredentialHandle
Facultatif. Gérez les informations d’identification à utiliser pour le contexte.
[in] ContextHandle
facultatif. Gérez le contexte actuel.
[in] InputBuffer
Pointeur vers une structure SecBufferDesc contenant des informations du client.
[in] ContextRequirements
Indicateurs indiquant les exigences de contexte. Le tableau suivant répertorie les valeurs valides.
Valeur | Signification |
---|---|
|
Le serveur est autorisé à emprunter l’identité du client. |
|
Le client et le serveur doivent prouver leur identité. |
|
Le contexte de sécurité prend en charge la détection des paquets relus. |
|
Le contexte de sécurité prend en charge la détection des messages en désordre. |
|
Une nouvelle clé de session doit être négociée. |
|
Si le client est un utilisateur interactif, le package doit, si possible, demander à l’utilisateur les informations d’identification appropriées. |
|
La mémoire tampon d’entrée contient des informations d’identification spécifiques au package qui doivent être utilisées pour authentifier la connexion. |
|
Le package doit allouer de la mémoire. L’appelant doit finalement appeler la fonction FreeContextBuffer pour libérer de la mémoire allouée par le package de sécurité. |
|
L’appelant attend une transaction d’authentification mutuelle à trois étapes. |
|
Un canal de communication de type datagramme doit être utilisé. Pour plus d’informations, consultez Contextes de datagramme. |
|
Un canal de communication de type connexion doit être utilisé. Pour plus d’informations, consultez Contextes orientés connexion. |
|
Si le contexte échoue, générez un message de réponse d’erreur à renvoyer au client. |
|
Un canal de communication de type flux doit être utilisé. Pour plus d’informations, consultez contextes Stream. |
|
L’intégrité de la mémoire tampon peut être vérifiée ; Toutefois, les messages relus et hors séquence ne sont pas détectés. |
[in] TargetDataRep
Indicateur indiquant la représentation des données, telle que l’ordre des octets, à utiliser. Contient SECURITY_NATIVE_DREP ou SECURITY_NETWORK_DREP.
[out] NewContextHandle
Pointeur vers un LSA_SEC_HANDLE. Lors du premier appel à AcceptSecurityContext, ce pointeur reçoit le nouveau handle de contexte. Lors des appels suivants, NewContextHandle peut être identique au handle spécifié dans le paramètre ContextHandle .
[out] OutputBuffer
Pointeur vers une structure SecBufferDesc qui reçoit des informations à envoyer au client.
[out] ContextAttributes
Pointeur vers des indicateurs spécifiant les attributs de contexte pris en charge par le serveur. Pour obtenir la liste des valeurs valides, consultez le paramètre ContextRequirements .
[out] ExpirationTime
Pointeur vers un TimeStamp qui reçoit l’heure d’expiration du contexte.
[out] MappedContext
Pointeur vers une valeur booléenne. Définissez MappedContext sur TRUE si le package de sécurité implémente les fonctions SSP/AP en mode utilisateur.
[out] ContextData
facultatif. Pointeur vers une structure SecBuffer qui reçoit des données spécifiques au contexte à copier lors de la création du contexte de sécurité en mode utilisateur. La mémoire pour ContextData doit être allouée à l’aide de la fonction AllocateLsaHeap . L’autorité de sécurité locale (LSA) libère la mémoire.
Valeur retournée
Si la fonction SpAcceptLsaModeContext réussit et qu’aucun traitement supplémentaire n’est nécessaire pour établir le contexte de sécurité, retournez STATUS_SUCCESS. Si un traitement supplémentaire est nécessaire, la fonction doit retourner SEC_I_CONTINUE_NEEDED.
Si la fonction ne parvient pas à créer le contexte de sécurité pour une autre raison, retournez un code NTSTATUS indiquant la raison.
Remarques
SpInitLsaModeContext est la fonction côté client permettant de créer un contexte de sécurité.
SSP/APs doivent implémenter la fonction SpAcceptLsaModeContext . Le nom réel donné à l’implémentation appartient au développeur.
Un pointeur vers la fonction SpAcceptLsaModeContext est disponible dans la structure SECPKG_FUNCTION_TABLE reçue de la fonction SpLsaModeInitialize .
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | ntsecpkg.h |