Я настроил FreeRADIUS на использование EAP-TLS для аутентификации на основе сертификатов (самоподписанные сертификаты). Аутентификация работает нормально, за исключением того, что я хотел бы добавить авторизацию на основе группы.
В частности, мне нужно использовать Class
атрибут, который будет отправлен обратно в NAS в ответе. Затем этот атрибут будет считан и интерпретирован NAS как информация о членстве в группе (например, Class
знак равно myclass
).
Некоторая справочная информация: я использую FreeRADIUS вместе с strongSwan; здесь интерпретируется информация о членстве в группе.
Я ищу простой способ сообщить FreeRADIUS о группах. Я попытался установить Class
в файле конфигурации для модуля rlm_files (freeradius/3.0/mods_config/files/authorize
) который выглядел так:
username
Reply-Message := "Hello, %{User-Name}",
Class := "myclass"
Я оставил первую строчку пусто, потому что не нужно "проверять".
EAP-TLS аутентификация проходит успешно, однако Class
атрибут не добавляется к ответу.
Я даже не уверен, обрабатывает ли FreeRADIUS user
(или authorize
) после проверки подлинности EAP-TLS. Хотя я в этом сомневаюсь.
Есть ли простой способ указать Class
атрибут на основе имени пользователя (при условии, что есть несколько пользователей и несколько групп)?
FreeRADIUS может не обрабатывать пользовательский файл, так как он закорачивает раздел авторизации для большинства пакетов EAP.
Вам нужно вызвать файл пользователей в разделе post-auth, используя files.authorize
, т.е.
Post-auth {
files.authorize
}
User-Name
может быть установлен на что угодно, и авторизация все равно будет успешной, поэтому не рекомендуется использовать его при принятии решений политики для EAP-TLS.
IIRC атрибуты сертификата декодируются и помещаются в &session-state:
список.
В этом случае вы можете сделать
Post-auth {
update request {
&request: += &session-state:[*]
}
files.authorize
}
Это должно сделать все атрибуты доступными для сопоставления в файле пользователей. Он также должен распечатать, какие атрибуты были доступны в выходных данных отладки ближе к концу обработки попытки аутентификации.