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:
|
Значения для полей 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 предусматривает возможность получать данные из 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 символов, включающих латинские буквы и цифры.
Сгенерированное значение для атрибута API_SECRET_KEY будет отображено справа в поле JSON WEB TOKEN:
|
Пример файла .env.override для режима API_KEY приведен ниже:
|