Partager via


Initialisation du contexte client

Pour établir une connexion sécurisée, le client acquiert un handle d’informations d’identification sortantes avant d’envoyer une demande d’authentification au serveur. Le serveur crée un contexte de sécurité pour le client à partir de la demande d’authentification. Deux fonctions SSPI côté client sont impliquées dans la configuration de l’authentification :

Le code de ce processus est visible dans la fonction GenClientContext dans Utilisation de SSPI avec un client Windows Sockets.

Si un programme client doit utiliser des informations d’identification en plus de ses propres informations d’identification d’ouverture de session, telles qu’un nom d’utilisateur, un nom de domaine et un mot de passe différents, il les fournit dans l’appel AcquireCredentialsHandle avec une structure de SEC_WINNT_AUTH_IDENTITY spécifiant les informations d’identification supplémentaires. Pour plus d’informations sur les fonctions d’informations d’identification, consultez Gestion des informations d’identification.

Notes

Le membre Indicateurs de la structure SEC_WINNT_AUTH_IDENTITY peut être défini sur SEC_WINNT_AUTH_IDENTITY_ANSI lorsque les chaînes de la structure sont ASCI ou OEM. Les chaînes ANSI peuvent être utilisées avec le membre Flags de la structure SEC_WINNT_AUTH_IDENTITY définie sur SEC_WINNT_AUTH_IDENTITY_UNICODE si elles sont d’abord converties en Unicode à l’aide de la fonction MultiByteToWideChar .

 

Pour lancer la première étape de l’authentification, le client appelle InitializeSecurityContext (Général) pour obtenir un jeton de sécurité initial à envoyer dans un message de demande de connexion au serveur.

Le client utilise les informations de jeton de sécurité reçues dans le descripteur de mémoire tampon de sortie pour générer un message à envoyer au serveur. La construction du message, en termes de placement de différentes mémoires tampons et ainsi de suite, fait partie du protocole d’application et doit être comprise par les deux parties.

Le client vérifie la status de retour à partir d’InitializeSecurityContext (Général) pour voir si l’authentification se terminera en un seul appel. Une status de retour de SEC_I_CONTINUE_NEEDED indique que le protocole de sécurité nécessite plusieurs messages d’authentification. Pour plus d’informations sur les fonctions contextuelles, consultez Gestion du contexte.