...
Column | |||||||||
---|---|---|---|---|---|---|---|---|---|
Eltex-doors является сервисом аутентификации, который выполняет проверку подлинности пользователя, созданием токена и верификацией токена. Eltex-doors формирует токен JWT на основе переданного POST-запроса содержащий логин, пароль, а также метаданные.
Сгенерированные токены хранятся в БД Параметры "срок действия токена{iat}" и "время создания токена{exp}" указаны в payload токена. Их можно узнать выполнив декодирование токена. С версии 1.15 появилась возможность валидировать токены без дополнительного обращения к doors. При установке или обновлении генерируются открытый и закрытый ключ, которые по умолчанию размещаются в каталоге /etc/eltex-doors/keys/. Для того, чтобы к приватному ключу имели доступ только доверенные сервисы, ключам назначаются права 440 и принадлежность группе eltex:
private.pem - ключ необходимый для подписи JWT-токенов. public.pem - ключ необходимый сервисам для валидации JWT-токенов. Если по какой-либо причине необходимо пересоздать ключи, то можно запусить запустить скрипт, который находится в каталоге /usr/share/eltex-doors/gen_keys.sh
При первом обращении за JWT к Doors, сервис выдаёт два токена: access и refresh. Access token имеет короткий срок жизни и используется непосредственно для доступа к сервисам. Refresh token же живёт значительно дольше и используется только для получения нового access token. Такая схема позволяет быстро прекратить доступ к ресурсам в случае утечки access token. Срок жизни токенов определяется в файле конфигурации сервиса Eltex Doors и по умолчанию составляет 15 минут для access и 30 дней для refresh. По истечении срока жизни access token внешний сервис должен будет обратиться к Eltex Doors за новым access token, предъявив при этом refresh token. |
...
Блок кода |
---|
POST http://localhost:9097/api/signin/token HTTP/1.1 Accept: application/json Authorization: Bearer eyJhb... |
Пример зарпросазапроса:
Блок кода | ||||
---|---|---|---|---|
| ||||
curl -XPOST -H "Authorization: Bearer eyJhbGc..." 'http://100.110.1.222:9097/api/signin/token/' |
...
При использовании многохостовой установки комплекса SoftWLC, сервис Eltex-doors рекомендуется устанавливать на одном сервере с Eltex-portal и Eltex-portal-constructor. Если eltex-doors находится на отдельном сервере - для корректного взаимодействия с eltex-portal и eltex-portal-constructor требуется скопировать на соответсвующие соответствующие сервера приватный и публичный ключи из папки /etc/eltex-doors/keys/ в аналогичную папку (папка может быть изменена, но это потребует исправления соответсвующих соответствующих настроек портала и конструктора порталов) и выполнить перезапуск сервисов eltex-portal и eltex-portal-constructor.
...
Описание переменных (environment)
Запуск сервиса
ELTEX_HUB - URL репозитория Элтекс;
SWLC_VERSION - версия образа;
Подключение к БД (MySQL)
DOORS_DATABASE_HOST - ip-адрес для
...
подключения к БД MySQL;
DOORS_DATABASE_PORT - порт для
...
подключения к БД MySQL;
Параметры логирования
DOORS_LOG_LEVEL - уровень логгирования сервиса;
DOORS_CONSOLE_LOG_LEVEL - уровень логгирования сервиса в консоль.
Настройка перенаправления логов на сервер Graylog
GELF_LEVEL - уровень логов, перенаправляемых в Graylog
GELF_HOST - адрес хоста Graylog
GELF_PORT - порт хоста Graylog
Файлы .env и docker-compose.yml должны находиться в одной папке. Контейнер запускается командой:
...