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:
- I metodi dell'autenticatore LEAP devono restituire il codice di azione EAP_METHOD_AUTHENTICATOR_RESPONedizione Standard_edizione Standard ND dopo l'esito positivo della prima fase di autenticazione (autenticazione peer). Quindi, quando viene chiamato EapMethodAuthenticatorSendPacket, deve restituire un EapPacket valido con un codice EAP di EapCodeSuccess.
- I metodi dell'autenticatore LEAP devono restituire il codice azione EAP_METHOD_AUTHENTICATOR_RESPONedizione Standard_RESULT se la prima fase dell'autenticazione peer non riesce.
- I metodi di autenticazione LEAP devono restituire il pacchetto di risposta di autenticazione finale con il codice azione EAP_METHOD_AUTHENTICATOR_RESPONedizione Standard_RESULT quando viene chiamato EapMethodAuthenticatorSendPacket. Nelle chiamate successive a EapMethodAuthenticatorGetResult è quindi necessario restituire il EAP_edizione StandardSSION_HANDLE per identificare la sessione autenticata.
Implementazione del metodo peer LEAP
Quando si sviluppa un metodo peer LEAP, verificare quanto segue
- I metodi peer LEAP devono restituire il codice di azione EapPeerMethodResponseActionSend dopo che la prima fase di autenticazione (autenticazione peer) ha avuto esito positivo.
- I metodi peer LEAP devono restituire il codice di azione EapPeerMethodResponseActionResult dopo che la seconda fase dell'autenticazione ha avuto esito positivo.
Argomenti correlati