используя FreeRADIUS, мне нужно аутентифицировать пользователей RADIUS на веб-сервере, и я пытался использовать для этого модуль rlm_rest. Видеть Вот.
В конфигурации моего сайта у меня есть что-то вроде этого:
authorize {
rest
}
а в разделе аутентификации я пробовал такие вещи:
authenticate {
Auth-Type REST {
rest
}
}
или
authenticate {
rest
}
В любом случае я получаю следующую ошибку: (2) ERROR: No Auth-Type found: rejecting the user via Post-Auth-Type = Reject
На своем веб-сервере я возвращаю 204 code
как кажется, это должно аутентифицировать пользователя без дополнительных процессов. Видеть Вот. Авторизация работает нормально, но эта ошибка возвращается после достижения раздела аутентификации.
Что мне нужно знать, так это комбинацию записи файла "пользователи" и записей о доступных сайтах, которые мне нужны, чтобы позволить модулю rlm_rest завершить аутентификационную часть запроса. Спасибо,
Rest не устанавливает Auth-Type, вам нужно сделать это вручную.
authorize {
rest
if (ok) {
update control {
Auth-Type := rest
}
}
}
authenticate {
rest
}
Типы аутентификации автоматически создаются для модулей, перечисленных в разделе «Аутентификация» (на самом деле вам не нужна строфа Auth-Type).
Вам не нужно вызывать rest in authorize, если вам это не нужно, что-то вроде этого также будет работать нормально:
authorize {
if (User-Password) {
update control {
Auth-Type := rest
}
}
}
Редактировать:
Примечание. До версии 3.0.4 использовался модуль REST. control:Cleartext-Password
чтобы получить пароль пользователя, поэтому для того, чтобы модуль работал, вам нужно скопировать значение из request:User-Password
:
authorize {
if (User-Password) {
update control {
Cleartext-Password := &User-Password
Auth-Type := rest
}
}
}
Версии 3.0.4 и выше ищите request:User-Password
вместо этого, что должно работать в большинстве случаев.