Назад | Перейти на главную страницу

Как настроить FreeRADIUS с EAP-TLS и групповой авторизацией?

Я настроил 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
}

Это должно сделать все атрибуты доступными для сопоставления в файле пользователей. Он также должен распечатать, какие атрибуты были доступны в выходных данных отладки ближе к концу обработки попытки аутентификации.