Можно использовать различные клиентские приложения для доступа к данным пользователей на сервере CommuniGate Pro: папкам, календарям, контактам, файлам и так далее.

  • Модуль POP — это POP3-сервер; этот модуль позволяет пользователям забирать сообщения из своей папки INBOX (и, при необходимости, из других папок), используя почтовые программы, работающие по протоколу POP3.

  • Модуль IMAP — это сервер по протоколу IMAP4rev1; этот модуль позволяет пользователям обрабатывать сообщения в любых папках аккаунта, используя почтовые программы, работающие по протоколу IMAP.

  • Модуль веб-интерфейса — это HTTP (веб) сервер приложений; этот модуль позволяет пользователям работать с сообщениями, находящимися в любых папках и использовать другие возможности, предоставляемые сервером CommuniGate Pro через любой веб-браузер.

  • Модуль XIMSS — это сервер XML сообщений, расписаний и ссигналов; этот модуль позволяет пользователям совершать телефонные вызовы и управлять ими, работать с сообщениями, находящимися в любых папках, работать с расписаниями и заданиями как индивидуально, так и в режиме группового взаимодействия, а также использовать другие возможности, предоставляемые сервером CommuniGate Pro совместно с насыщенными функциональными возможностями веб-клиентами (в частности, с клиентами, использующими Flash® технологию).

  • Модуль MAPI является расширением модуля IMAP; с его помощью пользователи получают доступ к информации на сервере через Microsoft® Windows MAPI (Mail API) и используют Microsoft Outlook в полнофункциональном режиме группового взаимодействия с аккаунтами на сервере CommuniGate Pro.

  • Модуль AirSync является расширением модуля HTTP; с его помощью пользователи могут получать доступ к папкам и аккаунтам на сервере через протокол Microsoft® ActiveSync и использовать клиентское ПО на мобильных платформах для отправки и получения почтовых сообщений, синхронизации контактов, календарей и заданий между мобильным приложением и аккаунтом на сервере CommuniGate Pro.

  • Модуль CalDAV является расширением модуля HTTP; он позволяет пользователям получать доступ к папкам с календарями и заданиями по протоколу CalDAV.

  • Модуль CardDAV является расширением модуля HTTP; он позволяет пользователям получать доступ к папкам с контактами по протоколу CardDAV.

  • Модуль HTTP реализует сервер по протоколу HTTP, который используется в качестве транспортного уровня другими модулями (такими, как AirSync и WebDAV, Модулем XIMSS в режиме HTTP Binding, и т.д.), а также обеспечивает доступ к хранилищу файлов пользователя, к его папкам и информации, необходимой для работы в группах.

  • Модуль FTP — сервер по протоколу FTP; этот модуль обеспечивает доступ к хранилищу файлов пользователя.

  • Модуль TFTP — сервер по протоколу TFTP; этот модуль обеспечивает доступ к хранилищу файлов пользователя.

Доступ к данным пользователей

Каждый пользователь может получать доступ к CommuniGate Pro через различные модули доступа — POP, IMAP, XIMSS, веб-интерфейс пользователя, FTP, XMPP и т.д. Несколько приложений могут работать с информацией пользователя в одно и то же время, используя как один и тот же, так и разные модули доступа или услуг.

Доступ к любой папке любого пользователя в CommuniGate Pro может быть совместным: то есть, доступ к папке может быть предоставлен не только пользователю-владельцу этой папки, но также и другому пользователю, при условии, что сам пользователь или администратор предоставили другим пользователям соответствующие права.

Обслуживание нескольких доменов

Основной проблемой при обслуживании нескольких доменов на одном сервере является предоставление доступа пользователям в различных доменах. Чтобы найти пользователя с указанным именем, сервер должен получить имя домена, в котором его следует искать.
Доступ производится аналогично доставке сообщений или обработке сигналов: сервер должен знать «полное имя пользователя» — адрес в форме accountname@domainname.

