更新时间:2024-04-16
本文基于NAC3.6.3 版本编写
1、认证接口描述
1.1认证原理
认证接口实质上为一个网页链接,当终端连接 wifi,请求该连接,即可通过认证。如图 1-1 原理图所示,当无线用户连上 wifi 后需要上网,该终端发起的任何上网请求都会被重 定向至客户自定义的认证系统。通过该自定义系统 portal 页来引导用户做出相应行为(比 如下载 APP、或者在 APP 内登陆等等),判断出该终端已经完成了指定的动作之后, 客户自
定义系统立即调用我司认证接口,通过认证并放通用户上网。
注意: 该接口是复用的微信认证接口, 故在实际配置过程中, 需要按照微信认证配置流
程进行。

图 1- 1
1.2认证接口
http://2.2.2.1/wx.html?href=‘.$encrypt.’&id=$id
下边是encrypt的构造过程
$time = date(‘Y-m-d-H-i-s’,time());
$key = “sangfor”;
$str = “n=”.$nickname.“&u=”.$openid.“&t=”.$time;
$len = strlen($str);
$str_str = $str .“&l=”.$len;
$encrypt_str = $this- >mc_encrypt($str_str,$key);
$encrypt = bin2hex($encrypt_str);
$id
time:时间戳, 2.0 正式版本后可以填充一个固定的,后台不再校验
key:加密密钥,不要加密可忽略
str:这里openid,nickname表示微信用户个人信息
len:有效信息长度
str_str:长度和有效内容合并成统一字符串
encrypt_str :aes加密,也可以不加密,不加密直接用bin2hex转为16进制即即可
encrypt:二进制转为16进制
id:微信公众平台原始id,可随意填充
注意: 该接口需要客户研发在认证系统(APP 下载页面,或者 APP 登陆等 页面) 中调用。微信公众平台 id 仅作校验使用,可任意配置, 需要保证跟控制
器中微信公众平台原始 id一致。
1.3配置要点
1、认证前放通
在认证之前,需要将用户的所有上网请求转发至客户自有的系统(APP 下载页面或者注
册页面等等), 由客户的自定义页面去引导终端做出某种行为。配置重点如下:
• • 认证前角色,DNS
• 认证前角色或全局放通客户自定义页面(例如 APP 下载页面等)
• 修改我司默认终端认证页面,使其指向客户自定义页面(例如 APP 下载页等)
2、接口联动
需要预先在控制器中配置微信公众账号, 且该公众账号的原始 ID 与认证接口中的原始
ID 一致。
配置微信公众平台:原始 ID 与认证接口原始 ID 一致
配置微信认证 wifi:开放式+web(微信认证)
配置如下图,详情见微信认证配置
2、控制器设置
2.1预置条件
• • 微信原始 id:12345678(可任意, 与接口中一致即可)
• • SSID 名称:APP-test
• • 客户 APP 下载页面:www.app.com
• • 认证接口:http://2.2.2.1/wx.html?href=‘.$encrypt.’&id=12345678 。客户研
发自行处理。
2.2配置 wifi 信号
配置如下图,详情见微信认证配置。


2.3配置微信公众账号
注意: 此处的微信原始 ID 需要与接口的原始 id一致

2.4全局排除
需要在全局排除地址中将 APP 下载页面排除, 此处需要排除的是www.app.com 。
2.4.1下载终端页面
在【认证授权】 ->【终端页面】 ->【下载】,将页面模板下载下来

2.4.3上传修改后的页面
将修改好的页面文件夹直接压缩成 zip 格式,上传至控制器, 并命名为 apptest。

2.4.4应用认证页面
重复 3.1 步骤, 将认证页面替换成 apptest,确认提交即可

3、注意事项
1、该接口是复用的微信认证接口,故在实际配置过程中,需要按照微信认证配置流程进行。
2、该接口需要客户研发在认证系统(APP 下载页面,或者 APP 登陆等页面)中调用,微信 公众平台 id 仅作校验使用,可任意配置, 需要保证跟控制器中微信公众平台原始 id 一致。
3、配置完成后,需要修改认证页面。