The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
FreeRadius, 2FA , !*! maxnetstat, 27-Мрт-24, 18:05  [смотреть все]
Привет!

Помогите решить проблему с настройкой двухфакторной авторизации на FreeRadius.
FreeRADIUS Version 3.0.20


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

сейчас схема работы такая:
все пользователи проверяются на LDAP и на второй фактор при подключении.

Как надо:
Все пользователи проверяются на LDAP сервере,
а пользователи, которые определены в отдельном файле (только их LDAP логины)
проверялись также на второй фактор.

Вот пример моего конфига, который работает для все пользователей:
cat /etc/raddb/sites-enabled/default

authorize {
    filter_username
    filter_google_otp
    preprocess

    if ((ok || updated) && Google-Password && !control:Auth-Type) {
        update control {
            Auth-Type := `/path_to_script/auth_2fa.py %{User-Name} %{Google-Password}`
        }
    }
}


Моя идея в том, чтобы после filter_username добавить проверку на соответствие User-Name пользователя на юзеру из файла. И если это соответствие найдено выполнить проверку на 2 фактор.

если нет - идем дальше.

толком не смог найти ничего подобного в инете.
Возможно моя идея реализации не подходит.

кто-то сталкивался с такой проблемой?

  • FreeRadius, 2FA , !*! maxnetstat, 11:30 , 28-Мрт-24 (1)
    Проблема решена.
    Проверкой наличия пользователя в списке занимается  отдельный скрипт: check_user_2fa.sh,
    который отдает "ok" в консоль:

        authorize {
            filter_username
            if (`/path_to_script/check_user_2fa.sh %{User-Name}`) {
                filter_google_otp
                ldap
                if ((ok || updated) && Google-Password && !control:Auth-Type) {
                    update control {
                        Auth-Type := `/path_to_script/google_2fa.py %{User-Name} %{Google-Password}`
                    }
                }
            } else {
                update {
                    control:Auth-Type := ldap
                 }

            }
            preprocess
        }




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру