ISPmanager API. Методы авторизации

ISPmanager 4 предоставляет возможность использовать различные способы авторизации для использования панели управления как в интерактивном режиме (через броузер), так и с использованием локальных, либо удалённых вызовов из внешних программ или скриптов. На данный момент существуют четыре метода авторизации:

Авторизация с использованием уникального номера сессии.
Авторизация с использованием authinfo.
Авторизация с использованием доверенных IP-адресов.
Авторизация при локальном вызове функций ISPmanager.

Также в данном документе рассматривается возможность выполнения функций ISPmanager от имени другого пользователя, а также использование протоколов HTTP и HTTPS при работе с панелью управления.

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

Данный метод наиболее всего подходит для использования панели управления через броузер. Для того, чтобы вызвать какую-либо функцию ISPmanager, нужно обратиться по следующему URL, используя соответствующие функции языков программирования или команды shell.

https://IP-адрес/manager/ispmgr?auth=номер_сессии&out=xml&func=функция&параметр1=значение&параметр2=значение...

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

https://IP-адрес/manager/ispmgr?out=xml&func=auth&username=имя_пользователя&password=пароль

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

<?xml version="1.0" encoding="UTF-8"?>
<doc>
<auth id="номер сессии"/>
</doc>

После этого вы должны будете передавать полученный номер сессии с каждым запросом к ISPmanager в параметре auth. Номер сессии хранится в течении 30 минут. По истечении этого срока вы должны будете заново пройти авторизацию.

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

Данный метод авторизации удобен для удалённого обращения к панели управления. Для вызова какой-либо функции ISPmanager необходимо добавить дополнительный параметр authinfo и указать в нём имя пользователя и пароль, под которыми вы хотите выполнить операцию, например,

https://IP-адрес/manager/ispmgr?authinfo=admin1:mypasswd&out=xml&func=функция&параметр1=значение&параметр2=значение...

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

Авторизация с использованием доверенных IP-адресов

Данный метод авторизации особенно удобен для удалённого обращения к панели управления, когда все обращения производятся с определённого IP-адреса. В качестве примера можно привести сервер, на котором располагается биллинговая система, которая периодически опрашивает панель управления для получения информации об использовании трафика, дискового пространства, количества WWW доменов и прочего. Данный метод позволяет отказаться от авторизации как таковой, указав в файле конфигурации панели управления /usr/local/ispmgr/etc/ispmgr.conf следующую строку:

TrustIP  IP-адрес  пользователь

В качестве параметра "IP-адрес" необходимо указать адрес сервера, с которого будут приходить запросы к панели управления. В качестве параметра "пользователь" - имя пользователя, с правами которого будут осуществляться операции с панелью управления. Данный параметр является опциональным. Если его нет, запросы будут обрабатываться с правами root.

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

Данный метод авторизации является наиболее предпочтительным при локальном обращения к панели управления из внешних программ или скриптов. В качестве примера можно привести обращение к панели управления из своего скрипта, который выполняется с определённой периодичностью с помощью cron. В данном случае панель управления самостоятельно отслеживает UID процесса, который сделал запрос, и обрабатывает его с правами пользователя, который имеет этот UID. В данном случае никакой дополнительной авторизации не требуется.

HTTP или HTTPS?

Так как HTTP является незащищенным протоколом, передавать пароли или номера сессий с его помощью небезопасно. Поэтому панель управления отслеживает, совпадает ли IP-адрес вызывающей стороны с IP-адресом сервера, на котором она расположена, и, если совпадает, то есть в случае локального вызова функций ISPmanager, разрешает использование протокола HTTP. В противном случае разрешается использование только HTTPS и, при попытке обращения к панели управления по протоколу HTTP, будет возвращена ошибка.

Вызов функций ISPmanager с правами другого пользователя

Для того, чтобы обратиться к какой-либо функции ISPmanager с правами другого пользователя, нужно добавить к URL дополнительный параметр su=имя_пользователя. Администратор сервера может вызывать функции с правами любых пользователей, реселлер - только с правами своих пользователей. Для всех остальных эта возможность запрещена.