Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym temacie opisano mechanizm EAPHost, który umożliwia osobom trzecim pisanie modułów Lightweight Extensible Authentication Protocol (LEAP) dla systemu Windows. LEAP to starsza metoda uwierzytelniania utworzona przez firmę Cisco zgodnie z RFC 3748. Aby uzyskać więcej informacji na temat programu LEAP, zobacz Cisco LEAP Q&A.
Proces uwierzytelniania EAPHost
Zwykły proces uwierzytelniania EAPHost odbywa się w następujący sposób:
- Uwierzytelniacz wysyła żądanie uwierzytelnienia partnera. Na przykład aplikacja wywołuje EapHostPeerBeginSession z konfiguracją EAPHost i danymi użytkownika.
- Element równorzędny wysyła pakiet odpowiedzi w odpowiedzi na prawidłowe żądanie. Na przykład pomyślne wywołanie zwraca uchwyt sesji EAP_SESSION_HANDLE.
- Wystawca uwierzytelniania wysyła dodatkowy pakiet żądania, a element równorzędny odpowiada za pomocą odpowiedzi. Na przykład aplikacja wywołuje EapHostPeerGetSendPacket w celu uzyskania pakietów EAP odebranych przez EAPHost podczas całej sesji. Każdy pakiet jest przetwarzany przez wywołanie EapHostPeerProcessReceivedPacket.
- EapHostPeerProcessReceivedPacket zawsze zwraca kod akcji. Klient musi następnie wywołać funkcję odpowiadającą kodowi akcji.
- Sekwencja żądań i odpowiedzi trwa tak długo, jak to konieczne. Na przykład aplikacja może wywołać EapHostPeerGetResponseAttributes, żądając dostępnych atrybutów EAP, a równorzędny odpowiada za pomocą EapHostPeerSetResponseAttributes, aby je zwrócić.
- Po początkowym żądaniu nie można wysłać nowego żądania, dopóki nie zostanie odebrana prawidłowa odpowiedź.
- Rozmowa trwa do momentu, gdy autentykator nie może uwierzytelnić peera, w którym to przypadku implementacja autentykatora musi wysłać komunikat o błędzie EAP. Na przykład niedopuszczalne odpowiedzi na co najmniej jedno żądanie spowodowałyby, że wystawca uwierzytelniający przesyła kod błędu 4 EAP.
- Alternatywnie, konwersacja uwierzytelniania może być kontynuowana, dopóki autentykator nie ustali, że uwierzytelnienie zakończyło się pomyślnie, w takim przypadku autentykator musi przesłać sukces EAP (kod 3).
- Niezależnie od tego, czy wynik wskazuje powodzenie, czy niepowodzenie, aplikacja wywołuje EapHostPeerEndSession, aby zakończyć sesję. W przypadku awarii można ponowić próbę uwierzytelnienia, otwierając inną sesję z hostem EAPHost i podając tę samą lub nową tożsamość.
Proces uwierzytelniania LEAP
Proces uwierzytelniania LEAP różni się od zwykłego procesu uwierzytelniania EAPhost w następujący sposób:
Uwierzytelnianie protokołu EAP jest inicjowane przez serwer (authenticator). Z kolei program LEAP jest inicjowany przez klienta (element równorzędny).
- W związku z tym podczas pisania modułu LEAP należy zawsze upewnić się, że pakiet żądania wyzwania z metody równorzędnej i pakiet odpowiedzi EAP z serwera EAP muszą zawsze mieć ten sam identyfikator pakietu co pakiet powodzenia EAP z serwera.
Z kolei pakiety EAPHost żądania, odpowiedzi i powodzenia zazwyczaj mają różne identyfikatory.
Notatka
Każde żądanie protokołu EAP ma pole Typ, aby wskazać, czego żądano. Podobnie jak w przypadku pakietu Żądania każdy pakiet odpowiedzi protokołu EAP zawiera pole Typ, które odpowiada polu Typ żądania. Przykłady obejmują pakiety żądania tożsamości i pakiety żądania wyzwania.
W przypadku niepowodzenia funkcji EAPHost można ponowić próbę uwierzytelnienia, otwierając inną sesję za pomocą protokołu EAPHost i podając tę samą tożsamość lub nową tożsamość.
Implementacja metody LEAP Authenticator
Podczas tworzenia metody uwierzytelniania LEAP upewnij się, że:
- Metody uwierzytelniania LEAP muszą zwracać kod akcji EAP_METHOD_AUTHENTICATOR_RESPONSE_SEND po zakończeniu pierwszej fazy uwierzytelniania (uwierzytelniania równorzędnego). Następnie, gdy zostanie wywołane EapMethodAuthenticatorSendPacket, powinno zwrócić prawidłowy EapPacket z kodem EAP EapCodeSuccess.
- Metody uwierzytelniania LEAP powinny zwrócić kod akcji EAP_METHOD_AUTHENTICATOR_RESPONSE_RESULT, jeśli pierwsza faza uwierzytelniania równorzędnego nie powiedzie się.
- Metody uwierzytelniania LEAP muszą zwrócić końcowy pakiet odpowiedzi uwierzytelniającej z kodem akcji EAP_METHOD_AUTHENTICATOR_RESPONSE_RESULT, gdy zostanie wywołana funkcja EapMethodAuthenticatorSendPacket. Następnie w kolejnych wywołaniach EapMethodAuthenticatorGetResult należy zwrócić EAP_SESSION_HANDLE w celu zidentyfikowania uwierzytelnionej sesji.
Implementacja partnerskiej metody LEAP
Podczas opracowywania metody LEAP opartej na współpracy, upewnij się, że:
- Metody równorzędne LEAP powinny zwrócić kod akcji EapPeerMethodResponseActionSend po pomyślnym zakończeniu pierwszej fazy uwierzytelniania (uwierzytelnianie równorzędne).
- Metody typu peer LEAP powinny zwrócić kod akcji EapPeerMethodResponseActionResult po pomyślnym zakończeniu drugiej fazy uwierzytelniania.
Tematy pokrewne
-
przy użyciu EAPHost