Condividi tramite


Implementazione del meccanismo LEAP EAPHost

Questo argomento descrive il meccanismo EAPHost che consente a terze parti di scrivere moduli LEAP (Lightweight Extensible Authentication Protocol) per Windows. LEAP è un metodo di autenticazione legacy, creato da Cisco, in base a RFC 3748. Per altre informazioni su LEAP, vedere Cisco LEAP Q&A.

Processo di autenticazione EAPHost

Il normale processo di autenticazione EAPHost viene eseguito nel modo seguente:

  • L'autenticatore invia una richiesta per autenticare il peer. Ad esempio, l'applicazione chiama EapHostPeerBeginSession con la configurazione EAPHost e i dati utente.
  • Il peer invia un pacchetto Response in risposta a una richiesta valida. Ad esempio, una chiamata con esito positivo restituisce un handle di sessione EAP_edizione StandardSSION_HANDLE.
  • L'autenticatore invia un pacchetto di richiesta aggiuntivo e il peer risponde con una risposta. Ad esempio, l'applicazione chiama EapHostPeerGetSendPacket per ottenere i pacchetti EAP ricevuti da EAPHost in tutta la sessione. Ogni pacchetto viene elaborato da una chiamata a EapHostPeerProcessReceivedPacket.
  • EapHostPeerProcessReceivedPacket restituirà sempre un codice azione. Il supplicant deve quindi chiamare la funzione corrispondente al codice dell'azione.
  • La sequenza di richieste e risposte continua fino a quando necessario. Ad esempio, l'applicazione può chiamare EapHostPeerGetResponseAttributes per richiedere gli attributi EAP disponibili e il peer risponde con EapHostPeerSetResponseAttributes per restituirli.
  • Dopo una richiesta iniziale, non è possibile inviare una nuova richiesta finché non viene ricevuta una risposta valida.
  • La conversazione continua fino a quando l'autenticatore non riesce ad autenticare il peer, nel qual caso l'implementazione dell'autenticatore deve trasmettere un errore EAP. Ad esempio, risposte inaccettabili a una o più richieste causano la trasmissione di un errore di codice 4 EAP da parte dell'autenticatore.
  • In alternativa, la conversazione di autenticazione può continuare fino a quando l'autenticatore non determina che è stata eseguita correttamente l'autenticazione, nel qual caso l'autenticatore deve trasmettere un EAP Success (Codice 3).
  • Se il risultato indica l'esito positivo o negativo, l'applicazione chiama EapHostPeerEndSession per terminare la sessione. In caso di errore, è possibile tentare di ripetere l'autenticazione aprendo un'altra sessione con EAPHost e fornendo la stessa identità o una nuova identità.

Processo di autenticazione LEAP

Il processo di autenticazione LEAP è diverso dal normale processo di autenticazione EAPhost come indicato di seguito:

  • L'autenticazione EAP viene avviata dal server (autenticatore). LEAP, al contrario, viene avviato dal client (peer).

    • Pertanto, quando si scrive un modulo LEAP, è necessario assicurarsi sempre che il pacchetto Richiesta di richiesta di verifica dal metodo peer e la risposta EAP dal server EAP debbano avere sempre lo stesso ID pacchetto del pacchetto EAP Success dal server.
    • Al contrario, i pacchetti EAPHost Request e Response e Success in genere hanno ID diversi.

      Nota

      Ogni richiesta EAP ha un campo Tipo per indicare ciò che viene richiesto. Come per il pacchetto Richiesta, ogni pacchetto di risposta EAP contiene un campo Tipo, che corrisponde al campo Tipo della richiesta. Gli esempi includono pacchetti di richiesta di identità e richiesta di verifica.

       

  • In caso di errore con EAPHost, è possibile tentare di ripetere l'autenticazione aprendo un'altra sessione con EAPHost e fornendo la stessa identità o una nuova identità.

Implementazione del metodo LEAP Authenticator

Quando si sviluppa un metodo di autenticazione LEAP, verificare quanto segue:

Implementazione del metodo peer LEAP

Quando si sviluppa un metodo peer LEAP, verificare quanto segue

Sequenza di chiamata EAPHost

Uso di EAPHost