В системе поддерживается возможность дайджест-аутентификации и авторизации абонентов с использованием RADIUS-сервера. Для этого необходимо создать динамических абонентов. Система не хранит данные о динамических абонентах. Номер абонента и его пароль для аутентификации хранятся на RADIUS-сервере. В системе ECSS-10 необходимо только указать количество динамических абонентов и параметры доступа к RADIUS-серверу.

Авторизация осуществляется при регистрации абонента (запрос REGISTER) и определяет, существует ли абонент в системе. Дополнительно авторизация осуществляется при совершении вызова абонентом (запрос INVITE) и определяет, разрешено ли абоненту пользоваться ресурсом. Все запросы (регистрация, установление соединений) обязательно проходят процедуру аутентификации.

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

Комплекс ECSS-10 поддерживает три варианта дайджест-аутентификации на RADIUS-сервере:

  • RFC - согласно полной рекомендации RFC5090 (обновленная версия стандарта, RFC4590 - устаревшая версия). Формирование базы запроса аутентификации (nonce и другие) выполняется сервером RADIUS (challenge запрос);
  • RFC-no-challenge - согласно RFC5090, но без "challenge" запроса на сервере. База запроса аутентификации (nonce и другие) формируется адаптером и затем передается на сервер RADIUS вместе с ответом клиента;
  • Draft-sterman - работа по черновику RFC "draft-sterman". Аналогично предыдущему варианту не выполняется "challenge" запроса на сервер, при отправке запроса на сервер RADIUS используется другая кодировка команд. В частности, такой вариант аутентификации поддерживают сервера FreeRadius, NetUp).

Порядок настройки динамических абонентов:

  1. Добавить в систему информацию о RADIUS-серверах.
  2. Создать группы с определенным количеством динамических абонентов.
  3. Назначить группе абонентов список RADIUS-серверов, с которыми они будут взаимодействовать, и настроить параметры группы.

Добавление RADIUS-серверов

Начиная с версии 3.5.0 RAIDUS-сервера создаются для каждой виртуальной АТС отдельно, и затем могут быть использованы в подсистеме авторизации.

Команды по настройки RADIUS серверов детально описаны в разделе Команды настройки параметров соединения c RADIUS-сервером.

Настройка группы динамических абонентов

Порядок настройки группы динамических абонентов:

  1. Создать группу динамических абонентов командой:
    /domain/<DOMAIN>/sip/user/dynamic-area/new <NEW AREA NAME> <ROUTING CONTEXT> <GROUP SIZE>
  2. Назначить созданной группе список RADIUS-серверов командой:

    /domain/<DOMAIN>/sip/user/dynamic-area/set <AREA NAME> servers [<ID1>, ...]


  3. Настройка остальных параметров:

    /domain/<DOMAIN>/sip/user/dynamic-area/set <AREA NAME> <PARAMETER> <VALUE>

    Доступны следующие параметры:

    • cisco-vsa-for-all - во всех сообщениях на RADIUS-сервер использовать параметры CISCO VSA;
    • digest-version - алгоритм авторизации SIP-абонентов с динамической регистрацией через RADIUS-сервер, принимает значение:
      • rfc - полноценная реализация рекомендации RFC4590;
      • rfc-no-challenge - работа по рекомендации RFC4590 с сервером, не передающим Access Challenge;
      • draft-sterman - работа по проекту, на основании которого была написана рекомендация RFC4590;
    • group-size - максимальное количество регистрируемых в данную область sip-пользователей;
    • number-modification - имя правила модификации, применяемое по необходимости к номерам, передаваемым на RADIUS-сервер;
    • routing.context - имя контекста маршрутизации;
    • servers - список RADIUS серверов.
  4. Для просмотра информации по группе динамических абонентов используется команда:

    /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 сервер при запросах на номер динамического абонента. Если данные верны, Radius сервер возвращает access на запроса и обработка интерфейса продолжается как с локальным абонентом SSW.

Таблица 1 - параметры запроса на Radius сервер

AccessRequestID пакета: 0x01..0xFF
CalledStationIdCdPN (поле user из заголовка To)
CallingStationIdCgPN (поле 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
SipAorURI в формате: sip:UserName@SipDomain. UserName.
NasIpAddressлокальный адрес SIP адаптера, с которого идет запрос на сервер
NasPortлокальный порт SIP адаптера, с которого идет запрос на сервер
NasPortType0 - асинхронный запрос
ServiceType1 - Login
FramedProtocol2 - SLIP
UserNameSIP юзер (Биллинговый номер если есть или REGISTER:CdPN, INVITE:CgPN)
VendorCisco + VendorSpecific + H323_conf_idидентификатор в формате: <<0x11, CallRef:24, 0x7C, StartTime:32>>
VendorCisco + VendorSpecific + H323_gw_idлокальный адрес SIP адаптера, на который получен запрос

Более подробно команды для работы с динамическими абонентами описаны в справочнике CLI, раздел Команды управления динамически конфигурируемыми интерфейсами