我正在使用RADIUS服务器(我的源代码没有),其对RADIUS身份验证请求的响应也包含随请求一起发送的属性。
但是,我正在查看tinyradius的源代码,它似乎在生成响应数据包时不会复制请求数据包中的所有属性。它只复制属性号33(STATE属性)(如果存在)。
RadiusClients似乎接受任一响应。什么是正确的做法?
答案 0 :(得分:3)
不,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中,我们维护一个“会话状态”属性列表,这些属性可用于多轮认证尝试的所有轮次中的策略。