| Версия 5.2
Введение
Установка
Администрирование
Сеть
Объекты
Почта
Сигналы
Доступ
Услуги
Справочник
Кластеры
Программы
Разное
Лицензирование
Веб Почта
Pronto!
PBX
Услуги | HTTP | LDAP | PWD | RADIUS | SNMP | BSDLog
# HTTP Модули Веб Интерфейс Администратора Сервера Веб Интерфейс Администратора Домена Веб Интерфейс Пользователя Доступ к Хранилищу файлов Пользователя Конфигурирование HTTP Модулей Маршрутизация Общий интерфейс шлюза (CGI) Интерфейс Командной Строки (CLI/API) В модулях CommuniGate Pro HTTP Admin и HTTP User реализован HTTP протокол в TCP/IP сетях. Модуль HTTP Admin: обеспечивает доступ к страницам Веб Интерфейса Администрирования Сервером. обеспечивает доступ к страницам Веб Интерфейса Администрирования Домена. HTTP User модуль: обеспечивает доступ через Веб Интерфейс Пользователя ко всем данным Пользователя и к архивам Списков Рассылки. обеспечивает работу протокола AirSync. обеспечивает HTTP Привязку для XIMSS Интерфейса. обеспечивает доступ к Хранилищу файлов Пользователя. обеспечивает доступ к интерфейсу Parlay X. обеспечивает работу протокол CalDAV и метода доступа Публикация/Подписка к данным Календаря и Заданиям. обеспечивает доступ к Общему Интерфейсу Шлюза (CGI-программам). обеспечивает доступ к CG/PL Веб приложениям. обеспечивает доступ к CLI/API. HTTP модули CommuniGate Pro поддерживают различные методы аутентификации пользователей, включая аутентификацию через GSSAPI, Kerberos и по Сертификату, обеспечивая единый механизм входа пользователя.

## Веб Интерфейс Администратора Сервера

Администратор Сервера может использовать любой Веб браузер, работающий с Веб (HTML) формами для удалённой настройки и наблюдения за сервером.

Применяемая схема аутентификации через HTTP протокол защищает от неавторизованного доступа к страницам Веб Администрирования Сервером. Для того, что бы получить доступ к страницам Веб Администрирования, Пользователь должен ввести своё имя и пароль в CommuniGate Pro и обладать соответствующими Правами Доступа к Серверу.

По умолчанию, HTTP Admin модуль принимает незашифрованные TCP/IP соединения со страницами Веб Администрирования на TCP порт 8010 и безопасные (SSL/TLS) соединения на TCP порт 9010.

Для получения доступа к страницам Веб Администрирования Администратор Сервера должен использовать следующие адреса:
`http://domain.com:8010`
`https://domain.com:9010`
где domain.com является либо именем главного домена сервера (псевдонимом главного домена), либо IP адресом Сервера CommuniGate Pro.

Если вы назначили все IP адреса вашего Сервера и имена в DNS дополнительным доменам, то в в результате такой ошибки при конфигурировании сервера вы можете оказаться отрезанным от Веб Интерфейсу Администратора Сервера.

В этом случае, для получения доступа через Веб Интерфейс Администратора Сервера используйте следующий URL:

  `http://sub.domain.com:8010/MainAdmin/`
  `https://sub.domain.com:9010/MainAdmin/`
  где sub.domain.com является любым именем, ссылающимся на ваш компьютер сервера или на любой из его IP адресов.

## Веб Интерфейс Администратора Домена

Если Сервер CommuniGate Pro обслуживает несколько доменов, тот этот же порт может использоваться Администраторами Доменов для доступа к Установкам Доменов и спискам пользователей.

Администратор домена сервер должен использовать следующие адреса:

  `http://sub.domain.com:8010`
  `https://sub.domain.com:9010`
  где sub.domain.com является именем администрируемого домена.

Сервер запросит имя пользователя и пароль, и, если пользователь с этим именем обладает правами доступа Администратор Домена, покажет список Пользователей этого Домена.

