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:

IMPLEMENTIERUNG der LEAP-Peermethode

Stellen Sie beim Entwickeln einer LEAP-Peermethode Folgendes sicher:

EAPHost-Aufrufsequenz

Verwenden von EAPHost