radius认证流程


Radius服务器对用户认证的相关流程

网络模型:

radius认证 python radius认证流程_用户名


认证的主要就是用户/nas/radius/数据库

用户提供需要认证的用户名与口令

Nas一般是路由器,交换机等设备

Nas作为radius服务器的客户端,向radius服务器转交用户的认证信息,并且在通过认证之后向radius服务器发送计费信息。

Radius服务器作为认证系统的中心服务器,接受来自NAS提交的信息,并对数据库进行相对应的操作,最后将结果返回给NAS。

数据库用来存放所有的用户信息,计费信息以及其他的各种信息。

认证流程:

  • 当用户想要登陆网络的时候,NAS会提供一个用户登录的界面要求用户提供用户信息(用户名和口令),用户等待认证结果。
  • NAS在接收到用户信息之后,向radius服务器发送一个接入请求包(access-request),包中包含了radius一些相关属性:用户名,用户口令,访问服务器的ID以及访问端口的ID
  • Radius服务器接收到来自NAS的接入请求包(access-request)之后,先验证NAS的共享密钥与radius服务器所设置的是否一致,用来确定这个NAS是所属的radius客户端。Radius服务器在检查了NAS发出的接入请求包正确之后,在用户数据库查询是否有此用户。如果查询用户信息不正确,radius服务器则会发送一个接入拒绝包(access-reject)给NAS,NAS在收到包后,会与拒绝并停止用户的服务请求,并将用户给强制退出。
  • 如果查询用户信息正确,服务器会向NAS发送一个接入质询包(access-challenge),对用户的登录请求做进一步的验证,这个验证包括:用户名,用户口令,用户登录所访问的服务器的IP,用户登录的物理端口号等。NAS收到接入质询包(access-request)之后,NAS会通知用户要求用户提供更多的用户信息,并且要求用户进一步确认登录请求,用户确认之后,radius会将两次的请求信息进行对比,然后决定怎么去响应用的请求(发送access-accept,access-reject或者再一次发送access-challenge)
  • 当所有的验证条件以及握手都通过时,radius服务器会将数据库中的用户的配置信息都放在接入接受包(access-accept)中返回给NAS,NAS会根据包中的配置信息来对用户访问网络的能力进行限定。
  • 当验证与授权完成之后,用户就可以通过交换机进入网络了,在用户进入网络的时候,NAS会向radius服务器发送一个计费开始请求包(accounting-request start),通知radius服务器开始计费,当用户下网的时候,NAS会向radius服务器发送一个计费结束包(accounting-request stop),radius服务器会根据计费包的信息计算用户使用网络的相关费用。