为了满足广告推送,微信认证等需求,商场、酒店等使用企业路由器中的Portal认证功能时需配合第三方认证系统,包括提供Portal认证页面的WEB服务器、认证服务器等系列设备。
本文介绍外部WEB服务器与企业路由器认证接口对接的相关规范要求。
实现流程:
第一步:客户端连接DUT的网络,访问任意http外网网页
客户端连接上网络后,打开浏览器访问任意http外网网页,触发portal认证。
第二步:DUT拦截无线客户端访问外网的GET数据包,并重定向到WEB服务器
没有通过认证的客户端发往外网的GET数据包会被DUT拦截,并且TL-ER6520G会向客户端返回一条重定向条目及若干指定参数(假设WEB服务器域名为www.abc.com), 重定向条目为:
http://www.abc.com/?interface_mode=true&pagetype=xx&staIp=xx&staMac=xx&url=xx(接口模式)
http://www.abc.com/ssid_mode=true&pagetype=xx&staIp=xx&staMac=xx&apMac=xxx&apIp=xx&url=xx (SSID模式)
其中重定向连接之后附加的参数在后续提交用户名密码请求时一并加上。
注意:该WEB服务器的URL地址需要在DUT设置免认证策略,若WEB服务器端口为非80端口,还需要将WEB服务器的端口设置免认证策略。
第三步:客户端访问WEB服务器
客户端根据第二步返回的重定向条目与WEB服务器建立连接。
第四步:WEB服务器向客户端返回认证页面
WEB服务器向无线终端返回认证登录页面,针对该认证登录页面,需满足以下规范:
[1] 认证页面必须有一个Form:
action= http://LAN_IP:Port/portal/auth/?interface_mode=true&pagetype=xx&authtype=5&interface=xx&staIp=xx&staMac=xx&username=xx&password=xx (接口模式)
action= http://LAN_IP:Port/portal/auth/?ssid_mode=true&pagetype=xx&authtype=5&vlan=4095&staIp=xx&staMac=xx&apMac=xxx&apIp=xx&username=xx&password=xx(SSID模式)
其中LAN_IP为当前DUT LAN口的IP地址,Port为Portal服务端口,authtype为固定值5表示远程Portal认证,username为用户输入的用户名,password为用户输入的密码,其余参数的值和之前的重定向页面传递的参数保持一致;
[2] 认证登录页面以Get方式提交Form表单;
[3] 认证登录页面必须包含以下参数:
参数 | 说明 |
username | 用户名 |
password | 密码 |
第五步:客户端向DUT提交用户名和密码
无线终端在认证登录页面填写用户名和密码后点击 登录 按钮,就以GET的方式将username、password等参数提交给DUT。
第六步: DUT向认证服务器提交认证信息
DUT在获取客户端提交的信息之后,确定需要进行认证的设备,然后把所有的参数提交给认证服务器进行认证。
第七步: 认证服务器向DUT返回认证结果
认证服务器根据DUT提交的信息判断用户是否通过认证,并且向DUT返回认证结果。
第八步: DUT向客户端返回认证结果
DUT根据认证服务器返回来的结果向无线终端返回相应的认证结果,若认证成功,DUT则根据之前获取的参数信息对相应设备的上网数据给予放行,返回值ErroCode的常用含义:
ErrorCode参数 | 说明 |
0 | 初始化 |
1 | 刷新中 |
2 | 认证错误,需访问failUrl |
3 | 认证超时 |
4 | 认证黑名单 |
5 | 认证过期 |
6 | 非认证时段 |
7 | 超过上限 |
8 | 服务器错误 |
9 | 认证成功,如果有successUrl则跳转至successUrl |
10 | 登出 |
11 | MAC地址冲突 |
12 | 认证模式错误 |
Demo页面下载请点击此处:Demo页面
路由器接口模式remote_portal_iface.zip