IKEv2 LDAP 认证
IKEv2 LDAP 认证
IKEv2 使用 EAP 执行用户认证。FortiClient 默认使用 EAP-MSCHAPv2,但 Active Directory 等常见 LDAP 服务器不能通过常规 LDAP Bind 直接验证 EAP-MSCHAPv2 的质询响应。FortiClient 7.4.3 及之后版本支持 EAP-TTLS/PAP,可以将原始密码安全封装在 TLS 隧道中,由 FortiGate 对 LDAP 服务器执行常规 Bind 认证。
LDAP 用户认证原本主要配合 IKEv1 XAuth 使用。FortiClient 7.4.4 移除 IKEv1 支持后,应使用 IKEv2 EAP-TTLS/PAP 实现 LDAP 用户认证。EAP-MSCHAPv2 仍不能直接替代 LDAP Bind。
相关信息
该认证路径和 EAP 方法的选择请参考 VPN → IPSec VPN → 通用IPSec配置 → 一阶段配置 → EAP → EAP 认证章节。
EAP-MSCHAPv2 的 LDAP 限制
当客户端使用 EAP-MSCHAPv2 或内部方法为 EAP-MSCHAPv2 的 PEAP 时,FortiGate 无法取得常规 LDAP Bind 所需的明文密码,只能尝试从用户条目读取以下任一密码属性并在本地验证响应:
ha1PassworduserPasswordlmPasswordntPasswordsambaLmPassword

Active Directory 等常见 LDAP 实现默认不会返回这些密码或哈希属性。因此,即使用户名能够被搜索到,EAP-MSCHAPv2 认证仍会失败。

