共用方式為


實作 EAPHost LEAP 機制

本主題描述 EAPHost 機制,可讓第三方撰寫適用於 Windows 的輕量型可延伸驗證通訊協定 (LEAP) 模組。 LEAP 是 Cisco 根據 RFC 3748 所建立的舊版驗證方法。 如需 LEAP 的詳細資訊,請參閱 Cisco LEAP Q&A

EAPHost 驗證程式

一般的 EAPHost 驗證程式如下:

  • 驗證器會傳送要求來驗證對等。 例如,應用程式會使用 EAPHost 組態和用戶數據呼叫 EapHostPeerBeginSession
  • 對等會將回應封包傳送給有效的要求。 例如,成功的呼叫會 傳回EAP_SESSION_HANDLE 會話句柄。
  • 驗證器會傳送額外的要求封包,而對等會以回應回復。 例如,應用程式會呼叫 EapHostPeerGetSendPacket ,以取得整個會話中 EAPHost 所接收的 EAP 封包。 每個封包都會由呼叫 EapHostPeerProcessReceivedPacket 來處理。
  • EapHostPeerProcessReceivedPacket 一律會傳回動作程序代碼。 然後,要求者必須呼叫對應至動作程序代碼的函式。
  • 只要需要,要求和響應的順序就會繼續。 例如,應用程式可以呼叫 EapHostPeerGetResponseAttributes 來要求可用的 EAP 屬性,而對等會以 EapHostPeerSetResponseAttributes 回應以傳回它們。
  • 初始要求之後,在收到有效的回應之前,無法傳送新的要求。
  • 對話會繼續進行,直到驗證器無法驗證對等,在此情況下,驗證器實作必須傳輸 EAP 失敗。 例如,對一或多個要求的不可接受的回應會導致驗證器傳輸程式代碼 4 EAP 失敗。
  • 或者,驗證對話可以繼續進行,直到驗證器判斷成功驗證已發生,在此情況下,驗證器必須傳輸 EAP 成功 (程序代碼 3)。
  • 無論結果指出成功還是失敗,應用程式都會呼叫 EapHostPeerEndSession 來終止會話。 如果失敗,您可以使用 EAPHost 開啟另一個工作階段並提供相同或新的身分識別,以嘗試重新驗證。

LEAP 驗證程式

LEAP 驗證程式與一般 EAPhost 驗證程式不同,如下所示:

  • EAP 驗證是由伺服器起始的(驗證器)。 相反地,LEAP 是由用戶端起始的(對等)。

    • 因此,撰寫 LEAP 模組時,您必須一律確定來自對等方法的挑戰要求封包和 EAP 伺服器的 EAP 回應必須一律擁有與伺服器 EAP 成功封包相同的封包識別碼。
    • 相反地,EAPHost 要求和回應和成功封包通常都有不同的標識碼。

      注意

      每個 EAP 要求都有 [類型] 字段,以指出所要求的專案。 如同要求封包,每個 EAP 回應封包都包含類型欄位,其會對應至 [要求] 的 [類型] 字段。 範例包括身分識別要求和挑戰要求封包。

       

  • 在 EAPHost 失敗的情況下,您可以使用 EAPHost 開啟另一個工作階段並提供相同的身分識別或新的身分識別,以嘗試重新驗證。

LEAP Authenticator 方法實作

開發 LEAP 驗證器方法時,請確定下列事項:

LEAP 對等方法實作

開發 LEAP 對等方法時,請確定下列事項

EAPHost 呼叫順序

使用 EAPHost