Существует несколько способов передачи имени домена серверу:

  • Клиентское приложения указывает имя домена в явном виде.

    • Если пользователь получает доступ к серверу через HTTP (веб-интерфейс), это происходит автоматически, так как сначала пользователь указывает URL сервера (http://domainname:port), а затем вводит имя пользователя в специальной регистрационной форме.
      Так как все современные браузеры передают оригинальный URL серверу, то имя домена становится известным серверу и модуль HTTP сразу добавляет имя домена к простому имени пользователя, введённому в регистрационной форме.

    • Если пользователь получает доступ к серверу через XMPP, это происходит автоматически: пользователь указывает имя сервера в настройках клиентского приложения, а клиентское приложение посылает эти данные в атрибуте 'to' потока XML.

    • Если пользователь получает доступ к серверу через почтовую программу, работающую по протоколу POP или IMAP, то он может в настройках почтовой программы указать полное имя в соответствующем поле «имя пользователя».
      Многие почтовые программы не допускают использования символа @ в поле «имя пользователя»; в таких случаях вместо него можно использовать символ %.
      Для доступа к аккаунту john в дополнительном домене client1.com пользователь должен указать имя пользователя в виде john%client1.com, а не просто john.

    • Если пользователь получает доступ к серверу через клиентское приложение, работающее по протоколу XIMSS, то это приложение для целей аутентификации всегда использует полное имя пользователя.

  • Имя домена может быть обнаружено косвенным образом, на основании информации об IP-адресе, на который было осуществлено соединение. Если пользователи получают доступ к серверу не только через веб-интерфейс и не указывают полное имя пользователя в настройках почтовой программы POP/IMAP, то для определения имени домена может быть использована информация об IP-адресах, обслуживаемых сервером.
    Сервер обслуживает несколько IP-адресов, если он имеет более одного Интернет (IP) адреса. В DNS добавочным доменам могут быть назначены отдельные IP-адреса.
    Если добавочный домен имеет свой IP-адрес и пользователь устанавливает соединение на этот IP-адрес, то все простые имена пользователя, указанные в почтовой программе пользователя, интерпретируются как простые имена из этого добавочного домена.
    Назначение отдельного IP-адреса для каждого домена может быть довольно трудоёмкой процедурой, однако этот метод должен использоваться, если невозможно заставить пользователя указывать явно имя домена.

Эти методы могут использоваться в комбинации: некоторое число доменов может иметь выделенные для них IP-адреса, в то время как для других будет требоваться явное указание доменного имени.

Системы с несколькими IP-адресами

Каждая сессия доступа к серверу начинается с процедуры аутентификации: клиентское приложение посылает на сервер имя пользователя и пароль.

Сервер CommuniGate Pro пытается определить, какой домен он должен использовать для поиска указанного имени.

  • Если указанное имя содержит символ @ или символ %, то сервер рассматривает указанное пользователем имя как «полное имя аккаунта», то есть имя пользователя (или другого объекта) вместе с именем домена: username@domainname или username%domainname (смотрите выше).

  • Если указанное имя не содержит символа @ или символа %, то для определения имени домена сервер использует IP-адрес, на который установлено соединение.
    В системах с несколькими IP-адресами определённые IP-адреса могут быть назначены некоторым доменам. Если IP-адрес, с которым установлено соединение, соответствует некоторому домену, то имя этого домена будет добавлено к имени пользователя для формирования полного имени пользователя. Если адрес соответствует главному домену, то указанное имя считается именем в главном домене.
    По умолчанию, все IP-адреса сервера соответствуют главному домену.

 

Пример:

Сервер имеет 2 IP-адреса: 192.0.0.1 и 192.0.0.2.
Главный домен сервера company.com, а добавочные домены client1.com и client2.com.
A-запись в DNS для домена company.com указывает на IP-адрес 192.0.0.1,
A-запись для домена client1.com указывает на IP-адрес 192.0.0.2, а A-запись для домена client2.com указывает на тот же самый «главный» IP-address 192.0.0.1.
В каждом домене есть пользователь с именем info.

Три пользователя настроили свои клиентские программы для доступа к аккаунту info, но они указали разное значение настройки «сервер»: первый ввёл company.com, второй - client1.com, а третий пользователь - client2.com.

Когда первый пользователь запускает свою почтовую программу:

  • Клиентское приложение берет указанный в настройке «сервер» company.com, и использует A-запись в DNS для преобразования этого имени в IP-адрес 192.0.0.1.

  • Клиентское приложение устанавливает связь по этому адресу (который является одним из двух адресов сервера) и передаёт серверу имя аккаунта info.

  • Сервер определяет, что указано простое имя аккаунта info и соединение установлено через адрес 192.0.0.1.

  • Сервер определяет, что этот IP-адрес соответствует главному домену и добавляет имя главного домена company.com к указанному простому имени.

  • Сервер формирует корректное полное имя пользователя info@company.com.

Когда второй пользователь запускает своё клиентское приложение:

  • Клиентское приложение берет указанный в настройке «сервер» client1.com, и использует A-запись в DNS для преобразования этого имени в IP-адрес 192.0.0.2.

  • Клиентское приложение устанавливает связь по этому адресу (который является одним из двух адресов сервера) и передаёт серверу имя пользователя info.

  • Сервер определяет, что указано простое имя пользователя info и соединение установлено через адрес 192.0.0.2.

  • Сервер определяет, что этот IP-адрес соответствует домену client1.com и добавляет имя этого домена к указанному простому имени.

  • Сервер формирует корректное полное имя пользователя info@client1.com.

Когда третий пользователь запускает своё клиентское приложение:

  • Клиентское приложение берёт указанный в настройке «сервер» client2.com и использует A-запись в DNS, чтобы преобразовать это имя в IP-адрес 192.0.0.1.

  • Клиентское приложение устанавливает связь по этому адресу (который является одним из двух адресов сервера) и передаёт серверу имя пользователя info.

  • Сервер определяет, что указано простое имя пользователя info и соединение установлено через адрес 192.0.0.1.

  • Сервер определяет, что этот IP-адрес соответствует главному домену и добавляет имя главного домена company.com к указанному простому имени.

  • Сервер формирует некорректное полное имя пользователя info@company.com.

Это происходит, потому что клиентское приложение (обычно — старый POP или IMAP почтовый клиент, FTP-клиент и тому подобное) не передал информацию об имени «сервера», указанную в его настройках, и единственной информацией, которой располагал сервер для определения полного имени аккаунта, был IP-адрес соединения.

Чтобы решить эту проблему, третий пользователь должен указывать имя пользователя в виде info%client2.com, а не просто info. В этом случае, когда пользователь запускает своё клиентское приложение:

  • Клиентское приложение берёт указанный в настройке «сервер» client2.com и использует A-запись в DNS для того, чтобы преобразовать это имя в IP-адрес 192.0.0.1.

  • Клиентское приложение устанавливает связь по этому адресу (который является одним из двух адресов сервера) и передаёт серверу имя пользователя info%client2.com.

  • Сервер определяет, что указанно полное имя пользователя info%client2.com, и не обращает внимания на IP-адрес. Он конвертирует символ % в символ @.

  • Сервер формирует корректное полное имя пользователя info@client2.com.

Обратите внимание: большинство FTP-клиентов работает аналогично почтовым программам, использующим POP/IMAP и, в тех случаях, когда FTP пользователь не используют для установления соединения выделенный для его домена IP-адрес, он должен будет указывать полное имя пользователя.

Обратите внимание: MAPI коннектор всегда посылает полное имя пользователя: если пользователь указывает имя без знака @ или %, коннектор добавляет к указанному имени знак '@' и значение, указанное в настройке имя сервера.

Обратите внимание: XMPP-клиенты отправляют имя 'домена пользователя' вместе с именем пользователя. Если указанное имя пользователя не содержит символов @ или %, то сервер добавляет символ '@' и имя домена к имени пользователя.

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

После того, как полное имя пользователя сформировано, это имя (адрес) передаётся в маршрутизатор.

  • Если маршрутизатор сообщает об ошибке, клиент не считается аутентифицированным, и сообщение об ошибке возвращается клиентскому приложению. Обычная ошибка — Unknown user, но встречаются и другие, которые маршрутизатор или другие модули могут выдать при преобразовании адреса.

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

  • Если маршрутизатор направляет адрес на какого-нибудь пользователя в некотором локальном домене, то происходит открытие доступа к этому пользователю, и осуществляется проверка пароля этого пользователя.

Это означает, что все правила маршрутизации, применяемые к адресам в почте и в сигналах, так же применяются и к именам пользователей, указанным в почтовых программах для целей аутентификации.

Пример:

Пользователь с именем john имеет псевдоним john_smith;
все сообщения и сигналы, адресованные на адрес john_smith будут направляться пользователю john;
в клиентском приложении можно указывать как john, так и john_smith в настройке «имя пользователя» — в любом случае сервер будет использовать пользователя с именем john.

Пример:

Пользователь john был переведён из главного домена company.com в домен client1.com и был переименован в j.smith. Администратор создал правило маршрутизации (запись в маршрутизаторе):
<john> = j.smith@client1.com;
все сообщения и сигналы, адресованные на john@company.com будут посылаться в аккаунт j.smith в домене client1.com;
пользователь все ещё может указывать в своём клиентском приложении john в настройке «имя пользователя» и company.com в настройке «сервер» — но сервер будет работать с ним как с пользователем j.smith в домене client1.com.

Обратите внимание:

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