Compartir a través de


Implementación del mecanismo leap de EAPHost

En este tema se describe el mecanismo EAPHost que permite a terceros escribir módulos ligeros del Protocolo de autenticación extensible (LEAP) para Windows. LEAP es un método de autenticación heredado, creado por Cisco, según RFC 3748. Para obtener más información sobre LEAP, consulte Cisco LEAP Q&A.

Proceso de autenticación de EAPHost

El proceso de autenticación de EAPHost normal se produce de la siguiente manera:

  • El autenticador envía una solicitud para autenticar al mismo nivel. Por ejemplo, la aplicación llama a EapHostPeerBeginSession con la configuración de EAPHost y los datos de usuario.
  • El elemento del mismo nivel envía un paquete de respuesta en respuesta a una solicitud válida. Por ejemplo, una llamada correcta devuelve un identificador de sesión de EAP_SESSION_HANDLE .
  • El autenticador envía un paquete de solicitud adicional y las respuestas del mismo nivel con una respuesta. Por ejemplo, la aplicación llama a EapHostPeerGetSendPacket para obtener paquetes EAP recibidos por EAPHost a lo largo de la sesión. Cada paquete se procesa mediante una llamada a EapHostPeerProcessReceivedPacket.
  • EapHostPeerProcessReceivedPacket siempre devolverá un código de acción. A continuación, el suplicante debe llamar a la función correspondiente al código de acción.
  • La secuencia de solicitudes y respuestas continúa siempre que sea necesario. Por ejemplo, la aplicación puede llamar a EapHostPeerGetResponseAttributes para solicitar atributos EAP disponibles y el elemento del mismo nivel responde con EapHostPeerSetResponseAttributes para devolverlos.
  • Después de una solicitud inicial, no se puede enviar una nueva solicitud hasta que se reciba una respuesta válida.
  • La conversación continúa hasta que el autenticador no puede autenticar al mismo nivel, en cuyo caso la implementación del autenticador debe transmitir un error de EAP. Por ejemplo, las respuestas inaceptables a una o varias solicitudes provocarían que el autenticador transmita un error de EAP de código 4.
  • Como alternativa, la conversación de autenticación puede continuar hasta que el autenticador determine que se ha producido una autenticación correcta, en cuyo caso el autenticador debe transmitir un éxito de EAP (código 3).
  • Si el resultado indica éxito o error, la aplicación llama a EapHostPeerEndSession para finalizar la sesión. En caso de error, se puede intentar volver a autenticar abriendo otra sesión con EAPHost y proporcionando la misma o una nueva identidad.

Proceso de autenticación leap

El proceso de autenticación leap difiere del proceso de autenticación de EAPhost normal de la siguiente manera:

  • El servidor (autenticador) inicia la autenticación de EAP. LEAP, en cambio, lo inicia el cliente (del mismo nivel).

    • Por lo tanto, al escribir un módulo LEAP, siempre debe asegurarse de que el paquete solicitud de desafío del método del mismo nivel y la respuesta EAP del servidor EAP siempre debe tener el mismo identificador de paquete que el del paquete EAP Success del servidor.
    • Por el contrario, los paquetes de solicitud y respuesta y respuesta y éxito de EAPHost suelen tener identificadores diferentes.

      Nota

      Cada solicitud de EAP tiene un campo Tipo para indicar lo que se solicita. Al igual que con el paquete de solicitud, cada paquete de respuesta EAP contiene un campo Tipo, que corresponde al campo Tipo de la solicitud. Entre los ejemplos se incluyen la solicitud de identidad y los paquetes de solicitud de desafío.

       

  • En caso de error con EAPHost, se puede intentar volver a autenticar abriendo otra sesión con EAPHost y proporcionando la misma identidad o una nueva identidad.

Implementación del método LEAP Authenticator

Al desarrollar un método de autenticación LEAP, asegúrese de lo siguiente:

Implementación del método del mismo nivel de LEAP

Al desarrollar un método del mismo nivel LEAP, asegúrese de lo siguiente:

  • Los métodos del mismo nivel LEAP deben devolver el código de acción EapPeerMethodResponseActionSend después de que la primera fase de autenticación (autenticación del mismo nivel) se realice correctamente.
  • Los métodos del mismo nivel LEAP deben devolver el código de acción EapPeerMethodResponseActionResult después de que la segunda fase de la autenticación se realice correctamente.

Secuencia de llamadas de EAPHost

Uso de EAPHost