Поделиться через


Реализация механизма LEAP EAPHost

В этом разделе описывается механизм EAPHost, позволяющий третьим лицам записывать модули упрощенного расширяемого протокола проверки подлинности (LEAP) для Windows. LEAP — это устаревший метод проверки подлинности, созданный Cisco, как по стандарту RFC 3748. Дополнительные сведения о LEAP см. в разделе Cisco LEAP Q&A.

Процесс проверки подлинности EAPHost

Обычный процесс проверки подлинности EAPHost выполняется следующим образом:

  • Средство проверки подлинности отправляет запрос для проверки подлинности однорангового узла. Например, приложение вызывает EapHostPeerBeginSession с конфигурацией EAPHost и данными пользователя.
  • Одноранговый узел отправляет пакет ответа в ответ на допустимый запрос. Например, успешный вызов возвращает дескриптор сеанса EAP_SESSION_HANDLE .
  • Средство проверки подлинности отправляет дополнительный пакет запроса и ответы однорангового узла с ответом. Например, приложение вызывает EapHostPeerGetSendPacket для получения пакетов EAP, полученных EAPHost на протяжении всего сеанса. Каждый пакет обрабатывается вызовом EapHostPeerProcessReceivedPacket.
  • EapHostPeerProcessReceivedPacket всегда возвращает код действия. Затем запрашивающий должен вызвать функцию, соответствующую коду действия.
  • Последовательность запросов и ответов продолжается до тех пор, пока это необходимо. Например, приложение может вызвать EapHostPeerGetResponseAttributes для запроса доступных атрибутов EAP, а одноранговый узел отвечает с помощью EapHostPeerSetResponseAttributes, чтобы вернуть их.
  • После первоначального запроса новый запрос не может быть отправлен до получения допустимого ответа.
  • Беседа продолжается до тех пор, пока средство проверки подлинности не сможет пройти проверку подлинности однорангового узла, в этом случае реализация аутентификатора должна передавать ошибку EAP. Например, неприемлемые ответы на один или несколько запросов могут привести к тому, что средство проверки подлинности передает сбой кода 4 EAP.
  • Кроме того, беседа проверки подлинности может продолжаться до тех пор, пока средство проверки подлинности не определит, что произошла успешная проверка подлинности, в этом случае аутентификатор должен передать успешное выполнение EAP (код 3).
  • Указывает ли результат на успешность или сбой, приложение вызывает EapHostPeerEndSession для завершения сеанса. В случае сбоя можно выполнить повторную проверку подлинности, открыв другой сеанс с EAPHost и предоставив то же или новое удостоверение.

Процесс проверки подлинности LEAP

Процесс проверки подлинности LEAP отличается от обычного процесса проверки подлинности EAPhost следующим образом:

  • Проверка подлинности EAP инициируется сервером (authenticator). LEAP, напротив, инициируется клиентом (одноранговым сервером).

    • Поэтому при написании модуля LEAP всегда необходимо убедиться, что пакет запроса вызовов из однорангового метода и ответ EAP с сервера EAP всегда должен иметь тот же идентификатор пакета, что и пакет успешного выполнения EAP с сервера.
    • В отличие от этого, пакеты запроса и ответа EAPHost и успешного выполнения обычно имеют разные идентификаторы.

      Примечание.

      Каждый запрос EAP имеет поле "Тип", чтобы указать, что запрашивается. Как и в случае с пакетом запроса, каждый пакет ответа EAP содержит поле "Тип", соответствующее полю "Тип" запроса. К примерам относятся пакеты запросов удостоверений и запросов вызовов.

       

  • В случае сбоя с EAPHost повторная проверка подлинности может быть предпринята путем открытия другого сеанса с EAPHost и предоставления того же удостоверения или нового удостоверения.

Реализация метода LEAP Authenticator

При разработке метода проверки подлинности LEAP убедитесь в следующем:

Реализация однорангового метода LEAP

При разработке однорангового метода LEAP убедитесь в следующем.

  • Методы однорангового узла LEAP должны возвращать код действия EapPeerMethodResponseActionSend после успешного выполнения 1-го этапа проверки подлинности (одноранговая проверка подлинности).
  • Методы однорангового узла LEAP должны возвращать код действия EapPeerMethodResponseActionResult после успешного выполнения 2-го этапа проверки подлинности.

Последовательность вызовов EAPHost

Использование EAPHost