在认证之前客户端与接入设备之间建立起预连接,即客户端用户在认证成功之前在接入设备上已建立用户在线表项,并且只有部分网络访问权限。
客户端发起HTTP连接请求。
接入设备收到HTTP连接请求报文时,如果是访问Portal服务器或免认证网络资源的HTTP报文,则接入设备允许其通过;如果是访问其它地址的HTTP报文,则接入设备将其URL地址重定向到Portal认证页面。
客户端根据获得的URL地址向Portal服务器发起HTTP连接请求。
Portal服务器向客户端返回Portal认证页面。
用户在Portal认证页面输入用户名和密码后,客户端向Portal服务器发起Portal认证请求。
-
(可选)Portal服务器收到Portal认证请求后,如果Portal服务器与接入设备之间采用CHAP认证,则Portal服务器向接入设备发起Portal挑战字请求报文(REQ_CHALLENGE);如果Portal服务器与接入设备之间采用PAP认证,则接入设备直接进行第9步。
Portal挑战字请求使用的共享密钥是通过****shared-key****命令配置的,请确保共享密钥配置正确,并且和Portal服务器保持一致。
(可选)接入设备向Portal服务器回应Portal挑战字应答报文(ACK_CHALLENGE)。
Portal服务器将用户输入的用户名和密码封装在Portal认证请求报文(REQ_AUTH)中,并发送给接入设备。
接入设备根据获取到的用户名和密码,向RADIUS服务器发送RADIUS认证请求(ACCESS-REQUEST)。
RADIUS服务器对用户名和密码进行认证。如果认证成功,则RADIUS服务器向接入设备发送认证接受报文(ACCESS-ACCEPT);如果认证失败,则RADIUS服务器返回认证拒绝报文(ACCESS-REJECT)。
由于RADIUS协议合并了认证和授权的过程,因此认证接受报文中也包含了用户的授权信息。
- 接入设备根据接收到的认证结果接入/拒绝用户。如果允许用户接入,则接入设备向RADIUS服务器发送计费开始请求报文(ACCOUNTING-REQUEST)。
- RADIUS服务器返回计费开始响应报文(ACCOUNTING-RESPONSE),并开始计费,将用户加入自身在线用户列表。
- 接入设备向Portal服务器返回Portal认证结果(ACK_AUTH),并将用户加入自身在线用户列表。
- Portal服务器向客户端发送认证结果报文,通知客户端认证成功,并将用户加入自身在线用户列表。
- Portal服务器向接入设备发送认证应答确认(AFF_ACK_AUTH)。