在802.1X接入方式下对用户接入进行强制门户认证的方法 【发明领域】
本发明涉及数据通信网络中所使用的接入认证方法,特别涉及在802.1X接入方式下对用户接入进行强制门户认证的方法。
背景技术
在宽带接入网中,需要对用户的接入进行认证。目前主要有WEB(环球网)认证方式,PPPOE(以太网点对点协议)认证方式以及802.1X接入认证方式。
其中,WEB认证方式可以在WEB认证网页上向用户推出运营商的宣传页面,从而实现对运营商的宣传。PPPOE的接入认证方式则是在用户认证通过后通过PPPOE协议中的PADM(PPPOE有效发现消息)报文来向用户推出运营商的宣传页面。但是802.1X接入认证方式却无法像WEB认证方式或PPPOE的接入认证方式那样在用户的认证过程中或认证之后向用户推出运营商的宣传页面。
【发明内容】
因此,为了克服802.1X接入认证方式的这种缺陷,本发明提出了一种在802.1X接入方式下对用户接入进行强制门户认证的方法。该方法首先对现有的EAP(可扩展认证协议)协议进行扩充,增加了EAP-URL(统一资源定位符)地报文类型。在此基础上,根据本发明的在802.1X接入方式下对用户接入进行强制门户认证的方法包括如下步骤:由接入控制器(AC)接收用户的上线请求报文;认证用户的合法性;根据认证是否成功决定是否允许该用户上线;向认证成功的用户发送EAP-URL报文。
在上述方法中,认证用户合法性的步骤包括:当用户收到AC的EAP-Request/Identity报文时,便发送EAP-Response/Identity报文进行应答;AC收到用户的EAP-Response/Identity应答报文后就提取报文中的用户名进行合法性认证;如果认证失败就拒绝该用户上线,发送EAP-Failure报文,通知用户接入失败;如果认证成功就对用户名进行保存,同时向用户发送请求用户密码的报文EAP-Request/Challenge;用户收到该请求报文后,把用户密码发送给AC;对收到的用户密码进行认证;根据认证结果,在认证失败时用EAP-Failure报文通知用户并拒绝其上线,或者在认证成功时用EAP-Success通知用户并使用户上线。
在本发明的一种实施例中,发送用户密码的步骤包括:根据EAP-Request/Challenge中的challenge和报文ID和密码进行MD5加密;通过EAP-Response/Challenge把加密的密码发送给AC。
在本发明的一种实施例中,对收到的用户密码进行认证是在AC本地进行,或者是把用户名和密码封装在标准的Radius(远程拨号用户认证服务)协议中送到远端的远程拨号用户认证服务器中进行认证。
在本发明的一种实施例中,还可包括,用户收到EAP-Success报文后就使内部状态机跃迁进入稳态;在收到EAP-URL报文时,根据报文中的URL进行Internet访问。
根据本发明,通过对EAP协议的扩展,实现本发终接802.1X的强制Portal,从而有效地扩充了现有802.1X业务,可以实现更为有效的业务承载。。
【附图说明】
通过详细文字说明并结合以下附图,本发明的上述目的、特征及优点将变得更加易于理解,其中:
图1是说明现有EAP协议的示意图;
图2是本发明的优选实施方式的流程图。
【具体实施方式】
图1示意性地说明了现有EAP协议。参考图1,其中的各个域及其含义和取值如下:
EAPOL Flag:是局域网承载的可扩展认证协议的标志,其值为0x888E
Version:版本号,其值为0x01
Packet Type:包类型,其取值及含义为
0 EAP-包
1 EAPOL-开始
2 EAPOL-登录拒绝
3 EAPOL-密码
4 EAPOL-封装-ASF-警告
Packet Body Length:该值域为两个字节,表明了EAPOL包的长度,包体包括DestMAC(宿MAC),SourMAC(源MAC),VLAN Tagged(虚拟局域网标签),Version(版本),Packet Type(包类型),Packet Body Length(包体长度)以及以后的所有数据。
Code:代码,其取值及含义为
1 请求
2 应答
3 成功
4 失败
Identifier:标识符,该域为一个字节,辅助进行应答和请求的匹配。
Length:长度,该域为两个字节,表明了EAP数据包的长度,EAP数据包包括Code,Identifier和Length以及Data等各域。超出Length域长度范围的字节应该视为数据链路层的填充(padding)),在接收时应该被忽略掉。
Data:数据,包括Type(类型)和Type-Data(类型数据)两部分。Data域为0个或更多个字节。在成功/失败时Data域为0个字节,即不含Data域;在请求/应答时,含Data域,其中的Type类型如下:
1 Identity(标识)
2 Notification(通知)
3 Nak(Response only)(仅应答)
5 One-Time Password(OTP)(RFC1938)(一次密码)
6 Generic Token Card(通用令牌卡)
18 SIM
为了实现在802.1X用户上线后的强制Portal功能,必须对现有的EAP协议进行扩充。同时,要求客户端支持扩充协议。
对EAP协议的扩充主要是对Data域进行扩充,增加一个报文类型:
Data类型值 Data类型名称
200 EAP-URL
根据上面协议的描述,给EAP URL的数据长度范围为255字节。该报文和Notification报文相似,不影响协议状态机的变迁。这是由于EAP URL的数据范围是根据具体的实际情况定义出来的,该报文只是通知客户端进行一些Internet访问等一些动作,不进行客户端状态机的迁移。
下面结合图2具体说明本发明优选实施方式的处理流程。
首先,用户通过支持上述扩展协议的802.1X拨号器,输入合法的用户名和密码后请求连接。
在这种情况下,客户端首先发出EAPOL-Start组播报文域AC来建立链接。AC收到用户的建立请求报文就为用户建立连接表项,并建立EAP-Request/Identity报文,在该报文建立成功后向该请求连接的用户发送,以请求用户名。
用户在收到AC的EAP-Request/Identity报文后,发送EAP-Response/Identity报文进行应答。
AC收到用户对EAP-Response/Identity的应答报文后,就提取报文中的用户名进行合法性的认证,如果认证不成功,即判断用户名为非法,就对该用户予以拒绝,发送EAP-Failure报文通知用户接入失败;如果认证成功,即判断用户名为合法,就对用户名进行保存,同时向用户发送请求用户密码的报文EAP-Request/Challenge。
用户在收到该请求报文后就根据EAP-Request/Challenge中的Challenge(Challenge是服务器产生的随机字)和报文ID以及密码进行MD5加密。然后通过EAP-Response/Challenge把加密的密码发送给AC。MD5加密是不可逆的,在加密时把用户的“密码、收到报文的ID、以及Challenge”运用一定的计算法则产生加密密码,使用户密码不被窃取。MD5是一种常规的加密方法,因此本文中不再详细说明。
上述用户名和密码的认证是分两步进行的,即先获取用户名再获取密码,然后进行认证。
AC在收到用户的密码响应EAP-Request/Challenge后,就从该报文中解析出密码,对用户密码的认证可以在AC本地进行,也可以由AC把用户名和密码封装在标准的Radius协议中送到远端的远程拨号用户认证服务器中进行认证。如果认证失败,就由AC向用户发送EAP-Failure报文,通知用户认证失败并拒绝用户上线。如果认证成功AC就向用户发送EAP-Success报文,通知用户上线。在这种情况下,AC还会根据配置向用户发送EAP-URL报文。该配置是指用户认证通过后是否发送EAP-URL进行自动的门户认证服务,如果配置了就发送,否则不发送。
最后,当用户收到EAP-Success报文就进行内部状态机的跃迁,进入稳态。然后在收到EAP-URL报文时,就可根据报文中的URL访问因特网,在本例中就是访问新浪网。
AC与不同的运营商相关,但是对一个ISP只能增加一个URL。在客户端支持的情况下,在用户认证通过而向用户发送EAP-URL后,客户端就可以自动打开一个IE,访问该URL对应的网站。
需要说明的是,上述对本发明的实施方式的说明是以本地终结802.1X为例的,即设备在解析802.1x报文通过后获取其中的用户信息,把获取到的信息封装在标准的Radius报文中,发送到认证服务器进行认证,然后释放收到的802.1x报文。但是本发明显然也可用于透传(或称续传)方式的802.1X。在透传方式下,本地AC不对802.1x报文进行解析,而是把它封装在扩展的Radius报文中发送到认证服务器进行认证处理。在透传方式的802.X下实现本发明方法的具体过程和上述终结情况下是相同的。认证服务器配置了EAP-URL,并在认证授权成功后把该值通过EAP的该扩展属性发送给AC,AC再根据用户的认证情况决定是否把该URL发送给用户。