Partager via


Initialisation du protocole d’authentification

La connexion sécurisée EAP est initialisée entre le client et le serveur de manière similaire pour les clients RAS et sans fil (802.1X).

Client

Lorsque le client tente d’établir la connexion, le service d’authentification obtient informations d’identité pour l’utilisateur. Si la valeur RAS_EAP_VALUENAME_INVOKE_NAMEDLG est présente dans le Registre pour ce protocole d’authentification et que cette valeur est définie sur zéro, le service d’authentification appelle RasEapGetIdentity. Cette fonction affiche généralement une interface utilisateur qui permet aux informations d’identité d’être d’un type spécifique au protocole d’authentification ; par exemple, un certificat ou un ID numérique. Si RAS_EAP_VALUENAME_INVOKE_NAMEDLG n’est pas présent ou est défini sur un, le service d’authentification affiche la boîte de dialogue de nom d’utilisateur système standard.

Une fois que le service d’authentification a obtenu les informations d’identité de l’utilisateur, il appelle l’implémentation du protocole d’authentification de RasEapBegin. Cet appel permet au protocole d’authentification d’allouer et d’initialiser une mémoire tampon de travail que le service transmet aux appels suivants à RasEapMakeMessage et RasEapEnd. La mémoire tampon de travail est opaque pour le service et n’accède jamais au contenu de la mémoire tampon de travail. Si le protocole d’authentification crée une mémoire tampon de travail distincte pour chaque session EAP, la mémoire tampon de travail est la session et le thread sécurisé. Étant donné que le protocole d’authentification alloue la mémoire pour la mémoire tampon de travail, le protocole d’authentification doit également libérer cette mémoire à l’aide de la fonction RasEapFreeMemory.

Dans l’appel à RasEapBegin, le service transmet également une structure PPP_EAP_INPUT qui contient des pointeurs vers les informations de configuration de la connexion et les informations d’identité de l’utilisateur. Le service passe toujours une valeur pour le pszIdentity membre de PPP_EAP_INPUT. Toutefois, le membre pszPassword de PPP_EAP_INPUT peut être NULL.

Dans la structure PPP_EAP_INPUT, le membre fAuthenticator indique si le protocole d’authentification doit être authentifié (sur le client) ou en tant qu’authentificateur (sur le serveur).

Serveur

Sur le serveur, le bInitialID membre de PPP_EAP_INPUT spécifie l’ID que le serveur utilise pour le premier paquet EAP. Le serveur incrémente cet ID pour les paquets suivants.

Sur le serveur, le pointeur pUserAttributes dans PPP_EAP_INPUT pointe vers un tableau d’attributs du type RAS_AUTH_ATTRIBUTE_TYPE. Il s’agit d’attributs pour l’utilisateur qui ont été obtenus à partir du client.

Si l’appel RasEapBegin retourne une valeur autre que NO_ERROR, la session est déconnectée. L’erreur retournée est enregistrée (sur le serveur) ou affichée à l’utilisateur (sur le client).