Иногда этот URL не может быть использован. Например, Домен может не иметь A-записи в DNS (а иметь только MX-записи). Для получения доступа к такому домену, Администратор Домена должен использовать следующий URL:

  `http://domain.com:8010/Admin/sub.domain.com/`
  где:
    domain.com является либо именем Главного Домена Сервера или его псевдонимом, либо IP адресом Сервера CommuniGate Pro.
    sub.domain.com является именем требуемого Домена.

Другие Домены могут указать ваш Домен в качестве Домена Администратора. На странице с Установками Домена приводится перечень этих Доменов:

Администрируемые Домены
node100.example.com | установки
test-dom.example.com | установки

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

## Доступ к Веб Интерфейсу Пользователя

Пользователи CommuniGate Pro могут соединиться с Сервером CommuniGate Pro через любой Веб браузер (по HTTP протоколу) и изменять свои данные, просматривать свои Папки, читать, копировать, удалять, перенаправлять и переадресовывать сообщения, передвигать сообщения между Папками, создавать и передавать новые сообщения и т.д.
Этот компонент CommuniGate Pro называется Веб Интерфейс Пользователя.

Зарегистрированные пользователи и гости также могут использовать этот компонент для просмотра архивов Списка Рассылки.

По умолчанию модуль HTTP User принимает незашифрованные TCP/IP соединения на TCP порт 8100 и безопасные соединения на TCP порт 9100. Если ваш сервер не должен работать совместно с каким-нибудь другим Веб Сервером на одном компьютере, то рекомендуется изменить эти номера портов на 80 и 443 - стандартные номера для HTTP и HTTPS.
В этом случае ваши пользователи не должны будут явно указывать номер порта в своих браузерах.

## Доступ к Хранилищу файлов Пользователя

Пользователи CommuniGate Pro могу использовать своё Хранилище Файлов Пользователя как персональный Веб сайт. Дополнительную информацию смотрите в разделе Хранилище Файлов.

URL на Хранилище Файлов (персональный Веб сайт) Пользователя accountName@domainName имеет вид:

  `http://domainName:port/~accountName`

  `https://domainName:port/~accountName`

где `port` является одним из номеров портов модуля HTTP User (по умолчанию 8100 и 9100).

Список файлов в Хранилище Файлов может получен по ссылке:

  `http://domainName:port/~accountName/index.wssp`

  `https://domainName:port/~accountName/index.wssp`

Эта страница доступна только самому Пользователю; она используется для управления файлами пользователя в Хранилище Файлов.

Вы можете задать другой префикс для Хранилище Файлов, изменив соответствующие Установки Домена. Эта настройка может также быть пустой строкой и, в таком случае, для доступа к персональному Веб сайту будет использоваться следующий URL:

  `http://domainName:port/accountName/`

  `https://domainName:port/accountName/`

Вы можете также использовать Маршрутизатор CommuniGate Pro для настройки доступа к персональным Веб сайтам с использованием URL, содержащего имена доменов. Дополнительную информацию смотрите ниже в разделе Маршрутизатор.

## Конфигурирование HTTP Модулей

Для того, что бы настроить параметры HTTP модулей, используйте Веб Интерфейс Администратора. Откройте в области Установки страницу Услуги, затем откройте страницу HTTPA (Admin) или HTTPU (User).

Обработка
Уровень Журнала: |  | Каналы: |  | Приёмник
Ограничение размера Запроса: |  | Сканировать Запросы превышающие лимит
| Поддерживать 'Keep-Alive'

Опции HTTP
Объявлять 'Basic'-Аутентификацию | Объявлять 'Digest'-Аутентификацию
Объявлять 'NTLM'-Аутентификацию | Объявлять 'Negotiate'-Аутентификацию

Уровень Журнала
  Используйте эту настройку для того, что бы указать, какую информацию HTTP модуль должен сохранять в Журнале работы Сервера. Обычно используется уровень `Основные` или уровень `Проблемы` (не фатальные ошибки). В случае, если в работе HTTP модуля возникают проблемы, возможно, целесообразным будет увеличить детализацию до уровня `Подробности` или `Всё`: в этом случае в Журнал работы Сервера будет записываться более подробная информация о работе модуля.
  Записи, помещённые модулем HTTP Admin в Журнал работы Сервера, имеют пометку `HTTPA` .
  Записи, помещённые модулем HTTP User в Журнал работы Сервера, имеют пометку `HTTPU` .
