Avanpost FAM/MFA+ : 10.8 Разработка скрипта RADIUS

Общие сведения 

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-пакете должно содержаться значение атрибута, вычисленного в соответствии с заданной логикой. 

Обсуждение