如果目录管理员为用户设置 userPassword,Active Directory Attribute Editor 需要选择 Hexadecimal、Binary、Decimal 或 Octal 格式之一。例如文本 Fortinet12 对应的十六进制值为 46 6F 72 74 69 6E 65 74 31 32。FortiGate 使用目录中保存的该值验证用户,不是对 Active Directory 执行常规明文密码 Bind。
重要
不建议为了兼容 EAP-MSCHAPv2 而在目录中增加可读取的密码属性。这会改变目录的凭据暴露面和安全模型。FortiClient 7.4.3 及之后版本应优先改用 EAP-TTLS/PAP。必须使用 EAP-MSCHAPv2 时,可部署已加入 AD 域的 FortiAuthenticator 作为 RADIUS 服务器。
EAP-TTLS/PAP 配置方法
FortiGate 配置
在 FortiGate 上配置 LDAP 服务器,将 LDAP 用户或 LDAP 匹配条件加入拨号 VPN 使用的用户组。
在 IKEv2 拨号 VPN 一阶段配置中启用 EAP,并指定该用户组。
config vpn ipsec phase1-interface edit <tunnel> set type dynamic set ike-version 2 set peertype any set eap enable set eap-identity send-request set authusrgrp <ldap-user-group> next end
FortiClient 配置选择
FortiClient 需要将 EAP Authentication Method 设置为 EAP-TTLS,并使用 PAP 作为内部认证方法。具体方法取决于 FortiClient 是否由 EMS 管理:
- EMS 7.4.4 及之后版本:进入“Endpoint Profiles → Remote Access”,新建或编辑 Profile,再编辑 IPsec VPN 隧道,在“Basic Settings → Phase 1”中将 EAP Authentication Method 设置为 EAP-TTLS。
- EMS 7.4.3:该版本只能在 Profile 的 XML 配置中设置
eap_method,不能通过 GUI 选择 EAP-TTLS。使用 EMS 下发 EAP 方法需要有效的 FortiClient EMS 订阅。 - VPN-only 未授权客户端:先在 FortiClient 中创建与 FortiGate 拨号配置匹配的 IKEv2 隧道,再导出配置备份、手动编辑 XML 并导回客户端。
EMS XML 配置
EMS 7.4.3 在“Endpoint Profiles → Remote Access”中打开 Profile 的 XML 编辑器,在目标 <connection> 的 <ike_settings> 中加入 <eap_method>2</eap_method>:
<forticlient_configuration>
<vpn>
<ipsecvpn>
<connections>
<connection>
<name>IKEv2-LDAP</name>
<ike_settings>
<authentication_method>Preshared Key</authentication_method>
<eap_method>2</eap_method>
</ike_settings>
</connection>
</connections>
</ipsecvpn>
</vpn>
</forticlient_configuration><eap_method>1</eap_method>:使用 EAP-MSCHAPv2,也是默认值。<eap_method>2</eap_method>:使用 EAP-TTLS/PAP。
VPN-only 客户端 XML 配置
在 FortiClient 中进入 Settings,单击 Backup 导出
.conf配置备份。使用文本编辑器打开配置文件,定位目标 IPsec 隧道:
<vpn> <ipsecvpn> <connections> <connection> <name>IKEv2-LDAP</name> <ike_settings> ... </ike_settings> </connection> </connections> </ipsecvpn> </vpn>在该隧道的
<ike_settings>中加入<eap_method>2</eap_method>,并将修改后的内容另存为新的配置文件。FortiClient 配置被锁定时先解锁客户端,再进入 Settings,单击 Restore 导入修改后的配置文件。
打开目标 IPsec VPN 隧道并发起连接。
重要
FortiClient 7.4 不会把当前 EAP Method 保存到配置备份。即使备份来自已经启用 EAP-TTLS 的客户端,将该备份直接还原到另一台 FortiClient 时也不会自动启用 EAP-TTLS。每次用于迁移或还原的配置文件都需要确认已经显式包含 <eap_method>2</eap_method>。
相关信息
FortiClient iOS 和 Android 当前不支持 EAP-TTLS/PAP。FortiClient Windows 从 7.4.3 开始支持 EAP-TTLS。EAP-TTLS 与 MFA 组合至少需要 FortiClient Windows 7.4.4。
连接验证
确认客户端信任 EAP-TTLS 服务端证书。
相关信息
FortiGate 直接连接 LDAP 时,EAP-TTLS 终止在 FortiGate,使用
config system global中的wifi-certificate。证书排查方法请参考 VPN → IPSec VPN → 通用IPSec配置 → 一阶段配置 → EAP → EAP-TTLS 证书错误章节。发起连接并确认 LDAP Bind 成功。
相关信息
使用 MFA 时,FortiClient Windows 至少需要 7.4.4,具体限制请参考 VPN → IPSec VPN → 通用IPSec配置 → 一阶段配置 → EAP → IKEv2 EAP-TTLS 双因素认证章节。
验证 EAP 方法
在 Windows 注册表编辑器中查看目标隧道的 EAP 方法:
HKEY_LOCAL_MACHINE\SOFTWARE\Fortinet\FortiClient\IPSEC\Tunnels\<TunnelName>\P1\eap_method- 值为
1:EAP-MSCHAPv2。 - 值为
2:EAP-TTLS。
- 值为
连接后打开以下 FortiClient 日志:
C:\Program Files\Fortinet\FortiClient\logs\trace\FortiIKE_1.logEAP-TTLS/PAP 生效时,日志中应出现方法
21 (TTLS)、内部方法PAP以及认证成功信息:EAP-TTLS method loaded EAP: Initialize selected EAP method: vendor 0 method 21 (TTLS) EAP-TTLS: Phase2 type: PAP authentication succeeded
排查方法
开启 IKE、FNBAM 和 EAP Proxy 调试,然后重新发起一次 VPN 连接。
diagnose debug console timestamp enable diagnose debug application ike -1 diagnose debug application fnbamd -1 diagnose debug application eap_proxy -1 diagnose debug enable检查 EAP 方法是否为 EAP-TTLS、TLS 握手是否成功,以及 FNBAM 是否向正确的 LDAP 服务器执行用户搜索和 Bind。
如果用户认证已经完成,但客户端显示
IKE message other than DPD retransmits to maximum,检查 FortiClient EMS 或备份配置中的 IKE 分片是否启用:<enable_ike_fragmentation>1</enable_ike_fragmentation>重要
FortiClient 与 FortiGate 两端的 IKE 分片设置需要保持一致。
排查完成后关闭调试并清理过滤条件。
diagnose debug disable diagnose debug reset diagnose vpn ike log filter clear