аутентификация — PHP Radius: установка пар атрибут-значение Cisco (AVPairs)

У меня есть CISCO, и я хочу аутентифицировать пользователей с RADIUS, используя PHP. У CISCO есть собственный поставщик и атрибуты, и я должен установить их в своих скриптах PHP. я использую PECL RADIUS API.

Это мой пример кода:

$radius = radius_auth_open();

radius_add_server($radius, $ip_address, $port, $shared_secret, 5, 3);
radius_create_request($radius, RADIUS_ACCESS_REQUEST);

// How to set CISCO attributes here?

$result = radius_send_request($radius);

я пробовал radius_put_attr, radius_put_string, radius_put_vendor_attr, radius_put_vendor_string и другие методы, но ни один из них не работает.

Я пробовал другую библиотеку с открытым исходным кодом (Чистый PHP Радиус), который использует Sockets и UDP для связи с сервером RADIUS, но я также не могу установить свои собственные атрибуты.

Там не достаточно примеров, поэтому любая помощь будет оценена.

3

Решение

$radius = radius_auth_open();
radius_add_server($radius, "172.17.10.1",1812, "12345", 5, 3);
radius_create_request($radius, RADIUS_ACCESS_REQUEST);

radius_put_attr($radius, RADIUS_USER_PASSWORD, "mouse");


radius_put_vendor_attr (  $radius , 9 , 250 , "S115.12.11.10" );

radius_put_attr (  $radius , RADIUS_USER_NAME , "testusername" ) ;
radius_put_addr ($radius,RADIUS_NAS_IP_ADDRESS,"172.17.10.9");
radius_put_attr (  $radius , 87   , "0x0"  );
radius_put_vendor_attr (  $radius , 9 , 249 , "mypassword" );
radius_put_vendor_attr (  $radius , 9 , 252 , "\001" );
radius_put_vendor_string (  $radius , 9 , 250 , "S115.12.11.10" );
$result = radius_send_request($radius);

switch ($result) {
case RADIUS_ACCESS_ACCEPT:
// An Access-Accept response to an Access-Request indicating that the RADIUS server authenticated the user successfully.
echo 'Authentication successful';
break;
case RADIUS_ACCESS_REJECT:
// An Access-Reject response to an Access-Request indicating that the RADIUS server could not authenticate the user.
echo 'Authentication failed';
break;
case RADIUS_ACCESS_CHALLENGE:
// An Access-Challenge response to an Access-Request indicating that the RADIUS server requires further information in another Access-Request before authenticating the user.
echo 'Challenge required';
break;
default:
die('A RADIUS error has occurred: ' . radius_strerror($radius));
}

Ниже приведено описание пользовательских атрибутов Cisco.

250-> Cisco-Account-Info

252-> Командный код Cisco

249-> Cisco-Subscriber-Password

87-> NAS-Port-ID

http://docstore.mik.ua/univercd/cc/td/doc/product/access/acs_serv/6510ssg/6510sw11/app_d_rd.htm

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]