Авторизация

Авторизация обязательна перед вызовом функций панели управления.

Авторизация с использованием уникального номера сессии

Этот метод наиболее подходит для использования панели управления через браузер или для скриптов, которые обращаются к ней неоднократно.

Авторизация происходит путём обращения по следующему URL:

https://bill.miran.ru/billmgr?out=xml&func=auth&username=имя_пользователя&password=пароль


После этого панель управления вернёт либо сообщение об ошибке, либо XML-документ следующего вида:

<?xml version="1.0" encoding="UTF-8"?>

<doc ...>

<auth id="номер сессии" level="уровень доступа">номер сессии</auth>

...

</doc>


Сессия привязывается к IP-адресу. В дальнейшем необходимо передавать полученный номер сессии с каждым запросом к панели управления в параметре "auth":

https://bill.miran.ru/billmgr?auth=номер_сессии&out=xml&func=функция&параметр1=значение&параметр2=значение...


Номер сессии хранится в течение часа со времени последнего запроса. Если в течение часа не было выполнено никаких запросов, необходимо заново пройти авторизацию. Уровень доступа определяет права, с которыми авторизовался пользователь. Рекомендуется проверять его на соответствие ожидаемому, чтоб избежать сбоев в работе скрипта.

Авторизация с использованием authinfo

Этот метод авторизации удобен для удалённого единичного обращения к панели управления. В отличии от предыдущего примера, вместо параметра "auth" с номером сессии можно передать параметр "authinfo" и указать в нём сразу имя пользователя и пароль, под которыми будет выполнена операция, например:

https://bill.miran.ru/billmgr?authinfo=admin1:mypasswd&out=xml&func=функция&параметр1=значение&параметр2=значение...


Этот метод авторизации является разовым, то есть необходимо передавать параметр "authinfo" с каждым запросом к панели управления.


Авторизацию через "authinfo" можно ограничить "белым списком" IP-адресов и/или сетей. "Белый список" можно настроить через параметры "RestrictAuthinfoRange" и "Option RestrictAuthinfo" конфигурационного файла или через настройки авторизации.

Сквозная авторизация по ключу

Используется для реализации сквозной авторизации пользователя в панели управления из других систем провайдера при помощи только логина или пароля администратора. Если клиент идентифицирован внешним скриптом, например, билинговой системой, и его необходимо перенаправить в панель управления, минуя шаг авторизации. Для этого скрипт должен сгенерировать секретный ключ (любая строка, не менее 16 символов длиной).


Например, получили строку "1234567890qwertyuiop".


Пользователь, под которым необходимо авторизоваться, имеет логин "vasya".


Авторизационные данные администратора BILLmanager, например, пользователь "root" с паролем "secret".

Далее скрипту необходимо выполнить следующий запрос:

https://bill.miran.ru/billmgr?out=xml&authinfo=root:secret&func=session.newkey&username=vasya&key=1234567890qwertyuiop

В ответ будет либо "ok", либо ошибка.


Если получен "ok", то пользователя, которого нужно авторизовать, необходимо перенаправить на следующий URL:

https://bill.miarn.ru/billmgr?func=auth&username=vasya&key=1234567890qwertyuiop&checkcookie=no


После перехода по данному URL пользователь будет авторизован в панели управления, а ключ удалён.

Задание ключа возможно с любого IP-адреса. IP-адрес не привязывается к номеру сессии. Ключ действителен один раз. Ограничение на вход с определённых IP-адресов не учитывается.

Обновлено