Yucca Gateway (BETA)¶
Доступно только в Enterprise
BETA
На момент версии 0.7.2 функционал ещё тестируется, позднее формат работы и монетизация может изменится.
Если вам нужна помощь специалиста для решения этой или любой другой проблемы, изучите наши условия технической поддержки
Описание¶
Yucca Gateway - это новый режим работы, позволяющий создать единую точку входа (авторизации) для клиентов с разных инсталляций Yucca Server.
К примеру, вы – интернет-провайдер, с зонами присутствия в разных городах и отдельной инсталляцией Юкка в каждом городе, на каждом из серверов у вас свои клиенты, но в рамках рекламной компании, вы хотите иметь единую точку входа для всех клиентов.
Схема ниже описывает примерную логику работы.
Существуют значительные ограничения при работе с 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:
(
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, ему потребуется токен администратора конечного сервера. Персональный токен можно выпустить через API, позже этот функционал появится и в UI. Также можно использовать токен полученный при авторизации администратора, который хранится в cookies, но при смене пароля пользователя токен изменится, а значит и подключение Yucca Gateway к Yucca Server прервётся. Поэтому мы настоятельно рекомендуем подключаться именно по персональным токенам, они не меняются при смене пароля и могут быть использованы в любых интеграциях.
Персональный токен¶
Открываем интерфейс Yucca Server, авторизуемся под администратором и переходим на страницу /ui/swagger
Выберете схему которая у вас используется http
или https
Прокрутите вниз до метода POST /v1/token
, раскройте меню, нажмите Try in out
Отредатируйте json, удалите поле expireTime
, чтобы сделать токен бессрочным и задайте желаемое имя для токена, например gateway
, затем нажмите Execute
Прокрутите ниже, вы увидите ответ сервера. Код ответа должет быть 201, убедитесь, что поле "expireTime": null
, т.е. токен бессрочный.
Скопируйте ваш токен и сохраните, посмотреть его снова будет уже невозможно.
Подключение 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, где существует пользователь с реквизитоми которого мы авторизуемся.