Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Column

Eltex-doors является сервисом аутентификации, который выполняет проверку подлинности пользователя, созданием токена и верификацией токена.

Eltex-doors формирует токен JWT на основе переданного POST-запроса содержащий логин, пароль, а также  метаданные.

Подсказка

JWT(JSON Web Token) -  JSON-объект, определен в RFC 7519

Сгенерированные токены хранятся в БД eltex-doors, таблица auth_token.  По истечению, заданного в конфигурационном файле, времени (token.expire.timeout), выполняется очистка устаревших токенов из БД. БД eltex-doors в Mysql разворачивается при первом запуске сервиса eltex-doors в соответствии с данными указанными в конфиграции конфигурации сервиса.

Параметры "срок действия токена{iat}" и "время создания токена{exp}" указаны в payload токена. Их можно узнать выполнив декодирование токена.


С версии 1.15 появилась возможность валидировать токены без дополнительного обращения к doors.  При установке или обновлении генерируются открытый и закрытый ключ, которые по умолчанию размещаются в каталоге  /etc/eltex-doors/keys/.

Для того, чтобы к приватному ключу имели доступ только доверенные сервисы, ключам назначаются права 440 и принадлежность группе eltex:

Блок кода
themeRDark
-r--r----- 1 root eltex 1704 Sep 19 10:44 private.pem
-r--r----- 1 root eltex  451 Sep 19 10:44 public.pem

private.pem - ключ необходимый для подписи JWT-токенов.

public.pem - ключ необходимый сервисам для валидации JWT-токенов.

Если по какой-либо причине необходимо пересоздать ключи, то можно запусить запустить скрипт, который находится в каталоге /usr/share/eltex-doors/gen_keys.sh

Предупреждение

После генерации новых ключей, необходимо ключ public.pem  заново передать сервисам

При первом обращении за 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.

...

ДействиеКомандаОтвет
Проверка состоянияservice eltex-doors status

Сервис запущен

Подсказка

Active: active (running)

Cервис не запущен

Предупреждение

Active: failed


Запуск сервисаservice eltex-doors start

Сервис успешно запущен

Подсказка

Active: active (running)


Остановка сервисаservice eltex-doors stop

Сервис успешно остановлен

Подсказка

Active: failed


Перезапуск сервисаservice eltex-doors restart

Сервис успешно перезапущен

Подсказка

Active: active (running)



Доступные методы

...

API

Eltex Doors предоставляет следующие методы:

...

Блок кода
 POST http://localhost:9097/api/signin/token HTTP/1.1
 Accept: application/json
 Authorization: Bearer eyJhb...

Пример зарпросазапроса:

Блок кода
languagejs
themeRDark
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 должны находиться в одной папке. Контейнер запускается командой:

...