Использование freeradius для аутентификации в JAS

ID статьи: 289
Последнее обновление: 15 Aug, 2018
ID статьи: 289
Последнее обновление: 15 Aug, 2018
Ревизия: 1
Просмотры: 978
Комментарии: 0

Версия ПО:  JAS

Токены:  Любые OTP по событию

Проблема:  Использование в качестве сервера радиус freeradius вместо NPS

Решение:

JAS поддерживает аутентификацию на основе запросов HTTP POST типа REST. Для решения задачи будем использовать стандартный модуль REST для freeradius и формат передачи JSON.

Исходный стенд: Debian 9.5 с установленным сервером freeradius.

1. Устанавливаем из репозитория пакет freeradius-rest:

apt install freeradius-rest

2. Делаем резервную копию файла /etc/freeradius/3.0/sites-available/default и приводим его к виду:

server default {

listen {
    type = auth
    ipaddr = *
    port = 0
    limit {
          max_connections = 16
          lifetime = 0
          idle_timeout = 30    }
}

listen {
    ipaddr = *
    port = 0
    type = acct }

# Указываем использование rest

authorize {
    if (User-Password) {
        update control {
            Auth-Type := rest  }
    }
}

# Указываем использование rest

authenticate {
    Auth-Type REST {
        rest    }
    }

}

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

3. Создаем файл /etc/freeradius/3.0/mods-enabled/rest с содержимым:

rest {
# Адрес сервера JAS. Берется из параметра JAS в реестре: HKEY_LOCAL_MACHINE\SOFTWARE\Aladdin\JaCarta Authentication Server\default\AuthenticationService\RestAddress
    connect_uri = "http://<jas-server>:<port>"

    authenticate {
        uri = "${..connect_uri}/JASEngine/Default/AuthenticationService/rest/authenticate"
        method = 'post'
        body = 'json'
        data = '{"Password":"%{User-Password}","Username":"%{User-Name}"}'
# Регистр букв здесь важен!           

        } }

Примечание: На самом деле стандартный конфиг предлагает множество различных параметров, как то: авторизация, параметры сессии и т.д. Но нас интересует только аутентификация.

4. Перезагружаем службу freeradius:

service freeradius restart

Проверить аутентификацию можно командой radtest.

Эта статья была:  
Сообщить об ошибке
ID статьи: 289
Последнее обновление: 15 Aug, 2018
Ревизия: 1
Просмотры: 978
Комментарии: 0
Теги