Implementieren des EAPHost LEAP-Mechanismus
In diesem Thema wird der EAPHost-Mechanismus beschrieben, der es Drittanbietern ermöglicht, LEAP-Module (Lightweight Extensible Authentication Protocol) für Windows zu schreiben. LEAP ist eine legacy-Authentifizierungsmethode, die von Cisco gemäß RFC 3748 erstellt wurde. Weitere Informationen zu LEAP finden Sie unter Cisco LEAP Q&A.
EAPHost-Authentifizierungsprozess
Der reguläre EAPHost-Authentifizierungsprozess erfolgt wie folgt:
- Der Authentifikator sendet eine Anforderung zur Authentifizierung des Peers. Beispielsweise ruft die Anwendung EapHostPeerBeginSession mit EAPHost-Konfiguration und Benutzerdaten auf.
- Der Peer sendet ein Antwortpaket als Antwort auf eine gültige Anforderung. Bei einem erfolgreichen Aufruf wird beispielsweise ein EAP_SESSION_HANDLE Sitzungshandle zurückgegeben.
- Der Authentifikator sendet ein zusätzliches Anforderungspaket, und der Peer antwortet mit einer Antwort. Beispielsweise ruft die Anwendung EapHostPeerGetSendPacket auf, um EAP-Pakete abzurufen, die EAPHost während der gesamten Sitzung empfangen hat. Jedes Paket wird durch einen Aufruf von EapHostPeerProcessReceivedPacket verarbeitet.
- EapHostPeerProcessReceivedPacket gibt immer einen Aktionscode zurück. Der Supplicant muss dann die Funktion aufrufen, die dem Aktionscode entspricht.
- Die Sequenz von Anforderungen und Antworten wird so lange wie nötig fortgesetzt. Beispielsweise kann die Anwendung EapHostPeerGetResponseAttributes aufrufen, um verfügbare EAP-Attribute anzufordern, und der Peer antwortet mit EapHostPeerSetResponseAttributes , um sie zurückzugeben.
- Nach einer anfänglichen Anforderung kann eine neue Anforderung erst gesendet werden, wenn eine gültige Antwort empfangen wurde.
- Die Konversation wird fortgesetzt, bis der Authentifikator den Peer nicht authentifizieren kann. In diesem Fall muss die Authentifikatorimplementierung einen EAP-Fehler übertragen. Beispielsweise würden inakzeptable Antworten auf eine oder mehrere Anforderungen dazu führen, dass der Authentifikator einen Code 4 EAP-Fehler überträgt.
- Alternativ kann die Authentifizierungsunterhaltung fortgesetzt werden, bis der Authentifikator feststellt, dass die erfolgreiche Authentifizierung erfolgt ist. In diesem Fall muss der Authentifikator einen EAP-Erfolg (Code 3) übertragen.
- Unabhängig davon, ob das Ergebnis auf Erfolg oder Fehler hinweist, ruft die Anwendung EapHostPeerEndSession auf, um die Sitzung zu beenden. Im Falle eines Fehlers kann eine erneute Authentifizierung versucht werden, indem eine andere Sitzung mit EAPHost geöffnet und entweder die gleiche oder eine neue Identität bereitgestellt wird.
LEAP-Authentifizierungsprozess
Der LEAP-Authentifizierungsprozess unterscheidet sich wie folgt vom regulären EAPhost-Authentifizierungsprozess:
Die EAP-Authentifizierung wird vom Server (Authentifikator) initiiert. LEAP wird dagegen vom Client (Peer) initiiert.
- Daher müssen Sie beim Schreiben eines LEAP-Moduls immer sicherstellen, dass das Challenge Request-Paket von der Peermethode und die EAP-Antwort vom EAP-Server immer dieselbe Paket-ID wie die des EAP-Erfolgspakets vom Server aufweisen müssen.
Im Gegensatz dazu weisen EAPHost-Pakete Anforderung und Antwort sowie Erfolgspakete in der Regel unterschiedliche IDs auf.
Hinweis
Jede EAP-Anforderung verfügt über ein Typfeld, das angibt, was angefordert wird. Wie beim Anforderungspaket enthält jedes EAP-Antwortpaket ein Typfeld, das dem Feld Typ der Anforderung entspricht. Beispiele hierfür sind Identity Request- und Challenge Request-Pakete.
Im Falle eines Fehlers mit EAPHost kann eine erneute Authentifizierung versucht werden, indem eine andere Sitzung mit EAPHost geöffnet und entweder dieselbe Identität oder eine neue Identität bereitgestellt wird.
Implementierung der LEAP Authenticator-Methode
Stellen Sie beim Entwickeln einer LEAP-Authentifikatormethode Folgendes sicher:
- LEAP-Authentifikatormethoden müssen den EAP_METHOD_AUTHENTICATOR_RESPONSE_SEND Aktionscode zurückgeben, nachdem die 1. Phase der Authentifizierung (Peerauthentifizierung) erfolgreich war. Wenn dann EapMethodAuthenticatorSendPacket aufgerufen wird, sollte ein gültiges EapPacket mit dem EAP-Code EapCodeSuccess zurückgegeben werden.
- LEAP-Authentifikatormethoden sollten den EAP_METHOD_AUTHENTICATOR_RESPONSE_RESULT Aktionscode zurückgeben, wenn die 1. Phase der Peerauthentifizierung nicht erfolgreich ist.
- LEAP-Authenticatormethoden müssen das endgültige Authentifizierungsantwortpaket mit dem EAP_METHOD_AUTHENTICATOR_RESPONSE_RESULT Aktionscode zurückgeben, wenn EapMethodAuthenticatorSendPacket aufgerufen wird. In nachfolgenden Aufrufen von EapMethodAuthenticatorGetResult muss dann die EAP_SESSION_HANDLE zurückgegeben werden, um die authentifizierte Sitzung zu identifizieren.
IMPLEMENTIERUNG der LEAP-Peermethode
Stellen Sie beim Entwickeln einer LEAP-Peermethode Folgendes sicher:
- LEAP-Peermethoden sollten den Aktionscode EapPeerMethodResponseActionSend zurückgeben, nachdem die 1. Phase der Authentifizierung (Peerauthentifizierung) erfolgreich war.
- LEAP-Peermethoden sollten den Aktionscode EapPeerMethodResponseActionResult zurückgeben, nachdem die 2. Phase der Authentifizierung erfolgreich war.
Zugehörige Themen