一、功能概述
Web认证是一种对用户访问网络的权限进行控制的身份认证方法,这种认证方法不需要用户安装专用的客户端认证软件,使用普通的浏览器软件就可以进行身份认证。
未认证用户使用浏览器上网时,网络设备会强制浏览器访问特定站点,也就是Web认证服务器,通常称为Portal服务器。用户无需认证即可访问Portal服务器上的服务,比如下载安全补丁、阅读公告信息等。当用户需要访问认证服务器以外的其它网络资源时,就必须通过浏览器在Portal服务器上进行身份认证,只有认证通过后才可以使用网络资源。
除了认证上的便利性之外,由于Portal服务器和用户的浏览器有页面交互,可以利用这个特性在Portal服务器页面放置一些广告、通知、业务链接等个性化的服务。
二、名词解析
HTTP拦截
HTTP拦截指网络设备将原本需要转发的HTTP报文拦截下来,不进行转发。这些HTTP报文是连接在网络设备下的用户的浏览器所发出的,但目的并不是网络设备本身。例如,某用户通过IE浏览器访问www.google.com,网络设备本应该将这些HTTP请求报文转发到网关的,但如果启动HTTP拦截,这些报文将不被转发。
HTTP拦截之后,网络设备需要将用户的HTTP连接请求转向自己,于是网络设备和用户之间将建立起连接会话。网络设备将利用HTTP重定向功能,将重定向页面推送给用户,用户的浏览器上将弹出一个页面,这个页面可以是认证页面,也可以是下载软件的链接等等。
在Web认证功能中,哪些用户所发出的到哪个目的端口的HTTP报文需要进行拦截,哪些不需要,都是可以设置的。一般地,未经过认证的用户发出的HTTP请求报文会被拦截,已通过认证的用户将不被拦截。HTTP拦截是Web认证功能的基础,一旦浏览器发出的HTTP报文被拦截,就会自动触发Web认证的过程。
HTTP重定向
根据HTTP协议规定,正常情况下,用户的浏览器发出HTTP GET或HEAD请求报文后,如果接收一方能够提供资源,则以200报文响应,如果本地不能提供资源,则可以使用302报文响应。在302响应报文中,提供了一个新的站点路径,用户收到响应后,可以向这个新的站点重新发出HTTP
GET或HEAD报文请求资源,这就是重定向。
HTTP重定向是Web认证的重要环节,是发生在HTTP拦截之后的,利用的就是HTTP协议中的302报文的特性。HTTP拦截过程将使得网络设备和用户之间建立起连接会话,随后用户将(本应发给其他站点的)HTTP
GET或HEAD报文发给网络设备,网络设备收到后,回应以302报文,并且在302报文中加入重定向页面的站点路径,这样用户将向这个站点路径重新发出请求,就会获取到重定向的页面。
WEB降噪
·
什么是WEB噪声?
WEB认证原理是路由器将用户上网的HTTP请求报文重定向到portal服务器,由portal给用户提供登录服务。实际环境中,存在大量非用户上网的HTTP报文,如后台软件自动更新服务、一些客户端和服务器的主动探测连接等,这些非实际用户的HTTP请求需要丢弃,避免对路由器和portal服务器不必要的处理开销。
·
路由器如何进行WEB降噪?
1)识别WEB与非WEB请求
基于HTTP报文的User-Agent字段进行轻量级应用识别,区分WEB和非WEB的HTTP请求报文,丢弃来自非WEB应用的HTTP报文。
2)延长单用户响应发送周期(仅支持CLI配置,默认关闭)
支持配置使能,限制路由器对用户在周期内的HTTP请求响应,对同一IP可选在1~5000ms范围内仅重定向一次,避免频繁响应。
web-auth redirect-interval-time
milliseconds
3)重定向发送报文限速(仅支持CLI配置,默认关闭)
支持配置使能,对路由器发送到重定向报文进行限速,可选1~2000PPS,避免eportal服务器过载。
web-auth control portal-name {
redirect-rate-limit num(pps)}
三、功能组件
Web认证的典型组网方式如下图所示,它由四个基本角色组成:认证客户端、NAS设备、Portal服务器和Radius服务器。
·
认证客户端
通常是一个浏览器,运行HTTP协议,用户通过浏览器上网时浏览器将发出HTTP请求。
·
NAS设备
设备接收Portal
Server发过来的用户认证信息,并向Radius Server发起认证请求,根据认证结果设置用户是否可以上网,同时向Portal Server反馈认证结果。NAS可以为接入设备、汇聚设备或者是出口设备。
·
Portal Server
提供Web认证的认证界面和相关操作。Portal
Server接受认证客户端发出的基于HTTP的认证请求,提取其中的账号信息,将此信息发送到接入设备,同时根据接入设备反馈的认证结果,通过页面反馈给用户。
·
Radius Server
提供基于radius协议的远程用户认证。
四、Web认证流程
1) 在认证之前,NAS设备将未认证用户发出的所有HTTP 请求都拦截下来,并重定向到Portal服务器去,这样在用户的浏览器上将弹出一个认证页面。
2) 在认证过程中,用户在认证页面上输入认证信息(用户名、口令、校验码等等)与Portal服务器交互。
3) Portal服务器使用portal协议将用户的认证信息发给NAS设备
4) NAS设备使用radius协议向Radius Server发起认证。认证结束后NAS设备使用portal协议将认证结果反馈给Portal服务器。
5) Portal服务器向用户返回页面,在客户端的认证页面上提示认证结果(成功或失败)。
认证流程图
认证原理图:
五、用户下线流程:
用户下线分两种类型,一种是设备端检测到用户下线,比如用户时长到达,流量用完,链路断开等;一种是portal服务器端发现用户下线,比如用户通过下线页面触发了下线申请等。
1) 用户主动点击页面上的下线按钮,选择下线,Portal服务器通告设备将用户下线。
2) NAS设备检测到终端低流量将用户下线,具体依赖所配置的低流量检测参数而定。
3) RADIUS服务器因为某种策略原因,将用户踢线,设备通告Portal服务器,Portal服务器向终端推送下线页面。