В системе поддерживается возможность дайджест-аутентификации и авторизации абонентов с использованием RADIUS-сервера. Для этого необходимо создать динамических абонентов. Система не хранит данные о динамических абонентах. Номер абонента и его пароль для аутентификации хранятся на RADIUS-сервере. В системе ECSS-10 необходимо только указать количество динамических абонентов и параметры доступа к RADIUS-серверу.
Авторизация осуществляется при регистрации абонента (запрос REGISTER) и определяет, существует ли абонент в системе. Дополнительно авторизация осуществляется при совершении вызова абонентом (запрос INVITE) и определяет, разрешено ли абоненту пользоваться ресурсом. Все запросы (регистрация, установление соединений) обязательно проходят процедуру аутентификации.
Например, у абонента нет средств на счете, но при этом с отрицательным балансом он должен быть авторизован и иметь возможность совершать вызовы на экстренный номер 112. При этом требование прохождения процедуры аутентификации сохраняется. При вызовах на другие номера процедура авторизации вернет запрет на соединение - данные вызовы будут отбиты.
Комплекс ECSS-10 поддерживает три варианта дайджест-аутентификации на RADIUS-сервере:
Порядок настройки динамических абонентов:
Начиная с версии 3.5.0 RAIDUS-сервера создаются для каждой виртуальной АТС отдельно, и затем могут быть использованы в подсистеме авторизации.
Команды по настройки RADIUS серверов детально описаны в разделе Команды настройки параметров соединения c RADIUS-сервером.
Порядок настройки группы динамических абонентов:
/domain/<DOMAIN>/sip/user/dynamic-area/new <NEW AREA NAME> <ROUTING CONTEXT> <GROUP SIZE>Назначить созданной группе список RADIUS-серверов командой:
/domain/<DOMAIN>/sip/user/dynamic-area/set <AREA NAME> servers [<ID1>, ...]
Настройка остальных параметров:
/domain/<DOMAIN>/sip/user/dynamic-area/set <AREA NAME> <PARAMETER> <VALUE>
Доступны следующие параметры:
Для просмотра информации по группе динамических абонентов используется команда:
/domain/<DOMAIN>/sip/user/dynamic-area/info [<AREA NAME>]
Результат выполнения команды просмотра информации:
admin@[mycelium1@ecss1]:/$ domain/test.domain/sip/user/dynamic-area/info Executed on the pa_sip@alex ┌───────────────────────────┬─────────────────────────────────────────┐ │ Dynamic area (SIP domain) │ Parameters │ ├───────────────────────────┼─────────────────────────────────────────┤ │ test_area.1 │ current size/limit 0/10 │ │ │ servers: │ │ │ free.radiu ok │ │ │ draft sterman true │ │ │ number modification rule rule.test │ │ │ full digest false │ │ │ routing context ctx_sip_local │ │ │ cisco vsa for all false │ │ │ │ │ test_area.2 │ current size/limit 0/20 │ ... └───────────────────────────┴─────────────────────────────────────────┘ |
В данной таблице в столбце "Current size/limit" указывается текущее количество зарегистрированных/созданных динамических абонентов.
В таблице ниже представлены все параметры передающиеся на Radius сервер при запросах на номер динамического абонента. Если данные верны, Radius сервер возвращает access на запроса и обработка интерфейса продолжается как с локальным абонентом SSW.
Таблица - параметры запроса на Radius сервер
| AccessRequest | ID пакета: 0x01..0xFF |
| CalledStationId | CdPN (поле user из заголовка To) |
| CallingStationId | CgPN (поле user из заголовка From) |
| DigestMethod | метод запроса (INVITE, REGISTER) |
| DigestURI | значение URI из заголовка Digest |
| DigestRealm | значение realm из заголовка Digest |
| DigestResponse | значение ответа из заголовка Digest |
| DigestQop | значение qop из заголовка Digest |
| DigestAlgorithm | значение algorithm из заголовка Digest |
| DigestCNonce | значение cnonce из заголовка Digest |
| DigestNonce | значение nonce из заголовка Digest |
| DigestNonceCount | значение nc из заголовка Digest |
| DigestUsername | значение user из заголовка Digest |
| SipAor | URI в формате: sip:UserName@SipDomain. UserName. |
| NasIpAddress | локальный адрес SIP адаптера, с которого идет запрос на сервер |
| NasPort | локальный порт SIP адаптера, с которого идет запрос на сервер |
| NasPortType | 0 - асинхронный запрос |
| ServiceType | 1 - Login |
| FramedProtocol | 2 - SLIP |
| UserName | SIP юзер (Биллинговый номер если есть или REGISTER:CdPN, INVITE:CgPN) |
| VendorCisco + VendorSpecific + H323_conf_id | идентификатор в формате: <<0x11, CallRef:24, 0x7C, StartTime:32>> |
| VendorCisco + VendorSpecific + H323_gw_id | локальный адрес SIP адаптера, на который получен запрос |
Более подробно команды для работы с динамическими абонентами описаны в справочнике CLI, раздел Команды управления динамически конфигурируемыми интерфейсами