Partager via


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
ASC_REQ_DELEGATE
Le serveur est autorisé à emprunter l’identité du client.
ASC_REQ_MUTUAL_AUTH
Le client et le serveur doivent prouver leur identité.
ASC_REQ_REPLAY_DETECT
Le contexte de sécurité prend en charge la détection des paquets relus.
ASC_REQ_SEQUENCE_DETECT
Le contexte de sécurité prend en charge la détection des messages en désordre.
ASC_REQ_USE_SESSION_KEY
Une nouvelle clé de session doit être négociée.
ASC_REQ_PROMPT_FOR_CREDS
Si le client est un utilisateur interactif, le package doit, si possible, demander à l’utilisateur les informations d’identification appropriées.
ASC_REQ_USE_SUPPLIED_CREDS
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.
ASC_REQ_ALLOCATE_MEMORY
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é.
ASC_REQ_USE_DCE_STYLE
L’appelant attend une transaction d’authentification mutuelle à trois étapes.
ASC_REQ_DATAGRAM
Un canal de communication de type datagramme doit être utilisé. Pour plus d’informations, consultez Contextes de datagramme.
ASC_REQ_CONNECTION
Un canal de communication de type connexion doit être utilisé. Pour plus d’informations, consultez Contextes orientés connexion.
ASC_REQ_EXTENDED_ERROR
Si le contexte échoue, générez un message de réponse d’erreur à renvoyer au client.
ASC_REQ_STREAM
Un canal de communication de type flux doit être utilisé. Pour plus d’informations, consultez contextes Stream.
ASC_REQ_INTEGRITY
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

Voir aussi

AllocateLsaHeap

SpInitLsaModeContext

SpLsaModeInitialize