GAL, или Глобальная адресная книга в Zimbra OSE является адресной книгой, динамически формируемой на основе различных атрибутов LDAP. В ней содержатся почтовые адреса, имена и контактные данные всех пользователей домена, а доступ автоматически предоставляется всем им.

Пользователи не могут самостоятельно менять контактные данные. Например, сотрудница предприятия после свадьбы сменила фамилию. Это изменение появится в GAL, когда глобальный или доменный администратор Zimbra OSE внесет соответствующие правки в ее учетную запись.

В этой статье мы дадим инструкцию, как настроить маппинг атрибутов в GAL Zimbra OSE

Одной из проблем является то, что пользователям не разрешается самостоятельно менять собственные контактные данные. Иными словами, если сотрудница предприятия после свадьбы сменила фамилию, то отображаться в GAL с новой фамилией она будет только тогда, когда глобальный или доменный администратор Zimbra OSE внесет соответствующие правки в ее учетную запись. Связано это с тем, что вся информация об учетной записи хранится в LDAP - службе каталогов интернета, доступ к которой имеют только пользователи с администраторскими привилегиями. Каждая характеристика учетной записи, будь то имя, фамилия или номер телефона, являются атрибутами в LDAP, на основе которых впоследствии формируется GAL.

Пример структуры LDAP
Пример структуры LDAP

Изменять атрибуты LDAP, участвующие в формировании GAL можно по-разному. Часть из них можно изменить в консоли администратора Zimbra OSE. К ним относятся:

  • Телефон (telephoneNumber)

  • Домашний телефон (homePhone)

  • Мобильный телефон (mobile)

  • Пейджер (pager)

  • Факс (facsimileTelephoneNumber)

  • Организация (company)

  • Должность (title)

  • Улица, дом (street)

  • Город (l)

  • Область (st)

  • Почтовый индекс (postalCode)

  • Страна (co)

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

Например, к таким атрибутам относится physicalDeliveryOfficeName, где указывается номер офиса для доставки физических вещей. Другой пример — manager, где указывается почтовый адрес руководителя сотрудника. Чтобы отображать эти атрибуты в GAL, настройте их маппинг. Укажите, каким именно полям в контактной информации они будут соответствовать

Это делается при помощи команды вида zmprov mcf +zimbraGalLdapAttrMap x=y, где x - это название атрибута LDAP, а y - это название соответствующего ему поля в GAL.

Например, при помощи команды zmprov mcf +zimbraGalLdapAttrMap physicalDeliveryOfficeName=office, чтобы в поле GAL под названием Office отображалось значение атрибута physicalDeliveryOfficeName. Задать значение данного атрибута также можно в командной строке. Например, команда zmprov ma ivanov@example.ru physicalDeliveryOfficeName 6 установит значение соответствующего атрибута GAL для пользователя ivanov@example.ru на значение 6. После этого в почтовом клиенте Outlook, где поддерживается отображение номера офиса, будет отображаться заданный нами номер.

В предыдущих командах мы использовали параметр +zimbraGalLdapAttrMap, что означает добавление к существующей схеме соответствия атрибутов LDAP полям в GAL новых записей. Помимо добавления, данные записи можно изменять, а также исключать из схемы.

Например, если в вашем офисе появился ресепшен, на котором посетителю могут сообщить номер офиса нужного ему сотрудника, соответствующее поле можно убрать из GAL. Для этого введите команду zmprov mcf -zimbraGalLdapAttrMap physicalDeliveryOfficeName=office. Для присвоения полю GAL другого атрибута используйте параметр zimbraGalLdapAttrMap.

При смене локации компании или ее переименовании может потребоваться изменить атрибуты LDAP всех пользователей одновременно. Сделать это можно при помощи следующего скрипта. 

#!/bin/bash
echo "setting ldap variables"
source ~/bin/zmshutil
zmsetvars
sleep 2
for i in `ldapsearch -x -H $ldap_master_url -D $zimbra_ldap_userdn -w $zimbra_ldap_password | grep uid=| cut -d : -f 2 | sed 's/^\ //g'`
do
ldapmodify -x -H $ldap_master_url -D $zimbra_ldap_userdn -w $zimbra_ldap_password << EOF
dn: $i
changetype: modify
replace: zimbraCreateTimestamp
zimbraCreateTimestamp: 20211008100701Z
EOF
done

Перед использованием данного скрипта необходимо заменить параметры $ldap_master_url - example.ru:389 $zimbra_ldap_userdn - cn=%u,dc=example,dc=ru $zimbra_ldap_password - вывод команды zmlocalconfig -s | grep zimbra_ldap_password

Учитывая то, что большинство полей GAL недоступно для просмотра в веб-клиенте Zimbra OSE, проверить правильность их заполнения - также нетривиальная задача. Сделать это можно в MariaDB - базе данных Zimbra OSE, в которой хранится информация о всех адресных книгах.

Данные всех почтовых ящиков Zimbra OSE хранятся в почтовых группах. Найти группу, соответствующую учетной записи galsync можно с помощью команды zmprov getMailboxInfo galsync@example.ru. Вывод данной команды будет иметь примерно следующий вид:

mailboxId: 11
quotaUsed: 0

Здесь нас интересует параметр mailboxId. Именно основываясь на нем мы отыщем нужную нам почтовую группу. Для этого воспользуемся командой:

expr 11 % 100
11

В данном случае порядковый номер учетной записи соответствует группе потому, что он меньше 100. В случаях, когда порядковый номер больше 100, номер группы будет отличаться. Например, учетная запись с порядковым номером 5437 будет относиться к группе 37.

После того как нам стал известен номер группы учетной записи galsync, можно найти его адресную книгу:

mysql mboxgroup11
> select * from mboxgroup11.mail_item where type = '6' and mailbox_id = '11';

В выводе данной команды можно посмотреть на то, какие невидимые в веб-клиенте Zimbra OSE атрибуты есть у учетных записей и какие значения они имеют.

Пример вывода таблицы с данными контактов GAL в MariaDB
Пример вывода таблицы с данными контактов GAL в MariaDB

Zimbra OSE также поддерживает добавление GAL из внешних источников. Например, есть возможность загружать глобальный список адресов из внешней LDAP и из внешней AD. Для этого в консоли администратора перейдите в раздел "Настройки - Домены", кликните по нужному домену правой кнопкой мыши и в контекстном меню выберите "Настроить GAL".

В появившемся Мастере настройки GAL выберите "Режим GAL" - поддерживаются Внутренний, Внешний и Оба. В нашем примере мы выберем Внешний.

В открывшемся окне необходимо последовательно указать:

  • Количество выдаваемых результатов поиска по GAL

  • Имя источника данных для внешнего GAL

  • Интервал опроса

  • IP-адрес или доменное имя сервера AD, а также порт подключения и использование SSL

  • Поисковая база LDAP

На последующих экранах следует задать Фильтр LDAP и протестировать подключение к AD. В том случае, если поиск пользователей нормально осуществляется, это значит, что GAL из внешнего источника успешно подключен. Соответственно, управлять им теперь также следует из самой AD, а не из Zimbra OSE.

По всем вопросам, связанными c Zextras Suite и Team Pro вы можете обратиться к Представителю компании «Zextras» Екатерине Триандафилиди по электронной почте ekaterina.triandafilidi@zextras.com.

Комментарии (1)


  1. werter_l
    23.10.2021 18:06
    +1

    Спасибо.
    Дополнение касаемо MS AD.
    Изменение атрибутов учеток в AD возможно только при использовании LDAPS (tcp\636 порт).