Как прочитать возвращенный параметр с сервера RADIUS

Я настроил голосовой шлюз Cisco для использования Cisco ACS на сервере Windows 2003. Тем временем я настроил внешнюю базу данных через соединение ODBC с сервером MSSQL. Как упоминалось в документе TCLIVR, я должен использовать хранимую процедуру на сервере Mirosoft SQL с именем CSNTAuthUserPap для ответа на запрос авторизации от голосового шлюза. Хранимая процедура имеет следующий формат:

СОЗДАТЬ ПРОЦЕДУРУ [dbo].[CSNTAuthUserPap]

@username varchar(64), @pass varchar(255)

КАК УСТАНОВИТЬ NOCOUNT ON

ЕСЛИ СУЩЕСТВУЕТ(

ВЫБЕРИТЕ имя пользователя ОТ пользователей, ГДЕ имя пользователя = @username И Returnparam = @pass )

ВЫБЕРИТЕ 0,'1','1','Нет ошибки'

ЕЩЕ

ВЫБЕРИТЕ 3,0, 'odbc', 'Ошибка проверки подлинности ODBC'

Мой вопрос касается параметров чтения, возвращаемых на сервер ACS. Возвращаемая запись имеет следующий формат:

  1. Возвращаемый результат: 0 означает успешную аутентификацию, от 1 до 4 означает неудачную аутентификацию.
  2. Номер группы для авторизации
  3. Информация об аккаунте
  4. Строка ошибки

Как я могу прочитать информацию об учетной записи, возвращенную ACS, в моем коде TCL?


person Yasser Sobhdel    schedule 17.01.2012    source источник


Ответы (1)


Я нашел это. Ответ кроется в AVPairs и создании пользовательских avpair. Я должен указать avpair для каждой группы, возвращенной с сервера radius, и прочитать их в коде TCL следующим образом:

    if { [infotag get aaa_avpair_exists h323-ivr-in] } {
        set CustomerStatus [infotag get aaa_avpair h323-ivr-in]
foreach pairs [split $CustomerStatus]  {
                           set value_list [split $pairs :]
                           set key [lindex $value_list 0]
                           set value [lindex $value_list 1]
                           if { $key == "contractType" } {
                                set contractType $value
                           } 
                   }
person Yasser Sobhdel    schedule 14.04.2012