`Каналы`
  Эта настройка используется для того, что бы ограничить число одновременных соединений, которое может принимать HTTP модуль. Большинство браузеров открывают несколько соединений для загрузки HTML страницы и находящихся на ней картинок, так что не устанавливайте это ограничение в значение менее 5, так как в таком случае некоторые браузеры не смогут загрузить находящиеся на странице графические объекты.
`Приёмник`
  Используйте эту ссылку для того, что изменить настройки портов приёмников для HTTP Admin или HTTP User. Здесь вы можете указать номер(а) портов TCP, которые должны использоваться в этой Услуге, используемый интерфейс и другие опции.

  Если на компьютере, на котором запущен Сервер CommuniGate Pro, одновременно функционирует другой Веб Сервер, то вы должны указать номер порта в "добавочном диапазоне" для того, что бы избежать конфликтов с другим Веб Сервером. Обычно "добавочные" Веб Сервера используют номера портов в диапазон 8000-8100. Если вы используете номер порта 8010, то вы можете соединяться с вашим сервером вводя в Веб браузере адрес `http://xxx.yyy.zzz:8010`, где xxx.yyy.zzz является именем домена (А-записью) или IP адресом вашего сервера.

`Ограничение размера Запроса`
  Эта настройка ограничивает максимальный размер HTTP запроса, принимаемый сервером. Возможно, вы захотите увеличить этот лимит, если вам требуется разрешить пользователям загружать большие файлы и/или прикреплять большие файлы к сообщениям, созданным в Веб Интерфейсе Пользователя.
`Поддерживать 'Keep-Alive'`
  Если эта опция включена, то CommuniGate Pro будет поддерживать протокол Keep-Alive и браузер пользователя сможет получать несколько файлов, используя одно HTTP соединение. В некоторых браузерах это функция реализована некорректно и пользователи могут столкнуться с проблемами при включении этой функции.
`Сканировать Запросы превышающие лимит`
  Если эта опция выключена и размер полученного HTTP запроса превышает заданное ограничение, то Сервер отправляет ответ с ошибкой и закрывает соединение. Многие браузеры в таком случае не показывают ответ с ошибкой. Вместо этого они отображают стандартное сообщение типа "связь прервалась".
  Если эта опция включена, то Сервер отправляет обратно сообщение об ошибке, но получает полностью весь запрос (хотя и нигде его не сохраняет). В этом случае браузер пользователя покажет сообщение об ошибке.
`Объявлять 'Basic'-Аутентификацию`, `Объявлять 'Digest'-Аутентификацию`,
`Объявлять 'NTLM'-Аутентификацию`, `Объявлять 'Negotiate'-Аутентификацию`
  Если эти опции включены, то Сервер будет информировать браузеры о том, что можно использовать незашифрованные (Basic) или безопасные (Digest, NTLM, Negotiate/SNEGO) методы аутентификации. Если вы планируете работать через Веб Интерфейс Администратора через Интернет, используя незашифрованные соединения, возможно, вам потребуется включить эти опции. Разные браузеры могут вести себя различным образом при включении этих опций. Некоторые выведут сообщения об ошибке, некоторые будут в любом случае использовать незашифрованный (Basic) метод аутентификации, так что включайте эти опции только с осторожностью и только при необходимости.
  Обратите внимание: GSSAPI (Kerberos) методы аутентификации становятся доступными при включении опции Объявлять 'Negotiate'-Аутентификацию.

Для каждого отправляемого объекта HTTP модули устанавливают `типы MIME`. Для определения подходящего типа для обычных файлов, модуль использует расширение имени файла и следующую "базовую" встроенную таблицу:

Расширение имени файла | MIME-тип
--- | ---
`html` | `text/html`
`txt` | `text/plain`
`gif` | `image/gif`
`jpg` | `image/jpeg`
`css` | `text/css`
`js` | `text/javascript`

Существует также "расширенная" встроенная таблица, которая отображается на странице Веб Администрирования.

