本文在分析RADIUS 协议原理基础上,给出了一种基于规则的RADIUS Server 的设计方案和实现策略,规则的引入可以很方便在规则配置中定义认证流程和属性逻辑运算,能够在不修改源代码的情况下,高效支持新的设备和新的业务。本RADIUS Server 实现已经在实际项目中得到验证。关键词:RADIUS;接入;AAA;规则;Javas cript RADIUS[1,2]远程用户拨号认证协议(Remote Authentication Dial In User Service)作为AAA 认证授权计费(Authentication Authorization Accounting)一种关键接口协议已经被广泛应用于窄带和宽带IP 认证计费领域,传统计费厂家均支持RADIUS 协议进行认证计费。对用户进行AAA 认证控制的实现过程为:接入客户端 <--> AAA Client(NAS/BRAS) <--> AAA Server(RADIUS Server) <--> 计费系统。 为了支持不同接入设备厂家提供的 NAS/BRAS,RADIUS 协议自身考虑了扩展性,即定义了厂家自定义属性,设备厂家可以定制自己的属性,用来完成自身用户认证控制。在窄带接入时期,非厂家自定义的公共属性基本可以满足业务发展需要,但随着电话或MAC 或端口绑定控制、带宽控制等业务的出现,不同设备均有不同的自定义属性集合,而且有些设备厂家使用了公共属性传递业务信息,通常RADIUS Server 实现时需要采用修改源代码并重新重译的方式来支持,灵活性很低,开发代价高。 本文简述 RADIUS 协议原理,提出了一种基于规则的RADIUS Server 端的设计和实现,可以充分发挥规则进行逻辑处理的作用,在不必修改源代码、重新编译和丧失性能的情况下,能够灵活支持新的设备和新的业务。