在很多需要快速交付或者考虑到兼容性的场合,一般没有RADIUS环境,或者用户已经有了CRM等基于数据库用户管理系统。那么使用HTTP的方式进行认证就是一种快速交付的手段。 FreeAC发布的固件支持三种认证方式,他们分别是: RADIUS认证,HTTP认证和本地认证(V-1.1.2后支持)。
1、HTTP认证请求
HTTP认证请求URL:http://httpsrv-ip:port?type= HTTP_AUTH nasip=xx.xx.xx.xx userip=xx.xx.xx.xx usermac=xx.xx.xx.xx.xx.xx usersn=32425 username=xx userpasswd=yy
1.1 字段说明:
Httpsrv-ip:port :认证服务器的IP地址和端口号;
Type : 消息类型(认证、开始记账、结束记账); Nasip : NAS设备的IP地址;
Userip : 认证用户的IP地址;
Usermac : 认证用户的MAC地址;
Username : 认证用户的用户名;
Userpasswd : 认证用户的密码;
2、HTTP认证结果
2.1 HTTP认证成功,返回的数据格式为JSON格式:
Code : 0 , // 认证成功
User :{ Username: “aaaaaa” // 用户名
Userip : “192.168.68.1”, // 用户IP
Usermac: “xx.xx.xx.xx.xx.xx”, // 用户MAC
Sessiontime : 1000000, // 可用在线时长
Ratedown :2000000, // 下载带宽
Rateup : 30000000, // 上传带宽
}

2.2 HTTP失败,返回的JSON格式数据为:
Code : 1 , // 认证失败
User :{
Username: “aaaaaa” // 用户名
Userip : “192.168.68.1”, // 用户IP
Usermac: “xx.xx.xx.xx.xx.xx”, // 用户MAC }

3 、HTTP记账
3.1 http记账的URL为:http://httpsrv-ip:port?type=acct wlannasip=xx.xx.xx.xx wlanuserip=xx.xx.xx.xx wlanusermac=00-0C-29-36-5B-6D username=xxx wlanusersn=58272319 session_time=0 in_gigawords=0 in_octets=0 out_gigawords=0 out_octets=0
3.2 字段说明:
Session_time : 用户在线时长;
In_gigawords : 下行字节数,高32位;
In_octets : 下行字节数,低32位;
Out_gigawords : 上行字节数,高32位;
Out_octets : 下行字节数,低32位;

3.3 离线
当NAC内核检测到用户离线时,通知用户态程序用户离线,用户空间接收到该消息报文后,组装停止计费报文向认证服务器发起请求。
3.3 下线
当内核程序接收到来自用户空间的踢用户下线的报文之后,将相应的用户踢下线,并通知用户空间用户已被踢下线,用户空间接收到该消息报文后,组装停止计费报文向认证服务器发起请求。