Данный раздел необязателен, если необходима лишь работа с персональными адресными книгами или планируется импортировать адресную книгу CSV-формата. |
Для того, чтобы импортировать данные из Active Directory (служба каталогов корпорации Microsoft для операционных систем семейства Windows Server), необходимо:
1. Отредактируйте файл settings.override.yaml:
<nano/vim/mcedit> address-book/stable/settings.override.yaml |
Заполните значения полей в соответствии с вашей инфраструктурой и соблюдая структуру YAML:
sources: active_directory: port — Порт сервера AD; server/source — Хост сервера AD; base_dn — Базовый Distinguished Name (DN) для поиска пользователей и групп в AD; ssl — Использовать ли SSL/TLS для защищенного подключения; timeout — Таймаут для операций с сервером AD; user_dn — Логин в формате user@domain или DN; password — Пароль для аутентификации в AD; base_ou — Название базовой организационной единицы (OU — Organizational Unit) верхнего уровня. |
Для импорта из нескольких источников перечислите несколько источников AD:
|
2. При необходимости поменяйте настройки маппинга, указав их в секции mappers. Данная настройка отвечает за сопоставление атрибутов Active Directory с полями Address Book при импорте.
|
Все атрибуты, кроме phones и avatar, записываются в виде:
имя_поля_в_address_book : ["имя_атрибута_в_active_directory", "тип_атрибута]" first_name : ["givenName", "string"]] |
В Active Directory у импортируемого пользователя в атрибуте givenName хранится значение «Kuzma».
В таком случае указанная строка ["first_name", ["givenName", "string"]] при импорте обработается следующим образом: из атрибута givenName будет взято значение имени «Kuzma» с типом «string» и произведена запись этого значения в поле «first_name» сервиса Address Book. |
Поля «phones», «avatar» работают иначе.
Поле «phones» содержит несколько значений, каждое из которых записано в виде:
[["имя_атрибута_в_active_directory"], ["к_какому_общему_полю_в_AB_принадлежит", "тип"]] [["telephoneNumber"], ["phone", "work"]] |
В Active Directory у импортируемого пользователя в атрибуте «telephoneNumber» записано значение внутреннего телефонного номера абонента равное 700. В таком случае указанная строка [["telephoneNumber"], ["phone", "work"]] при импорте обработается следующим образом: из атрибута «telephoneNumber» будет взято значение 700 и добавлено в поле «phones» в виде списка словарей. Список словарей нужен, так как телефонов у пользователя может быть несколько (мобильный, рабочий, домашний).
Атрибут avatar импортируется аналогичным образом и служит для последующего отображения изображения (аватара) контакта в клиенте Elph. Аватар может быть задан в бинарном виде (jpeg) либо в текстовом (url). На рисунке ниже пример отдельно созданного для этих целей атрибута с именем «avatar». Можно использовать любое встроенное текстовое поле карточки пользователя, правильно сопоставив его при импорте.
|
4. Выполните импорт, последовательно вводя указанные ниже команды:
docker exec -it address-book-stable-server-1 bash ./ecss_address_book remote --name ecss_address_book EcssAddressBookCore.Actions.AdImport.import |
Для выхода из iex нажмите Ctrl+C дважды. Затем введите exit.
При импорте выполняются дополнительные проверки:
1. Если у контакта заполнено хотя бы одно поле (фамилия, имя, отчество) и телефон, такой контакт импортируется в БД Address Book. В противном случае импорт не осуществляется;
2. Так же происходит удаление дублирующихся номеров по следующему принципу:



Таким образом в базу данных Address Book попадают только уникальные номера каждого контакта.