Вы можете создать свою собственную таблицу расширений, указав дополнительные расширения имён файлов и соответствующие им MIME-типы:

MIME-типы
Расширение имени файла | MIME-тип
--- | ---
doc | application/msword
eml | message/rfc822
flv | video/x-flv
htm | text/html
js | text/javascript
jss | text/javascript
mov | video/quicktime
mp3 | audio/mpeg
mpg | video/mpeg
pdf | application/pdf

Расширенная "встроенная" таблица показывается сразу под вашей собственной пользовательской таблицей.

При преобразовании расширения файла в MIME-тип, сначала проверяется пользовательская таблица,а затем встроенная таблица. Как следствие, вы можете переопределить значения встроенной таблицы значениями из пользовательской таблицы.

.

## Маршрутизация

HTTP модули используют Маршрутизатор для обработки всех получаемых ими адресов. Но, в отличие от модулей Доступа, HTTP модули зачастую имеют дело не с полными адресами электронной почты, а только с именами доменов.

Когда модуль HTTP Admin получает запрос, он использует имя или IP адрес, указанный в URL, для того, что бы решить, какие страницы Администрирования Домена следует отображать.

Когда модуль HTTP User получает запрос, он использует имя или IP адрес, указанный в URL, для того, что бы решить, к какому Домену (странице входа, Спискам Рассылки, Хранилищу Файлов и т.п.) ему следует предоставить доступ.

Для того, что бы использовать все возможности Маршрутизации CommuniGate Pro (Таблицу Маршрутизации, Псевдонимы, IP адреса при Отображении Доменов и т.д.), HTTP модуль формирует полный адрес электронной почты `LoginPage@domainname` (где domainname - имя домена, указанное в URL) и затем обрабатывает этот адрес в Маршрутизаторе:

- Если адрес `LoginPage@domainname` направляется в любой другой модуль, отличный от LOCAL, возвращается ошибка.
- Если адрес `LoginPage@domainname` направляется в модуль LOCAL и локальная часть результирующего адреса остаётся `LoginPage`, то для открытия соответствующего Домена CommuniGate Pro используется доменная часть результирующего адреса.
- Если адрес направляется в модуль LOCAL, но результирующее имя пользователя не является LoginPage, то открывается Хранилище Файлов Пользователя с таким именем. Если результирующий адрес имеет локальную часть, то открывается поддиректория с таким именем в Хранилище Файлов.

Примеры (записи в Маршрутизаторе, domainA.com является Доменом CommuniGate Pro):

`mail2.domain.com = domainA.com`
  При использовании URL `http://mail2.domain.com/` адрес `<LoginPage@mail2.domain.com>` направляется в адрес <LoginPage@domainA.com>, и открывается Веб Интерфейс для домена domainA.com.
`<LoginPage@mail2.domain.com> = user@domainA.com`
  При использовании URL `http://mail2.domain.com/` адрес `<LoginPage@mail2.domain.com>` направляется на локального пользователя user@domainA.com, и открывается Хранилище Файлов пользователя user@domainA.com.
`<LoginPage@mail2.domain.com> = subDir@user@domainA.com.domain`
  При использовании URL `http://mail2.domain.com/` адрес `<LoginPage@mail2.domain.com>` направляется на локального пользователя user@domainA.com с локальной частью subDir, и открывается директория subDir в Хранилище Файлов пользователя user@domainA.com.

## Общий интерфейс шлюза (CGI)

Модуль HTTP User может запускать CGI программы и скрипты. Для доступа к CGI программам должен использоваться URL `/cgi-bin/programName` и программа programName должна находиться в CGI Каталоге CommuniGate Pro.

Для того, что бы открыть страницу с настройками модуль HTTP User, используйте Веб Интерфейс Администратора:

CGI Программы
CGI Каталог: |
Расширение имени файла | Программа-Интерпретатор
--- | ---
Поля HTTP запросов

`CGI Каталог`
  Введите имя каталога с файлами на сервере, в котором находятся ваши CGP программы. Если эта директория находится внутри директории данных CommuniGate Pro, то вы можете указать её относительное имя; в противном случае введите полный путь к этой директории. CGI Каталог не должен иметь поддиректорий.
