1.用户认证和AAA技术原理
AAA技术
-
不认证:
- 对用户非常信任,不对其进行合法检查,一般情况下不采用这种方式。
-
本地认证:
- 将用户信息(包括本地用户的用户名、密码和各种属性)配置在网络接入服务器上。本地认证的优点是速度快,可以为运营降低成本;缺点是存储信息量受设备硬件条件限制。
-
服务器认证:
- 将用户信息(包括本地用户的用户名、密码和各种属性)配置在认证服务器上。AAA支持通过RADIUS(RemoteAuthentication Dial In User Service)协议或HWTACACS(HuaWeiTerminal Access Controller Access Control System)协议进行远端认证。
RADIUS协议概述
RADIUS服务器通过建立一个唯一的用户数据库,存储用户名、密码来对用户进行验证。
RADIUS使用UDP(UserDatagram Protocol)作为传输协议,具有良好的实时性;同时也支持重传机制和备用服务器机制,从而具有较好的可靠性。
RADIUS报文结构:
-
**Code:**消息类型,如接入请求、接入允许等。
-
Access-Request——请求认证过程
-
Access-Accept——认证响应过程
-
Access-Reject——认证拒绝过程
-
Accounting-Request——请求计费过程
-
Accounting-Response——计费响应过程
-
Access-Challenge——访问质询
-
-
Identifier:一般是顺序递增的数字,请求报文和响应报文中该字段必须匹配(请求和回应的id是一样的)。
-
Length:所有域的总长度(97字节)。
-
Authenticator:验证字,用于验证RADIUS的合法性。
-
Attribute:消息的内容主体,主要是用户相关的各种属性。(实现认证,授权,计费)
RADIUS认证、授权和计费的交互流程
-
当用户接入网络时,用户发起连接请求,向RADIUS客户端(即设备)发送用户名和密码。
-
RADIUS客户端向RADIUS服务器发送包含用户名和密码信息的认证请求报文。
-
RADIUS服务器对用户身份的合法性进行检验:
-
如果用户身份合法,RADIUS服务器向RADIUS客户端返回认证接受报文,允许用户进行下一步动作。由于RADIUS协议合并了认证和授权的过程,因此认证接受报文中也包含了用户的授权信息。
-
如果用户身份不合法,RADIUS服务器向RADIUS客户端返回认证拒绝报文,拒绝用户访问接入网络。
-
-
RADIUS客户端通知用户认证是否成功。
-
RADIUS客户端根据接收到的认证结果接入/拒绝用户。如果允许用户接入,则RADIUS客户端向RADIUS服务器发送计费开始请求报文。
-
RADIUS服务器返回计费开始响应报文,并开始计费。
-
用户开始访问网络资源。
-
(可选)在使能实时计费功能的情况下,RADIUS客户端会定时向RADIUS服务器发送实时计费请求报文,以避免因付费用户异常下线导致的不合理计费。
-
(可选)RADIUS服务器返回实时计费响应报文&