Häufig gestellte Fragen zu EAPHost Supplicant

Dieses Thema enthält Antworten auf häufig gestellte Fragen zur EAPHost Supplicant-API.

Warum muss ich "EapHostPeerInitialize" und "EapHostPeerUninitialize" aufrufen?

EapHostPeerInitialize und EapHostPeerUninitialize initialisieren und entinitialisieren die COM-Umgebung, die für die Interprocess Communication (IPC) zwischen einem Supplicant und EAPHost verwendet wird.

Welche Funktionen müssen für Threads aufgerufen werden, die COM für Single Threaded Apartment (STA) initialisiert haben?

EapHostPeerInvokeConfigUI, EapHostPeerInvokeInteractiveUI und EapHostAuthenticatorInvokeConfigUI müssen für Threads aufgerufen werden, die COM für STA initialisiert haben. Dies kann durch Aufrufen der COM-API CoInitialize erreicht werden. wenn der Supplicant mit dem STA-Thread CoUninitialize beendet hat, muss vor dem Beenden aufgerufen werden.

Wie exportiert EAPHost Schlüsselmaterial?

EAPHost EAP-Methoden exportieren Master Session Keys (MSKs) in Form von Microsoft-MPPE-Schlüsseln (Point-to-Point Encryption) an die Bittsteller. Zusätzliches Schlüsselmaterial, z. B. Pairwise Master Keys (PMKs), kann vom Supplicant mithilfe des MSK generiert werden. Damit die Methoden während der Authentifizierung weitere Schlüssel generieren, können die Methoden diese Schlüssel als herstellerspezifische Attribute für die Bittsteller bereitstellen.

Was ist ein ERWEITERTer Mastersitzungsschlüssel (EMSK)?

EMSK ist zusätzliches Schlüsselmaterial, das von der EAP-Methode exportiert wird. EMSK ist mindestens 64 Oktette lang. EMSK wird zwischen dem EAP-Client und dem Server gemeinsam genutzt, aber nicht mit dem Authentifikator oder anderen Drittanbietern geteilt. Derzeit ist EMSK für die zukünftige Verwendung reserviert. Weitere Informationen finden Sie unter Extensible Authentication Protocol EAP)-Methodenanforderungen für Drahtlose LANs.

Wann nutzt oder generiert eine Methode ein Attribut?

Wenn eine EAP-Methode Attribute oder EMSK generiert, verwendet der Supplicant Attribute. In der Regel sind Attribute, die von Bittstellern verwendet werden, Schlüssel. Die verwendeten Attribute sind eatPeerId, eatServerId, eatMethodId, eatEMSK und eatCredentialsChanged. Weitere Informationen finden Sie unter EAP_ATTRIBUTE_TYPE. Eine EAP-Methode kann zusätzliches anwendungsspezifisches EMSK-Material exportieren, z. B.:

  • Sitzungs-ID
  • [Netzwerkzugriffsschutz] (/windows/desktop/NAP/network-access-protection-start-page) (NAP)

Welche Attribute nutzt 802.1X?

Das native drahtlose 802.1X-Supplicant nutzt die folgenden EAPHost-Authentifizierungsattribute:

  • Kennwortbenachrichtigung ändern
  • Microsoft Point-to-Point Encryption (MPPE) Sende-/Empfangsschlüssel. VendorId/VendorType = 331/16 und 311/1

MPPE-Schlüssel sind Schlüssel, die am Ende der erfolgreichen Authentifizierung sowohl vom Peer als auch vom Authentifikator generiert werden. Diese Schlüssel werden von 802.1X und dem Netzwerkzugriffsserver (NAS) verwendet, um gesendete und empfangene Pakete zu verschlüsseln und zu entschlüsseln.

Was ist der Zweck des EAP_PEER_FLAG_GUEST_ACCESS-Flags in EAPHost?

Wenn dieses Flag in EAPHostPeerBeginSession festgelegt ist, interpretiert EAPHost dies als Anforderung für die Gastautorisierung und gibt eine NULL-Identitätsantwort zurück, die dann an das Supplicant übergeben und an den EAP-Server zurückgegeben wird.

Wie fordert der Bittsteller die Computerauthentifizierung an?

Die Computerauthentifizierung wird durch Festlegen des flags EAP_FLAG_MACHINE_AUTH angefordert.

Wie fordert der Bittsteller die Benutzerauthentifizierung an?

Die Benutzerauthentifizierung wird angefordert, indem das Flag EAP_FLAG_MACHINE_AUTH nicht festgelegt wird.

Wann verwende ich "EapHostPeerFreeErrorMemory" anstelle der Funktion "EapHostFreeEapError"?

