portal 认证 - 下线流程
用户下线流程
用户下线流程包括用户主动发起下线流程,和用户异常下线流程:AC 侦测到用户下线,主动通知 Portal server。
2.1、用户下线流程
用户发起下线请求到 Portal Server。
Portal Server 向 AC 请求下线。
AC 回应 Portal Server 下线请求。
Portal Server 推送下线结果页面给用户。
2.2、用户异常下线流程
用户异常下线流程:AC 侦测用户下线流程,主动通知 Portal server。
AC 侦测到用户下线,向 Portal Server 请求下线;
Portal Server 回应下线成功;
三、数据报文
3.1、报文格式
协议包采用固定长度头加可变长度的属性字段组成,属性字段采用 TLV 格式,具体如下图所示。
3.2、报文字段说明
Ver
Ver 字段是协议的版本号,长度为 1 字节,目前定义的值为 0x01;
Type
Type 字段定义报文的类型,长度为 1 字节;
Pap/Chap
Pap/Chap 字段定义此用户的认证方式,长度为 1 字节,只对 Type 值为 0x03 的认证请求报文有意义:
Chap 方式认证,值:0x00
Pap 方式认证,值:0x01
Rsv
Rsv 目前为保留字段,长度为 1 字节,在所有报文中值为 0
SerialNo
(1)、SerialNo 字段为报文的序列号,长度为 2 字节,由 Portal Server 随机生成,Portal Server 必须尽量保证不同认证流程的 SerialNo 在一定时间内不得重复,在同一个认证流程中所有报文的 SerialNo 相同;
(2)、Portal Server 发给 AC 设备的报文
a、由 Portal Server 发出的 Type 值为 1、3 的请求报文其 SerialNo 都是随机生成数;
b、由 Portal Server 向 AC 设备发出的 Type 值为 5 的(REQ_LOGOUT)报文其 SerialNo 值分两中情况:当 ErrCode 为 0 时(请求用户下线报文),SerialNo 值为一个随机生成数;当 ErrCode 为 1 时,SerialNo 值可能和 Type 值为 1 或 3 的报文 (请求 Challenge 超时, 或请求认证超时) 相同,具体要看是请求 Challenge 超时还是请求认证超时;
c、由 Portal Server 向 AC 设备发出的认证成功确认报文(Type 值为 7 的报文)SerialNo 和其发出的相应请求报文的 SerrialNo 相同;比如对于 Type 值为 7 的报文其 SerialNo 值和 Type 值为 3 的请求认证报文相同;
(3)、每一个由 AC 设备发给 Portal Server 的响应报文的 SerialNo 必须和 Portal Server 发送的相应请求报文的 SerialNo 一样,否则 Portal Server 会丢掉从 AC 设备发来的响应报文; 比如 Type 值为 2 的报文其 SerialNo 值必须和 Type 值为 1 的报文相同,Type 值为 4 的报文其 SerialNo 值必须和 Type 值为 3 的报文相同,Type 值为 6 的报文其 SerialNo 值必须和 Type 值为 5 的报文相同。
版权声明: 本文为 InfoQ 作者【箭上有毒】的原创文章。
原文链接:【http://xie.infoq.cn/article/cb99ae22b45fb24cc28e3b072】。文章转载请联系作者。
评论