Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Описание

Микросервис предназначенный для деаутентификации сессии и удаления mac адреса пользователя.  Eltex-disconnect взаимодействует с сервисом PCRF, для непосредственной отправки команды на удаление сессии пользователя и сервисом аунтентификации Doors, для валидации входящего JWT токена.

Доступные методы API: disconnect

  • В случае успеха сервис Eltex-disconnect ответит
{
    "success" : true
}
  • При ошибке ответ будет следующим:
{
    "success" : false, 
    "fail" : "описание возникшей ошибки" 
}

Описание работы

Сервис Disconnect ожидает  на порту 9096 GET - запрос http://{{Ip_address}}:9096/disconnect?token={{token}}

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

http://192.168.49.110:9096/disconnect?token=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyIiwiYXV0aCI6WyJST0xFX0FETUlOIl0sImlhdCI6MTU1OTI3OTU4MCwiZXhwIjoxNTU5MzUxNTgwLCJuYXNJcCI6IjEwMC4xMTIuMC4xIiwic2Vzc2lvbklkIjoiNTY5MjU0OTkyODk5NjMwNzk2NCIsInZyZiI6IjEiLCJjbGllbnRNYWMiOiJGQy00NS05Ni01Ri01MC1BQyJ9.fWhOkgFo_rLd2mB9_70HotPH9LlGh7SuT1-qDQvv77U

После получения GET запроса от внешнего сайта, сервис eltex-disconnect отправляет полученный токен на сервис eltex-doors, для проверки того, что данные действительно отправлены авторизованным источником. Eltex-doors проверяет токен и в зависимости от того, валиден или нет, отвечает.

Следующий этап, это декодирование токена, от куда извлекается payload(метаданные) сессии пользователя которого необходимо деаунтентифицировать.

Пример декодированного токена:

{
  "sub": "user",
  "auth": [
    "ROLE_ADMIN"
  ],
  "iat": 1559279580,
  "exp": 1559351580,
  "nasIp": "100.112.0.1",
  "sessionId": "5692549928996307964",
  "vrf": "1",
  "clientMac": "FC-45-96-5F-50-AC"
}

Описание полей payload токена

sub - пользователь
iat - время создания токена
exp - время жизни токена
nasIp - nas устройства 
sessionId - уникальная сессия пользователя
vrf - Virtual Routing and Forwarding
clientMac - mac адрес пользователя

И происходит отправка get запроса disconnect на API PCRF, в котором передаются необходимый набор параметров: VRF, Mac, sessionId, nasIp

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

GET http://127.0.0.1:7070/account/disconnect?session=5692549928996307974&nas_ip=100.112.0.1&vrf=1&single=false&mac=FC-45-96-5F-50-AC&remove_mac=true

PCRF выполняет необходимые действия: деаунтентификация и удаление mac адреса.


Конфигурация

Конфигурационный файл сервиса располагается по адресу /etc/eltex-disconnect-service/application.conf

pcrf {
  host = localhost			адрес сервиса PCRF
  port = 7070				порт, который слушает PCRF
  timeout = 100				время ожидания ответа
}

doors {
  host = localhost			адрес сервиса Doors
  port = 9097				порт, который слушает Doors
  path = /api				путь, по которому обращаться к Doors
  timeout = 200				время ожидания ответа
  connectionTotal = 100		максимальное количество соединений с Doors
}


Файл настройки логирования /etc/eltex-disconnect-service/log4j2.xml

Файл настройки инициализации сервиса /etc/default/eltex-disconnect-service

PORT=9096						Порт, который слушает сервис

# Initial size of Java heap
JAVA_INIT_HEAP=4m               Количество ОЗУ выделяемой при инициализации
# Maximum size of Java heap
JAVA_MAX_HEAP=32m				Количество ОЗУ выделяемой при работе 

# Additional arguments to pass to java
JAVA_OPTS="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/eltex-disconnect-service






  • Нет меток