BY_ELPH_TOKEN предусматривает, что любой запрос, отправляемый в сервис Address Book (AB), должен содержать токен авторизации (Token Auth), который выдается Elph Chat Server и проверяется на стороне AB с помощью закрытого ключа, указанного в конфигурационном .env файле в параметре SECRET_KEY_BASE.
BY_KEYCLOAK_JWT предусматривает, что любой запрос, отправляемый в сервис AB, должен содержать Auth-Token внешнего Keycloak. В Elph, начиная с версии 2.12.0, внешний Keycloak поставляется совместно с Elph Chat Server. Пример настройки env.override для работы с Keycloak Elph Chat Server приведен ниже:
Параметры для автообновления необходимо указать в settings.override.yaml:
sources: #Здесь задаются источники откуда брать данные
keycloak:
source: "example.com"
base_ou: "Имя компании"
auto_update:
keycloak:
enabled: false
timeout: 86400000
Значения для полей KEYCLOAK_MANAGEMENT_CLIENT_ID и KEYCLOAK_MANAGE_USERS_MANAGEMENT_CLIENT_ROLE_ID вы можете получить в интерфейсе панели администратора Keycloak.
Для того чтобы найти значение для поля KEYCLOAK_MANAGEMENT_CLIENT_ID, необходимо открыть панель администратора Keycloak.
В разделе Manage realms убеждаемся, что ваш realm отмечен как «Current realm»:
Переходим в раздел Clients, среди списка клиентов (поле Client ID) находим «realm-management». В адресной строке браузера отобразится искомый ID (см. рис. ниже):
Для того чтобы найти значение для поля KEYCLOAK_MANAGE_USERS_MANAGEMENT_CLIENT_ROLE_ID, вновь переходим в Clients → realm-management → Roles. Cреди списка ролей (поле Role name) находим «manage-users». В адресной строке браузера отобразится искомый ID (см. рис. ниже):
API_KEY
API_KEY предусматривает возможность получать данные из AB без отправки токена авторизации (Token Auth) на основе заранее сгенерированных ключей.
Для корректной работы необходимо на основе SECRET_KEY_BASE сгенерировать API_SECRET_KEY и внести его в конфиграционный файл .env.
Для генерации API_SECRET_KEY можно использовать сервис https://jwt.io/ или ему подобные.
Переходим в раздел JWT Encoder:
В поле SIGN JWT: SECRET вставляем произвольное значение. Задаём значения для полей, указанных в HEADER и PAYLOAD. Значения для поля HEADER взять из примера ниже; значение для поля PAYLOAD задать самостоятельно исходя из следующего: не более 20 символов, включающих латинские буквы и цифры.