`Расширение имён файлов`
  Некоторые операционные системы (такие как Unix) могут исполнять различные программы/скрипты, автоматически запуская соответствующие интерпретаторы, тогда как другие операционные системы требуют, что бы программа-интерпретатор запускалась явно. Сервер CommuniGate Pro поддерживает такие операционные системы, позволяя вам указать имя программы-интерпретатора для определённый расширений имён файлов. В результате, когда Серверу CommuniGate Pro необходимо запустить программу или скрипт с заданным расширением, он формирует команду ОС, добавляя перед именем программы/скрипта указанное имя программы-интерпретатора.
  В примере выше Сервер будет обрабатывать URL `/cgi-bin/script.pl` исполняя
    `Perl.exe script.pl`
  команду операционной системы.
`Поля HTTP запросов`
  Используйте эту таблицу для того, что бы указать пользовательские, нестандартные поля заголовков HTTP запросов, которые вам необходимо передавать в CGI программы. Если в запросе содержится строка заголовка с указанным именем поля, то эта строка передаётся CGI программе как переменная среды с именем `HTTP_H_convertedFieldName`, где convertedFieldName является именем поля заглавными буквами, все символы минус (`-`) в котором заменены на символы подчёркивания (`_`).

CGI программы могут использоваться для расширения функциональности Веб Интерфейса Пользователя. Они могут входить на Сервер через его PWD модуль, выполнять какие-нибудь CLI/API операции и/или входить на Сервер через IMAP или XIMSS модуль для доступа к папкам пользователя и изменению хранящихся в них данных. Для упрощения операция входа, CGI программы могут использовать аутентификацию через SessionID.

## Интерфейс Командной Строки (CLI/API)

Модуль HTTP User обеспечивает доступ к Серверу по Интерфейсу Командной Строки (CLI/API) через область `/CLI/`.

### Текстовый Метод

Отправьте запрос GET или POST с параметром `command`. Значение параметра должно содержать команду CLI на исполнение.
Если обработка запроса оканчивается неуспешно, то код ошибки возвращается как строка с ошибкой HTTP ответа.
Если запрос оканчивается успешно, то кодом HTTP ответа будет 200.
Если Запрос возвращает какие-либо данные, то текстовое представление объекта, содержащего результат, отправляется как тело HTTP ответа.

### Метод SOAP

Отправьте SOAP XML запрос. Запрос должен иметь в точности один XML элемент - команду CLI на исполнение.
Тег XML элемента является тегом команды CLI.
Подэлементы XML элемента являются XML представлениями параметров объектов и/или элементами `key`. Текстовое тело элемента `key` является параметром команды CLI.

Пример:
  <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP-ENV:Body>
  <createAccount>
  <param>newuser@domain.dom</param>
  <key>TextMailbox</key>
  <param>
  <subKey key="RealName">John Doe</subKey>
  <subKey key="Password">soappass</subKey>
  </param>
  </createAccount>
  </SOAP-ENV:Body>
  </SOAP-ENV:Envelope>
  Этот запрос преобразовывается в:
  createAccount "newuser@domain.dom" TextMailbox {RealName="John Doe"; Password="soappass";}

Если запрос возвращает данные, то их XML представление добавляется в SOAP ответ.

Пример:
  <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP-ENV:Body>
  <getAccount>
  <param>newuser@domain.dom</param>
  </getAccount>
  </SOAP-ENV:Body>
  </SOAP-ENV:Envelope>
  Этот запрос преобразовывается в:
  getAccount "newuser@domain.dom"
  возвращается словарь данных:
  {Password="\001xxxxx"; RealName="John Doe";}
  Этот ответ отправляется в SOAP ответе:
  <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP-ENV:Body>
  <response>
  <object>
  <subKey key="Password">\001fjh{\024hdfu</subKey>
  <subKey key="RealName">SOAP Test</subKey>
  </object>
  </response>
  </SOAP-ENV:Body>
  </SOAP-ENV:Envelope>

Руководство CommuniGate® Pro. Copyright © 1998-2009, Stalker Software, Inc.