Общие сведения
Avanpost FAM предоставляет возможность настроить алгоритм присвоения вычисляемого значения RADIUS-атрибуту для дальнейшей передачи во внешнее RADIUS-приложение.
Вычисляемый атрибут может использоваться для тонкой настройки RDG-сессии (Remote Desktop Gateway) с целью повышения безопасности передаваемых данных. RDG-сессия представляет механизм, обеспечивающий защищенное подключение к удаленным рабочим столам или приложениям через шлюз удаленного рабочего стола. Данный компонент позволяет безопасно подключаться к внутренним корпоративным ресурсам извне без необходимости использовать VPN. Вычисленный посредством скрипта Avanpost FAM и переданный в RADIUS-пакете атрибут используется для применения тех или иных политик доступа (например, установки длительности сессий, предоставления доступа к тем или иным машинам, настроек логирования и т.п.) для RDG-сессии.
Разработка скрипта выполняется в разделе "Редактор скриптов" режима "Сервис". Для создания RADIUS-скрипта следует нажать кнопку "Добавить" и ввести следующие данные:
- Имя – Название скрипта;
- Тип – RADIUS Attribute;
- Скрипт – Алгоритм (в соответствии с синтаксисом JavaScript).
Для запуска работы алгоритма следует настроить его выполнение для конкретного приложения (более подробно в статье разделе Вкладка VSA статьи Управление RADIUS-приложениями):
- Разработать скрипт в соответствии с потребностями;
- Перейти в профиль сознанного RADIUS-приложения во вкладку VSA;
- Нажать кнопку редактирования и задать следующие параметры:
- Вендор - Выбрать наименование вендора (информация о настройке вендора в статье Настройка словарей RADIUS VSA (Vendor-Specific Attribute) для RADIUS-приложений);
- Атрибуты - Добавить атрибут со следующими параметрами:
- Имя атрибута - Выбрать из названий, настроенных в словаре RADIUS VSA данного вендора.
- Тип - Вычисляемое значение;
- Значение - Название разработанного скрипта, в соответствии с которым будет рассчитываться передаваемый атрибут.
Сценарии использования
Основным сценарием использования скрипта является передача RADIUS-приложению значений атрибутов, позволяющих установить различные характеристики пользователе (логин пользователя, группы пользователя).
Перед использованием скрипта следует корректно настроить интеграцию с целевым RADIUS-приложением (более подробно в статье Управление RADIUS-приложениями).
Пример разработанного скрипта, передающего значения различные значения атрибута в зависимости от имени пользователя и групп, в которых он состоит:
// Предопределенные объекты // user := { Name: string } - текущий пользователь // groups := [{ Name: string}, ...] - текущие группы пользователя // Присваиваем значение атрибута по умолчанию var attr = 42; // контекст скрипта //var user = { Name: 'cwwc'}; //var groups = [{ Name: "Radius"}]; //Проверяем имя пользователя: если "cwwc", присваиваем значение атрибута 100500 if (user.Name == 'cwwc') { attr = 100500; //В противном случае проверяем членство в группе "adminconsole": если состоит, присваиваем иное значение атрибута 100501 } else { for (var i = 0; i < groups.length; i++) { if (groups[i].Name == 'adminconsole') { attr = 100501 } } } // возвращаем значение скрипта console.log(attr); attr;
Чтобы убедиться в корректности работы скрипта рекомендуется воспользоваться инструментами для анализа сетевых пакетов (например, Wireshark). При корректной настройке RADIUS-приложения и скрипта в передаваемом RADIUS-пакете должно содержаться значение атрибута, вычисленного в соответствии с заданной логикой.