📄 rfc2869.txt
字号:
如果通过其它途径如Called-Station-Id或Calling-Station-Id确定了身份,NAS在每一个Access-Request报文中必须包含这些身份属性。尽管这种方法将节省一个来回,但是不通用。在某些情况下(如认证和计费是基于Called-Station-Id或Calling-Station-Id),用户的身份可能不需要,因此NAS就不必向认证对等端方发送EAP-Request/Identity报文。当NAS不需要发送EAP-Request/Identity报文时,NAS将向RADIUS服务器发送一个RADIUS Access-Request报文,其中携带EAP-Message属性,意味着EAP-Start。通过携带一个2字节的EAP-Message属性(没有数据)来指明EAP-Start。需要注意的是:由于Access-Request报文中没有携带User-Name属性,这种方法同RFC2865种描述的RADIUS不兼容,同时也不适用于代理的情况,如漫游和共享使用网络。如果RADIUS服务器支持EAP,它必须用Access-Challenge报文响应,报文中携带EAP-Message属性。 如果RADIUS服务器不支持EAP,它必须用Access-Reject报文响应。 EAP-Message属性携带包括一个封装的EAP报文,此EAP报文被继续传送给认证端。如果NAS没有向认证对等端发起一个EAP-Request/Identity报文,那么Access-Challenge报文通常会包含一个EAP-Message属性,此属性中封装有一个EAP-Request/Identity报文,请求拨号接入终端确定自己的身份。此时NAS以Access-Request报文作为响应,报文中包含属性EAP-Message,此属性中封装有EAP-Response报文。会话一直继续,直到收到一个RADIUS Access-Reject报文或Access-Accept报文。 一旦收到一个RADIUS Access-Reject报文,不管有还是没有一个EAP-Failure报文封装在属性EAP-Message中,都将导致NAS向认证对等端发送一个LCP Terminate Request报文。如果收到一个RADIUS Access-Accept报文,并且报文中携带有一个封装有EAP-Success报文的EAP-Message属性,那么认证阶段就结束。 RADIUS Access-Accept/EAP-Message/EAP-Success报文中必须包含所有期望的由Access-Accept带回的属性。 对于上面所描述的方案,NAS从来不需要对EAP进行操作。另外一种替代方案是EAP-Request/Identity报文总是由NAS向认证对等端发送。 对于代理RADIUS请求,有两种处理方法。如果基于Called-Station-Id来确定域,那么RADIUS服务器可以代理最初的RADIUS Access-Request/EAP-Start。如果域是基于用户身份来确定的,那么本地RADIUS服务器必须用一个RADIUS Access-Challenge/EAP-Identity报文响应。从认证对等端返回的响应必须被代理给最终的认证服务器。 对于代理RADIUS请求,NAS可能收到一个Access-Reject报文,此报文是对Access-Request/EAP-Identity报文的响应。如果请求报文被代理给一个不支持EAP-Message扩展的RADIUS服务器,上述情况就会发生。一旦收到一个Access-Reject报文,NAS就必须向认证对等端发送一个LCP Terminate Request报文,终端连接。重传如同RFC 2284所描述的那样,EAP认证者(NAS)负责认证对等端和NAS之间的报文重传。因此一旦一个报文从认证对等端传到NAS的过程中丢失(反之亦然),NAS将重传。这类似于RFC2865中所描述的RADIUS,RADIUS客户端负责RADIUS客户端和RADIUS服务器之间的报文重传。需要注意的是在某些情况下有必要调整重传策略和认证超时时间。例如,如果使用智能卡,那么就必须给用户留出额外的时间以便用户找到卡且输入卡的代号。由于NAS通常不了解所需要的参数,因此这些参数需要RADIUS服务器提供。这个问题可以这样解决:在Access-Challenge报文内包含Session-Timeout和Password-Retry属性。如果在Access-Challenge报文中包含Session-Timeout属性和EAP-Message属性,Session-Timeout的值指出了NAS在向拨号接入用户重传EAP-Message报文,等待EAP-Response报文的最长时间(以秒为单位)。分片利用EAP-Message属性,RADIUS服务器可能将一个大于NAS和认证对等端之间链路MTU的EAP报文封装在属性内。由于RADIUS服务器不可能利用MTU发现来确定链路MTU,因此可以在一个携带EAP-Message属性的Access-Request报文中再携带Framed-MTU属性,由此可以给RADIUS服务器提供信息。举例下面的例子给出了认证对等端、NAS和RADIUS服务器之间的会话。例中使用One Time Password(OTP)进行认证。用OTP认证,只是为了演示的目的,实际也可以用其它认证协议。若用其它认证协议,行为在某些方面可能不同。Authenticating Peer NAS RADIUS Server------------------- --- ------------- <- PPP LCP Request-EAP authPPP LCP ACK-EAPauth -> <- PPP EAP-Request/ IdentityPPP EAP-Response/Identity (MyID) -> RADIUS Access-Request/ EAP-Message/ EAP-Response/ (MyID) -> <- RADIUS Access-Challenge/ EAP-Message/EAP-Request OTP/OTP Challenge <- PPP EAP-Request/ OTP/OTP ChallengePPP EAP-Response/OTP, OTPpw -> RADIUS Access-Request/ EAP-Message/ EAP-Response/ OTP, OTPpw -> <- RADIUS Access-Accept/ EAP-Message/EAP-Success (other attributes) <- PPP EAP-SuccessPPP AuthenticationPhase 结束,NCP Phase 开始 如果NAS首先向RADIUS服务器发送一个EAP-Start报文给服务器,那么会话过程如下:Authenticating Peer NAS RADIUS Server------------------- --- ------------- <- PPP LCP Request-EAP authPPP LCP ACK-EAPauth -> RADIUS Access-Request/ EAP-Message/Start -> <- RADIUS Access-Challenge/ EAP-Message/Identity <- PPP EA-Request/ IdentityPPP EAP-Response/Identity (MyID) -> RADIUS Access-Request/ EAP-Message/ EAP-Response/ (MyID) -> <- RADIUS Access-Challenge/ EAP-Message/EAP-Request OTP/OTP Challenge <- PPP EAP-Request/ OTP/OTP ChallengePPP EAP-Response/OTP, OTPpw ->RADIUS Access-Request/ EAP-Message/ EAP-Response/ OTP, OTPpw -> <- RADIUS Access-Accept/ EAP-Message/EAP-Success (other attributes) <- PPP EAP-SuccessPPP AuthenticationPhase 结束,NCP Phase 开始 如果客户端EAP认证失败,会话过程如下:Authenticating Peer NAS RADIUS Server------------------- --- ------------- <- PPP LCP Request-EAP authPPP LCP ACK-EAPauth -> Access-Request/ EAP-Message/Start -> <- RADIUS Access-Challenge/ EAP-Message/Identity <- PPP EAP-Request/ IdentityPPP EAP-Response/Identity (MyID) -> RADIUS Access-Request/ EAP-Message/ EAP-Response/ (MyID) -> <- RADIUS Access-Challenge/ EAP-Message/EAP-Request OTP/OTP Challenge <- PPP EAP-Request/ OTP/OTP ChallengePPP EAP-Response/OTP, OTPpw -> RADIUS Access-Request/ EAP-Message/ EAP-Response/ OTP, OTPpw -> <- RADIUS Access-Reject/ EAP-Message/EAP-Failure <- PPP EAP-Failure (客户端终端连接) 如果RADIUS服务器或者代理不支持EAP-Message,会话过程如下:Authenticating Peer NAS RADIUS Server------------------- --- ------------- <- PPP LCP Request-EAP authPPP LCP ACK-EAPauth -> RADIUS Access-Request/ EAP-Message/Start -> <- RADIUS Access-Reject <- PPP LCP Terminate (用户中断连接) 如果本地RADIUS服务器支持EAP-Message,而远端RADIUS服务器不支持,会话过程如下:Authenticating Peer NAS RADIUS Server------------------- --- ------------- <- PPP LCP Request-EAP authPPP LCP ACK-EAPauth -> RADIUS Access-Request/ EAP-Message/Start -> <- RADIUS Access-Challenge/ EAP-Message/Identity <- PPP EAP-Request/ IdentityPPP EAP-Response/Identity(MyID) -> RADIUS Access-Request/ EAP-Message/EAP-Response/ (MyID) -> <- RADIUS Access-Reject (proxied from remote RADIUS Server) <- PPP LCP Terminate (User Disconnected) 如果认证对等不支持EAP,但需要对用户用EAP认证,会话过程如下:Authenticating Peer NAS RADIUS Server------------------- --- ------------- <- PPP LCP Request-EAP authPPP LCP NAK-EAPauth -> <- PPP LCP Request-CHAP authPPP LCP ACK-CHAPauth -> <- PPP CHAP ChallengePPP CHAP Response -> RADIUS Access-Request/ User-Name,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -