Имеется возможность импортировать пользователей в Address Book из Keycloak. Для этого в файле address-book/stable/mappers.json (используется для сопоставления данных при импорте) по аналогии с импортом из LDAP, AD имеется свой раздел.

    "kk_mapper": [
      ["first_name", ["firstName", "string"]],
      ["last_name", ["lastName", "string"]],
      ["middle_name", [["attributes", "middleName"], "string"]],
      ["emails", ["email", "email"]],
      ["full_name", [["attributes", "fullName"], "string"]],
      ["external_id", ["id", "string"]],
      ["ldap_dn", [["attributes", "LDAP_ENTRY_DN"], "ldap_dn"]],
      ["title", [["attributes", "title"], "string"]],
      ["avatar", [["attributes", "avatarURL"], "url"]],
      ["phones",
        [
          [
            ["attributes", "phoneNumber"], ["phone", "work"]]
          ]
        ]
    ],

Все атрибуты, кроме phones, записываются в следующем виде:

["имя_поля_в_address_book", ["имя_атрибута_в_keycloak", "тип_атрибута]"
["nickname", ["username", "string"]]

Импорт для атрибута phones работает аналогично описанному в разделе «Миграция данных из Active Directory» (единственное отличие — дополнительно указывается тип атрибута в Keycloak):

["phones",
        [
          [["attributes", "default_phone"], ["phone", "pref"]],
          [["attributes", "work_phone"], ["phone", "work"]],
          [["attributes", "home_phone"], ["phone", "home"]]
        ]
      ]

Встроенные атрибуты пользователя Keycloak можно посмотреть по следующей ссылке.


Для организации импорта из Keycloak выполните указанные ниже шаги:

1. Остановите сервис Address Book:

./ecss-address-book.sh down

2. Отредактируйте файл .env.override:

nano address-book/stable/.env.override

Задайте параметры авторизации в файле, а также путь для выгрузки данных из Keycloak в Address Book. Пример настройки .env.override для работы с Keycloak Elph Chat Server 2.12.0 приведен в разделе «Настройка режима авторизации» блок BY_KEYCLOAK_JWT.

3. Подключитесь к docker-контейнеру сервиса Address Book:

docker exec -it address-book-stable-server-1 bash

4. Подключитесь к Erlang node по имени:

./ecss_address_book remote --name ecss_address_book

5. Выполните команду для запуска миграции Keycloak и дождитесь завершения процесса:

EcssAddressBookCore.Actions.KkImport.import

Общее количество импортируемых контактов можно посмотреть с помощью команды:

EcssAddressBookDb.Actions.Contacts.count(%{})

Для выхода из iex нажмите Ctrl+C дважды. Затем введите exit.