0

我正在使用一个 RADIUS 服务器(我没有它的源代码),它对 RADIUS 身份验证请求的响应还包含随请求发送的属性。

但是,我正在查看 tinyradius 的源代码,它似乎在生成响应数据包时并没有从请求数据包中复制所有属性。如果存在,它只复制属性号 33(STATE 属性)。

RadiusClients 似乎接受任一响应。什么是正确的做法?

4

1 回答 1

2

不,RADIUS 响应不应包含所有请求属性。

状态是特殊的,它可以用来将多轮请求/响应链接在一起。

State 的两个主要用例是 OTP 身份验证,其中密码和 OTP 代码在两轮或多轮中发送,或者 EAP 身份验证再次在多轮中发生。

NAS                     RADIUS
---                     ------
# Password round
Access-Request      ->
                    <-  Access-Challenge
                        [Generates random state 0x01]
# OTP round
Access-Request
[Copies state 0x01] ->
                        Access-Accept/Reject

如果没有 state 属性,就无法将 Access-Challenge 和后续的 Access-Request 链接在一起。

注意:没有规范如何处理状态,它只是用来将数据包捆绑在一起。在 FreeRADIUS 中,我们维护一个“会话状态”属性列表,这些属性可用于多轮身份验证尝试的所有轮次中的策略。

于 2016-09-06T08:24:08.427 回答