В этом разделе приведены ответы на часто задаваемые вопросы об API запроса EAPHost.
Почему нужно вызывать EapHostPeerInitialize и EapHostPeerUninitialize?
EapHostPeerInitialize и EapHostPeerUninitialize инициализируют и неинициализируют com-среду, используемую для межпроцессного взаимодействия (IPC) между запрашивающим и EAPHost.
Какие функции необходимо вызывать в потоках, которые инициализированы COM для однопотокового подразделения (STA)?
EapHostPeerInvokeConfigUI, EapHostPeerInvokeInteractiveUI и EapHostAuthenticatorInvokeConfigUI должны вызываться в потоках, инициализированных com для STA. Это можно сделать, вызвав COM API CoInitialize; когда запрашивающий завершает работу с потоком STA CoUninitialize , необходимо вызвать перед выходом.
Как EAPHost экспортирует материал ключей?
Методы EAPHost EAP экспортируют ключи главного сеанса (MSK) в виде ключей microsoft point-to-point Encryption (MPPE) для запрашивающих. Дополнительный материал ключей, например парные главные ключи (PMK), может быть создан просителю с помощью MSK. Чтобы методы могли создавать любые другие ключи во время проверки подлинности, методы могут предоставлять эти ключи в качестве атрибутов конкретного поставщика запрашивающим.
Что такое расширенный главный ключ сеанса (EMSK)?
EMSK — это дополнительный материал ключей, экспортируемый методом EAP. ДЛИНА EMSK составляет не менее 64 октетов. EMSK совместно используется клиентом EAP и сервером, но не используется для проверки подлинности или других сторонних поставщиков. В настоящее время EMSK зарезервирована для использования в будущем. Дополнительные сведения см. в разделе Требования к методу EAP протокола расширенной проверки подлинности для беспроводных локальных сетей.
Когда метод использует или создает атрибут?
Если метод EAP создает атрибуты или EMSK, запрашивающий будет использовать атрибуты. Как правило, атрибуты, используемые запрашивающими, являются ключами. Потребляемые атрибуты: eatPeerId, eatServerId, eatMethodId, eatEMSK и eatCredentialsChanged. Дополнительные сведения см. в разделе EAP_ATTRIBUTE_TYPE. Метод EAP может экспортировать дополнительные материалы EMSK для конкретного приложения, например:
- Идентификатор сеанса
- [Защита доступа к сети] (/windows/desktop/NAP/network-access-protection-start-page) (NAP)
Какие атрибуты использует 802.1X?
Собственный беспроводной запрашивающий 802.1X будет использовать следующие атрибуты проверки подлинности EAPHost:
- Уведомление об изменении пароля
- Ключи отправки и получения шифрования "точка — точка" (MPPE). VendorId/VendorType = 331/16 и 311/1
Ключи MPPE — это ключи, созданные в конце успешной проверки подлинности как одноранговым, так и аутентификатором. Эти ключи используются 802.1X и сервером сетевого доступа (NAS) для шифрования и расшифровки пакетов, которые отправляются и получаются.
Какова цель флага EAP_PEER_FLAG_GUEST_ACCESS в EAPHost?
Если этот флаг установлен в EAPHostPeerBeginSession, EAPHost интерпретирует его как запрос на авторизацию гостя и возвращает ответ идентификатора NULL , который затем передается запрашиваемой и возвращается серверу EAP.
Как запрашивающий запрашивает проверку подлинности компьютера?
Проверка подлинности компьютера запрашивается путем установки флага EAP_FLAG_MACHINE_AUTH .
Как запрашивающий запрашивает проверку подлинности пользователя?
Проверка подлинности пользователя запрашивается без установки флага EAP_FLAG_MACHINE_AUTH .
Когда следует использовать "EapHostPeerFreeErrorMemory" вместо функции EapHostFreeEapError?
Функция EapHostPeerFreeErrorMemory используется только для освобождения EAP_ERROR структур, возвращаемых API конфигурации EAPHost. API конфигурации EAPHost определяются в EapHostPeerConfigApis.h. В отличие от этого, функция EapHostPeerFreeEapError используется для освобождения EAP_ERROR структур, возвращаемых API среды выполнения EAPHost. API среды выполнения EAPHost определяются в EapPApis.h. Никогда не используйте версию API во время выполнения с версией конфигурации API; это может привести к непредвиденным результатам.
Я реализовал свой пользовательский интерфейс в том же потоке, который используется для обработки сеанса проверки подлинности EAP для запрашивающего. После создания интерактивного диалогового окна пользовательского интерфейса для получения учетных данных или других данных, введенных пользователем, следующий вызов EAPHost однорангового метода EAP завершается ошибкой "ERROR_OBJECT_DISCONNECTED". Почему это произошло и как ее устранить?
Хотя клиентские API EAPHost являются API-интерфейсами стиля C, эти API C являются всего лишь оболочками соответствующих API COM. API-интерфейсы в стиле C выполняются в многопоточной com-среде. Код пользовательского интерфейса обычно выполняется в модели потока квартиры. Так как модели двух потоков конфликтуют друг с другом, не выполняйте код пользовательского интерфейса в одном потоке, который обрабатывает проверку подлинности EAP.
Почему API EapHostPeerBeginSession принимает указатель функции обратного вызова NotificationHandler в качестве параметра?
NotificationHandler — это механизм, с помощью которого запрашивающий уведомляется о том, что он должен повторно пройти проверку подлинности. Существует несколько сценариев, в которых запрашивающий требуется повторно пройти проверку подлинности, включая проверку подлинности с помощью защиты доступа к сети (NAP).
Какова цель параметра pConnectionId в API EapHostPeerBeginSession?
pConnectionId — это указатель на значение GUID, определенное запрашивающей стороны, которое используется для идентификации сетевого подключения, принадлежащего запрашивающей. При вызове функции обратного вызова NotificationHandler этот GUID передается для идентификации сетевого подключения, которое запрашивающий будет использовать для запросов повторной проверки подлинности.
Разделы справки знаете, изменилось ли состояние карантина?
Пользователь получит визуальное уведомление об изменении состояния карантина, только если в системе зарегистрирован хотя бы один интерфейс клиента защиты доступа к сети (NAP) карантина (QEC). Если это так, при попытке повторной проверки подлинности пользователь будет уведомлен об изменении состояния карантина во всплывающем окне.
Разделы справки знать, есть ли в системе зарегистрированный интерфейс nap QEC?
Откройте окно с повышенными привилегиями и выполните следующую команду netsh: "netsh nap client show state". Дополнительные сведения см. в разделе Команды Netsh.
Если запрашивающий выполняет повторную проверку подлинности, какой идентификатор подключения должен использовать QEC во время повторной проверки подлинности?
QEC должен использовать тот же идентификатор подключения, который использовался для предыдущего сеанса.
Существует только один запрашивающий метод EAPHost для отображения диалоговых окон пользовательского интерфейса, но методы EAP имеют несколько типов вызовов, относящихся к пользовательскому интерфейсу. Какой метод следует вызывать запрашивающей при получении кода действия "EapHostPeerResponseInvokeUI", указывающего, что запрашивающий должен отображать диалоговое окно пользовательского интерфейса?
Пользователь не требует никаких действий, так как EAPHost знает, какую функцию метода следует вызвать. Например, когда возвращается код действия EapHostPeerResponseInvokeUI , запрашивающий вызывает эти три функции в следующем порядке: EapHostPeerGetUIContext, EapHostPeerInvokeInteractiveUI и EapHostPeerSetUIContext.
В чем разница между большим двоичным объектом учетных данных и большим двоичным объектом конфигурации?
Большой двоичный объект учетных данных содержит только данные пользователя, такие как имя пользователя, пароль и ПИН-код. Большой двоичный объект конфигурации содержит параметры, управляющие поведением метода .
Можно ли включить трассировку на стороне клиента EAPHost?
Да. Дополнительные сведения см. в разделе Включение трассировки.