我正在尝试设置freeradius服务以允许针对https api进行身份验证。我有它适用于大多数Android设备,甚至我的Mac书专业工作。但是,当我们尝试使用iOS设备(iPad,iPhone)时,内部隧道无法获取用户密码字段。
所以目前的设置是EAP - > TTLS - >自定义身份验证
eap.conf ttls section
ttls {
default_eap_type = md5
copy_request_to_tunnel = yes
use_tunneled_reply = yes
virtual_server = "inner-tunnel"
}
内部隧道自定义身份验证
authorize {
...
update control {
Auth-Type := `/usr/local/bin/admin_portal.py %{User-Name} '%{User-Password}' %{Calling-Station-Id}`,
Fall-Through = Yes
}
}
当我在调试模式下运行时,我得到以下输出
expand: %{User-Name} -> user@somedomain.com
expand: '%{User-Password}' -> ''
expand: %{Calling-Station-Id} -> 01-23-45-67-89-ab
但是,当我使用非iOS设备时,会填充密码。
任何帮助将不胜感激。 谢谢。
答案 0 :(得分:1)
您需要一个TTLS内部方法,以明确方式发送密码。最常见的方法是TTLS-PAP。
如果请求者使用TTLS-PAP进行身份验证,则代理请求(到内部隧道)将包含User-Password属性,其中包含用户输入(或缓存)的请求者的值。
以下是使用Apple Configurator设置配置文件的示例。