一、需求背景:
客户有一个OpenPortal认证计费平台,用户上网需要通过OpenPortal的认证,客户想让AC获取到OpenPortal认证信息,从而能够上网行为审计及权限控制能够对应到人;因此需要与OpenPortal认证平台对接做单点登录认证。
二、实现过程: 1、OpenPortal不像城市热点平台,与AC有专门的接口进行对接,所以需要先了解OpenPortal认证原理,通过了解OpenPortal主要通过标准radius协议实现认证计费,用户上网会向radius服务器发起认证请求,所以确定可以使用radius单点登录是可以实现以上需求的。
2、要实现radius单点登录,重点就是需要让AC能够接收到radius服务器的认证数据包,主要有三种实现方式: 2.1. 用户和RADIUS服务器认证交互的报文经过AC设备(如果是网桥部署或者路由部署,很少有这种环境) 2.2. 用户和RADIUS服务器认证交互的报文不经过AC设备时,将用户和RADIUS服务器通信数据(认证和计费报文的数据包里面携带用户名和用户IP的数据流量)镜像到AC设备的一个空闲口上,并开启监听这个空闲口。(通用办法,适合大部分部署场景) 2.3. RADIUS服务器主动将用户认证或者计费包发送给AC设备(需要看认证服务器是否支持将radius数据包进行透传给AC)
3、经过了解,确认OpenPortal支持通过代理中继的方式将认证数据包透传给AC
三、配置过程: 1、OpenPortal认证计费平台配置,配置代理IP,中继发到AC的UDP 1813; 2、AC配置 2.1. 配置radius服务器对接 2.2.配置radius单点登录,添加radius服务器列表 2.3.配置认证策略
四、问题排障 1、以上配置完,本以为应该可以实现单点登录了,但入网用户管理中,发现还是以不需要认证上线,单点登录失败。 2、通过抓包查看,源是radius服务器,目的是AC,并且数据包中也携带了我们需要的字段,只要有这三个字段,就可以在AC完成单点登录的。
3、但是为什么没有成功单点登录呢??? 根据数据包来看,目前场景是属于 当前radius数据包是认证服务器直接发送给AC的,而不是普通的终端发送认证或计费数据包给radius服务器,需要把AC当成radius服务器,设备才会去解析radius数据包,所以需要将AC的IP地址也加入到radius服务器列表,才会进入驱动层进行解析。
五、最终测试结果: 将AC的IP地址加入到radius服务器列表后,单点登录成功。 |