Перейти к содержанию

Yucca Gateway (BETA)

Доступно только в Enterprise

BETA

На момент версии 0.7.2 функционал ещё тестируется, позднее формат работы и монетизация может изменится.

Если вам нужна помощь специалиста для решения этой или любой другой проблемы, изучите наши условия технической поддержки

Описание

Yucca Gateway - это новый режим работы, позволяющий создать единую точку входа (авторизации) для клиентов с разных инсталляций Yucca Server. К примеру, вы – интернет-провайдер, с зонами присутствия в разных городах и отдельной инсталляцией Юкка в каждом городе, на каждом из серверов у вас свои клиенты, но в рамках рекламной компании, вы хотите иметь единую точку входа для всех клиентов.
Схема ниже описывает примерную логику работы.
Yucca Gateway

Существуют значительные ограничения при работе с Yucca Gateway:

  • Имена (login) пользователей с разных серверов не должны пересекаться, иначе клиент может получать ошибку 401, т.к. будет пытаться авторизоваться не на своём сервере.
  • Подключить к Yucca Gateway можно только Enterprise версию Yucca Server, работа с бесплатными версиями в настоящий момент не поддерживается.
  • В версииях 0.7.x через Yucca Gateway не работают публичные потоки, эта проблема будет исправлена в версии 0.8.0.

Настройка

Запуск Yucca Gateway

Для запуска Yucca Gateway используется тот же бинарный файл, Enterprise версии, обязательно укажите отдельный каталог в data-dir.

Есть два способа запустить Yucca Gateway.
Запустить в консоли:

/opt/yucca/yucca gateway --data-dir /opt/yucca/data/gateway

Создать systemd unit сервис, взяв за основу yucca.service:

Начиная с версии 0.8.0

При установке через пакетный менеджер deb/rpm сервис yucca-gateway уже установлен в системе, достаточно только запустить

sudo systemctl status yucca-gateway.service
sudo systemctl enable yucca-gateway.service
sudo systemctl start yucca-gateway.service
sudo systemctl status yucca-gateway.service
(
sudo tee /etc/systemd/system/yucca-gateway.service <<EOF
[Unit]
Description=Yucca Gateway https://yucca.app
Documentation=https://docs.yucca.app
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=simple
User=yucca
Group=yucca
LimitNOFILE=65536
SyslogIdentifier=yucca-gateway
PIDFile=/var/run/yucca-gateway.pid
ExecStart=/opt/yucca/yucca gateway --data-dir /opt/yucca/data/gateway
ExecStop=/bin/kill -s SIGTERM $MAINPID
Restart=on-failure
RestartSec=10s

[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable yucca-gateway.service
sudo systemctl start yucca-gateway.service
sudo systemctl status yucca-gateway.service
)

По умолчанию Yucca Gateway слушает порт 9920, но вы можете переопределить это поведение. Полный список опций можно посмотреть в подсказке /opt/yucca/yucca gateway --help

Получение токена

Для подключения Yucca Gateway к Yucca Server, ему потребуется токен администратора конечного сервера. Персональный токен можно выпустить в профиле пользователя, в разделе токенов.

token_1 token_2

Подключение Yucca Gateway к Yucca Server

Для корректной работы, нужно обеспечить сетевую доступность между Yucca Gateway и всеми Yucca Server.

Предварительно установитьте curl, если его у вас нет.

sudo apt update && sudo apt install curl -y

Все последующие действия можно выполнять c любого хоста, гланое чтобы была сетевая доступность.

Пример команды для подключения:

curl -s -d '{"address": "http://localhost:9910", "token": "p.f22003974f22e41a2c48dc58ac25c24f412bff151"}' http://127.0.0.1:9920/v1/system/gateway/server
  • address - это адрес Yucca Server по которому Yucca Gateway будет к нему обращаться.
  • token - соответственно токен который мы получили ранее.
  • http://127.0.0.1:9920/v1/system/gateway/server - адрес Yucca Gateway, на который мы отправляем запрос.

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

{
  "active": true,
  "address": "http://localhost:9910",
  "healthy": true,
  "id": 0,
  "name": "",
  "verified": true
}

Таким образом можно добавить несколько инстанцев Yucca Server.

Всё готово!
Теперь при авторизации через Yucca Gateway по адресу http://127.0.0.1:9920, мы попадём на тот Yucca Server, где существует пользователь с реквизитоми которого мы авторизуемся.