EAP 方法常见问题解答

本主题提供有关 EAP 方法创作的常见编程问题的解答。

什么是“配置数据”?

术语“配置数据”和“连接数据”是同义词。

什么是“连接数据”?

data“是一个特定于 EAP 方法的不透明 BLOB,其中包含方法的配置信息。 此连接数据在最初配置时由 方法创建,并且永远不会由 EAP 方法本身以外的任何其他组件解释或修改。

什么是“凭据”?

术语“凭据”和“用户数据”是同义词。

什么是“用户数据”?

data“是一个特定于 EAP 方法的不透明 BLOB,其中包含用户凭据数据,例如用户名和密码。 除 EAP 方法本身外,任何其他组件都不会解释或修改用户数据。 术语“用户数据”和“凭据”是同义词。

什么是“EAP 属性”?

“EAP 属性”是包含预先确定的数据类型的数据结构。 属性用于在 EAP 方法和请求方之间,或在 EAP 方法和验证器之间传达信息。 EAP 方法的对等和验证器实现可以通过网络交换这些属性。

配置 API 和运行时 API 能否出现在相同的方法 DLL 中?

是的。 请务必在为 EAP 方法本身配置注册表项时指定区别。 配置路径和对等路径必须相同。

配置 API 和运行时 API 能否显示在单独的方法 DLL 中?

是的。 请务必在为 EAP 方法本身配置注册表项时指定区别。 配置和对等路径必须指向正确的 DLL。

如何实现安装 EAP 方法?

若要安装 EAP 方法,必须先在 EAP 方法 DLL 本身中实现 DllRegisterServerDllUnregisterServer 。 之后,使用 regsvr32.exe 安装和卸载 方法。 还必须设置相应的注册表项。 有关详细信息,请参阅 安装 EAP 方法

什么是带内网络访问保护 (NAP) 支持?

启用带内 NAP 支持后,NAP 数据包在 EAP 方法数据包内传输。 相比之下,启用带外 NAP 支持时,NAP Health 语句 (SoH) 交换通过 EAP 方法数据包内部以外的方式进行,NAP 生成的证书用于 EAP 方法身份验证。

是否可以为 EAP 方法启用带内 NAP 支持?

是的,可以启用 EAP 方法的带内 NAP 支持。 有关详细信息,请参阅 为 EAP 方法启用 In-Band NAP 支持

如何通过安全隧道 (EAP-FAST) 进行 EAP 灵活身份验证?

EAP-FAST 方案的工作方式如下。

  • 方法使用 方法 UI 在单一登录 (SSO) 处理密码更改。
  • 方法返回 [eatCredentialsChanged] (/windows/desktop/api/eaptypes/ne-eaptypes-eap_attribute_type) 属性。
  • 请求者向用户指示凭据已更改,并请求用户重新输入其凭据。
  • 请求者重新输入用户凭据,并将这些凭据发送到 方法。
有关 EAP-FAST 的详细信息,请参阅 [通过安全隧道进行 EAP 灵活身份验证] (https://go.microsoft.com/fwlink/p/?linkid=84010) (EAP-FAST) 。

什么是预共享密钥 (PSK) ?

一种传输和接收数字信号的方法,其中传输信号的相位会改变以传达信息。 EAPConfigInputPSK 输入字段包含用户的 EAP-FAST PSK。

什么是 WOW,它对 EAPHost 有什么关系?

Microsoft Windows-32-bit-On-Windows-64 位 (WOW) 是 64 位 Windows 中支持 32 位 x86 平台应用程序的操作系统组件。 通常,EAP 方法作者会定义某种形式的 C/C++ 结构,以封装配置数据、凭据数据和交互式 UI 数据。 为了避免 WOW 和其他方案中的不兼容,请务必确保数据结构在不同的处理器体系结构中以类似的方式对齐, (32 位和 64 位处理器) 。 通常,虚拟填充用于对齐字段,以便 32 位和 64 位处理器上的配置、凭据和交互式 UI 数据相同。

什么是“操作代码”,在什么条件下返回这些操作代码?

“操作代码”允许使用方法控制身份验证流,并且是状态机不可或缺的一部分。 它们是 EAP 方法返回的值,用于指示 EAPHost 应采取的下一个操作。 例如,操作代码可以向 EAPHost 指示 EAP 方法有一个数据包可供传输。 请求者遵守 EAP 方法返回的所有操作代码,但从不发布操作代码。有关详细信息,请参阅 EAP 对等请求方操作代码

方法何时返回“EapPeerMethodResponseActionDiscard”,此操作代码对 EAPHost 意味着什么?

EapPeerMethodResponseActionDiscard 由 EAP 方法返回,以向 EAPHost 指示它必须放弃提供给 方法的数据包。 具体而言, 方法已确定数据包无效。 EAPHost 然后等待下一个包。

方法何时返回“EapPeerMethodResponseActionSend”,此操作代码对 EAPHost 意味着什么?

EapPeerMethodResponseActionSend 由 EAP 方法返回,以向 EAPHost 指示 EAPHost 接收的下一个数据包必须发送到网络访问服务器 (NAS) 。

方法何时返回“EapPeerMethodResponseActionResult”,此操作代码对 EAPHost 意味着什么?

EapPeerMethodResponseActionResult 由 EAP 方法返回,以向 EAPHost 指示身份验证会话已结束,并且该会话的结果可用。

方法何时返回“EapPeerMethodResponseActionInvokeUI”,此操作代码对 EAPHost 意味着什么?

EapPeerMethodResponseActionInvokeUI 由 EAP 方法返回,以向 EAPHost 指示需要用户输入才能继续进行身份验证,并且必须显示用户界面对话框才能获取该输入。 获取用户输入数据后,EAPHost 可以使用更新的 UI 上下文数据再次调用 EAP 方法。

方法何时返回“EapPeerMethodResponseActionRespond”,此操作代码对 EAPHost 意味着什么?

EapPeerMethodResponseActionRespond 由 EAP 方法返回,以向 EAPHost 指示 EAP 方法具有可供 EAPHost 在身份验证期间使用的属性。 EAPHost 通过调用 EapPeerGetResponseAttributes 方法,然后调用 EapPeerSetResponseAttributes 方法获取属性。

方法何时返回“EapPeerMethodResponseActionNone”,此操作代码对 EAPHost 意味着什么?

EapPeerMethodResponseActionNone 由 EAP 方法返回,以向 EAPHost 指示目前不需要执行任何操作。

是否可以在验证器端启用跟踪?

是的。 有关详细信息,请参阅 启用跟踪