Die EapHostPeerFreeErrorMemory-Funktion wird nur zum Freigeben EAP_ERROR Strukturen verwendet, die von EAPHost-Konfigurations-APIs zurückgegeben werden. EAPHost-Konfigurations-APIs sind in EapHostPeerConfigApis.h definiert. Im Gegensatz dazu wird die EapHostPeerFreeEapError-Funktion zum Freigeben EAP_ERROR Strukturen verwendet, die von EAPHost-Laufzeit-APIs zurückgegeben werden. EAPHost-Laufzeit-APIs sind in EapPApis.h definiert. Verwenden Sie niemals die Laufzeitversion der API mit der Konfigurationsversion der APIs. dies kann zu unerwarteten Ergebnissen führen.

Ich habe meine Benutzeroberfläche in dem thread implementiert, den ich zum Verarbeiten einer EAP-Authentifizierungssitzung auf dem Supplicant verwende. Nachdem ich ein interaktives Benutzeroberfläche-Dialogfeld ausgelöst habe, um Anmeldeinformationen oder andere Benutzereingabedaten abzurufen, schlägt der nächste Aufruf von EAPHost an eine EAP-Peermethode mit "ERROR_OBJECT_DISCONNECTED" fehl. Warum ist dies aufgetreten, und wie kann ich es behandeln?

Während die clientseitigen EAPHost-APIs alle C-Stil-APIs sind, sind diese C-APIs nur Wrapper entsprechender COM-APIs. Die APIs im C-Stil werden in einer Multithread-COM-Umgebung ausgeführt. Ui-Code wird normalerweise im Apartmentthreadmodell ausgeführt. Da die beiden Threadmodelle miteinander in Konflikt geraten, führen Sie den Ui-Code nicht im selben Thread aus, der EAP-Authentifizierungen verarbeitet.

Warum verwendet die API "EapHostPeerBeginSession" einen Rückruffunktionszeiger "NotificationHandler" als Parameter?

NotificationHandler ist der Mechanismus, mit dem ein Bittsteller benachrichtigt wird, dass er sich erneut authentifizieren muss. Es gibt verschiedene Szenarien, in denen das Supplicant für die erneute Authentifizierung erforderlich ist, einschließlich der Authentifizierung mit Network Access Protection (NAP).

Welchen Zweck hat der Parameter "pConnectionId" in der API "EapHostPeerBeginSession"?

pConnectionId ist ein Zeiger auf einen supplicant-defined GUID-Wert, der verwendet wird, um eine Netzwerkverbindung zu identifizieren, die zum Supplicant gehört. Wenn die NotificationHandler-Rückruffunktion aufgerufen wird, wird diese GUID übergeben, um die Netzwerkverbindung zu identifizieren, die der Supplicant für erneute Authentifizierungsanforderungen verwendet.

Gewusst wie wissen, ob sich der Quarantänestatus ändert?

Der Benutzer erhält nur dann eine visuelle Benachrichtigung über eine Änderung des Quarantänezustands, wenn im System mindestens eine nap-Schnittstelle (Network Access Protection, Nap) für die Quarantäneerzwingung (Network Access Protection, NAP) registriert ist. Falls ja, wird der Benutzer beim Versuch einer erneuten Authentifizierung über ein Popupfenster über eine Änderung des Quarantänezustands benachrichtigt.

Gewusst wie wissen, ob im System eine NAP QEC-registrierte Schnittstelle vorhanden ist?

Öffnen Sie ein Fenster mit erhöhten Rechten, und führen Sie den folgenden netsh-Befehl aus: "netsh nap client show state". Weitere Informationen finden Sie unter Netsh-Befehle.

Wenn sich der Bittsteller erneut authentifiziert, welche Verbindungs-ID sollte die QEC während der erneuten Authentifizierung verwenden?

Der QEC sollte dieselbe Verbindungs-ID verwenden, die für die vorherige Sitzung verwendet wurde.

Es ist nur eine EAPHost-Supplicant-Methode verfügbar, um Dialogfelder der Benutzeroberfläche anzuzeigen, aber EAP-Methoden verfügen über mehrere Arten von UI-spezifischen Aufrufen. Welche Methode sollte das Supplicant aufrufen, wenn er den Aktionscode "EapHostPeerResponseInvokeUI" abruft, der angibt, dass das Supplicant ein Dialogfeld für die Benutzeroberfläche anzeigen muss?

Der Benutzer benötigt keine Aktion, da EAPHost weiß, welche Methodenfunktion aufgerufen werden soll. Wenn für instance der Aktionscode EapHostPeerResponseInvokeUI zurückgegeben wird, ruft das Supplicant diese drei Funktionen in der folgenden Reihenfolge auf: EapHostPeerGetUIContext, EapHostPeerInvokeInteractiveUI und EapHostPeerSetUIContext.

Was ist der Unterschied zwischen einem Anmeldeinformationsblob und einem Konfigurationsblob?

Das Blob für Anmeldeinformationen enthält nur Benutzerdaten wie Benutzername, Kennwort und PIN. Das Konfigurationsblob enthält die Einstellungen, die das Verhalten der Methode steuern.

Kann ich die Ablaufverfolgung auf der EAPHost-Clientseite aktivieren?

Ja. Weitere Informationen finden Sie unter Aktivieren der Ablaufverfolgung.