Данный раздел необязателен, если необходима лишь работа с персональными адресными книгами или планируется импортировать адресную книгу CSV-формата. |
Для того, чтобы импортировать данные из Active Directory (служба каталогов корпорации Microsoft для операционных систем семейства Windows Server), необходимо:
1. Остановите сервис Address Book:
./ecss-address-book.sh down |
2. Отредактируйте файл .env.override:
nano address-book/stable/.env.override |
Задайте параметры авторизации в файле, а также путь для выгрузки данных из Active Directory в Address Book:
AD AD_PORT=389 — Порт сервера AD; # AD_SERVER — Хост сервера AD; # AD_BASE=CN — Базовый Distinguished Name (DN) для поиска пользователей и групп в AD; AD_SSL — Использовать ли SSL/TLS для защищенного подключения; AD_TIMEOUT — Таймаут для операций с сервером AD; AD_USER_DN — Логин в формате user@domain или DN; AD_PASS — Пароль для аутентификации в AD; AD_BASE_OU — Название базовой организационной единицы (OU — Organizational Unit) верхнего уровня. |
3. При необходимости отредактируйте секцию ad_mapper конфигурационного файла mappers.json. Данный файл отвечает за сопоставление атрибутов Active Directory с полями Address Book при импорте.
nano address-book/stable/mappers.json |
|
Все атрибуты, кроме 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. Запустите сервис Address Book:
./ecss-address-book.sh up |
5. Выполните импорт, последовательно вводя указанные ниже команды:
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 попадают только уникальные номера каждого контакта.