Implémentation du mécanisme EAPHost LEAP
Cette rubrique décrit le mécanisme EAPHost qui permet à des tiers d’écrire des modules LEAP (Lightweight Extensible Authentication Protocol) pour Windows. LEAP est une méthode d’authentification héritée, créée par Cisco, conformément à la RFC 3748. Pour plus d’informations sur LEAP, consultez Cisco LEAP Q&A.
Processus d’authentification EAPHost
Le processus d’authentification EAPHost normal se produit comme suit :
- L’authentificateur envoie une demande d’authentification de l’homologue. Par exemple, l’application appelle EapHostPeerBeginSession avec la configuration EAPHost et les données utilisateur.
- L’homologue envoie un paquet de réponse en réponse à une demande valide. Par exemple, un appel réussi retourne un handle de session EAP_SESSION_HANDLE .
- L’authentificateur envoie un paquet de requête supplémentaire et l’homologue répond avec une réponse. Par exemple, l’application appelle EapHostPeerGetSendPacket pour obtenir les paquets EAP reçus par EAPHost tout au long de la session. Chaque paquet est traité par un appel à EapHostPeerProcessReceivedPacket.
- EapHostPeerProcessReceivedPacket retourne toujours un code d’action. Le demandeur doit ensuite appeler la fonction correspondant au code d’action.
- La séquence de requêtes et de réponses se poursuit aussi longtemps que nécessaire. Par exemple, l’application peut appeler EapHostPeerGetResponseAttributes pour demander les attributs EAP disponibles, et l’homologue répond avec EapHostPeerSetResponseAttributes pour les renvoyer .
- Après une demande initiale, une nouvelle demande ne peut pas être envoyée tant qu’une réponse valide n’a pas été reçue.
- La conversation se poursuit jusqu’à ce que l’authentificateur ne puisse pas authentifier l’homologue, auquel cas l’implémentation de l’authentificateur doit transmettre un échec EAP. Par exemple, des réponses inacceptables à une ou plusieurs demandes entraîneraient la transmission par l’authentificateur d’un échec EAP code 4.
- Sinon, la conversation d’authentification peut se poursuivre jusqu’à ce que l’authentificateur détermine que l’authentification a réussi, auquel cas l’authentificateur doit transmettre une réussite EAP (code 3).
- Si le résultat indique la réussite ou l’échec, l’application appelle EapHostPeerEndSession pour mettre fin à la session. En cas d’échec, la réauthentification peut être tentée en ouvrant une autre session avec EAPHost et en fournissant la même identité ou une nouvelle identité.
Processus d’authentification LEAP
Le processus d’authentification LEAP diffère du processus d’authentification EAPhost normal comme suit :
L’authentification EAP est lancée par le serveur (authentificateur). LEAP, en revanche, est initié par le client (homologue).
- Par conséquent, lors de l’écriture d’un module LEAP, vous devez toujours vous assurer que le paquet de demande de défi de la méthode homologue et la réponse EAP du serveur EAP doivent toujours avoir le même ID de paquet que celui du paquet EAP Success du serveur.
En revanche, les paquets de requête et de réponse et de réussite EAPHost ont généralement tous des ID différents.
Notes
Chaque demande EAP a un champ Type pour indiquer ce qui est demandé. Comme pour le paquet de requête, chaque paquet de réponse EAP contient un champ Type, qui correspond au champ Type de la demande. Les paquets de demande d’identité et de requête de défi sont des exemples.
En cas d’échec avec EAPHost, une nouvelle authentification peut être tentée en ouvrant une autre session avec EAPHost et en fournissant la même identité ou une nouvelle identité.
Implémentation de la méthode LEAP Authenticator
Lorsque vous développez une méthode d’authentificateur LEAP, vérifiez ce qui suit :
- Les méthodes d’authentificateur LEAP doivent retourner le code d’action EAP_METHOD_AUTHENTICATOR_RESPONSE_SEND une fois la première phase d’authentification (authentification d’homologue) réussie. Ensuite, quand EapMethodAuthenticatorSendPacket est appelé, il doit retourner un EapPacket valide avec un code EAP d’EapCodeSuccess.
- Les méthodes d’authentificateur LEAP doivent retourner le code d’action EAP_METHOD_AUTHENTICATOR_RESPONSE_RESULT si la première phase de l’authentification d’homologue échoue.
- Les méthodes d’authentificateur LEAP doivent retourner le paquet de réponse d’authentification final avec le code d’action EAP_METHOD_AUTHENTICATOR_RESPONSE_RESULT lorsque EapMethodAuthenticatorSendPacket est appelé. Ensuite, dans les appels suivants à EapMethodAuthenticatorGetResult , le EAP_SESSION_HANDLE doit être retourné pour identifier la session authentifiée.
Implémentation de la méthode d’homologue LEAP
Lors du développement d’une méthode d’homologue LEAP, vérifiez les points suivants
- Les méthodes d’homologue LEAP doivent retourner le code d’action EapPeerMethodResponseActionSend une fois la première phase d’authentification (authentification d’homologue) réussie.
- Les méthodes d’homologue LEAP doivent retourner le code d’action EapPeerMethodResponseActionResult une fois la 2e phase d’authentification réussie.
Rubriques connexes