# 🆕 Приложения — Zero Trust доступ к вашим сервисам

29 мая 2026 г. ·

<!-- -->

5 мин. чтения

Мы рады представить новый компонент платформы Tuna — **Приложения**. Это защищённый reverse proxy, который закрывает любой ваш веб-сервис авторизацией, SSO и гранулярным контролем доступа — без единой строчки изменений в самом сервисе.

[Перейти к разделу Приложения в документации](https://tuna.am/docs/apps.md)

![Главная страница приложений](/docs/img/apps/main.png)

## Зачем это нужно?

Представьте: у вас есть внутренний сервис — админка, staging-окружение, Grafana, внутренний API. Вы хотите дать к нему доступ только нужным людям, из нужных стран, с подтверждением через корпоративный SSO. Раньше это означало возню с nginx, oauth2-proxy, сертификатами и списками доступа.

С **Приложениями** Tuna проверяет каждый входящий запрос: кто пользователь, как он аутентифицировался, откуда пришёл и имеет ли право видеть запрашиваемый путь. Всё это настраивается через веб-интерфейс за пару минут.

Что можно сделать:

* закрыть любой веб-сервис авторизацией без изменений в коде;
* гранулярно разграничить доступ — например, `/admin/*` только для администраторов из России, а `/api/health` открыть без аутентификации;
* подключить корпоративный SSO (Google, Yandex, GitHub, GitLab, VK, любой OIDC-совместимый провайдер);
* требовать MFA или ручное одобрение администратора для чувствительных операций;
* опубликовать сервис без публичного IP через туннель — достаточно одной команды;
* выдать машинный доступ через сервисные токены для CI/CD, мониторинга и автоматизации.

## Два режима доставки трафика

При создании приложения вы выбираете, как Tuna будет доходить до вашего сервиса.

| Режим        | Когда использовать                                                                                                                             |
| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- |
|  **Прокси**  | Сервис уже доступен по сети — в Kubernetes, облачной VM или той же сети, что и нода. Можно указать несколько upstream с балансировкой по весам |
|  **Туннель** | Сервис без публичного IP — за NAT, на dev-машине или в корпоративной сети. Бэкенд сам подключается к Tuna через клиент-агент                   |

В режиме туннеля после создания приложения вы получаете готовую команду:

```shell
tuna app <имя> --url=http://127.0.0.1:8080

```

Запустите её на машине с сервисом — и приложение станет доступно через защищённый домен.

## Политики доступа — сердце системы

Каждый запрос проходит через цепочку **политик**. Первая политика, чей шаблон пути совпал, определяет судьбу запроса: пропустить, потребовать MFA, запросить одобрение или отказать. По умолчанию доступ запрещён.

![Список политик приложения](/docs/img/apps/policies_list.png)

Каждая политика — это **паттерн пути** (glob-шаблон вроде `/admin/*`) и **действие**:

* **Разрешить** — доступ при прохождении правил;
* **Требовать MFA** — то же плюс второй фактор (TOTP или код на email);
* **Запретить** — безусловная блокировка;
* **Пропустить** — путь без аутентификации (health check, webhook-эндпоинты).

Внутри политики настраиваются **правила** — *кто именно* получит доступ. Их можно комбинировать по режимам OR / AND / NOT и собирать из разных типов:

| Тип правила                    | Пример                  |
| ------------------------------ | ----------------------- |
| Команда / Email / Email RegExp | `.*@company\.com$`      |
| IP / CIDR                      | `10.0.0.0/8`            |
| Страна (GeoIP)                 | `RU`, `US`, `DE`        |
| Способ входа                   | `oidc`, `otp`, `mfa`    |
| Провайдер                      | `google`                |
| Service Token                  | машинная аутентификация |

Например, чтобы открыть `/admin/*` только участникам команды и только из России, достаточно одной политики с правилами «Команда» (or) и «Страна: RU» (and).

### Тестирование без риска

Прежде чем применять конфигурацию, её можно проверить инструментом **Тест политик** — смоделировать запрос с любыми параметрами и увидеть, какое решение примет система. Без создания реальных сессий.

![Тестирование политик](/docs/img/apps/policy_test.png)

## Вход через корпоративный SSO

Способы входа комбинируются — пользователь увидит их все на странице входа:

* **Email OTP** — одноразовый код на email, удобно для внешних подрядчиков;
* **Аккаунты tuna.am** — вход через личный аккаунт;
* **Провайдеры команды** — внешние Identity Provider (Google, Yandex, GitHub, GitLab, VK, любой OIDC).

![Страница входа с провайдерами](/docs/img/apps/auth_page_providers.png)

## Ещё больше контроля

**Запросы доступа** — для чувствительных ресурсов включите ручное одобрение. Пользователь объяснит причину, администратор одобрит доступ на нужный срок (от 15 минут до бессрочного).

**Сервисные токены** — машинная аутентификация для CI/CD, мониторинга и скриптов. Пара Client ID + Client Secret, передаётся в заголовках. Поддерживается ротация с grace-периодом — обновляйте секрет без простоя.

```shell
curl -H 'Tuna-Access-Client-Id: sat_...' \
     -H 'Tuna-Access-Client-Secret: ...' \
     https://your-app.example.com/

```

**Сессии** — пользователи видят свои активные сессии, администраторы — сессии всей команды с полной информацией (IP, страна, User-Agent, последняя активность). Любую сессию можно отозвать, а кнопка «Закрыть все сессии» завершает их разом.

**Гибкие настройки прокси** — заголовки запроса и ответа, переписывание путей, CORS, лимит размера тела, TLS до upstream и клиентский сертификат (mTLS).

## Полный аудит

Все действия с приложениями записываются в [аудит-лог](https://my.tuna.am/team_audit_events): создание и изменение приложений, входы пользователей, одобрения и отклонения запросов доступа, отзыв сессий. Каждое событие содержит детали — кто, когда, откуда и что именно произошло.

![Аудит-лог событий приложений](/docs/img/apps/audit_events.png)

## Попробуйте прямо сейчас

Перейдите в раздел [Приложения](https://my.tuna.am/team_apps), нажмите **+ Добавить приложение** — и закройте свой первый сервис авторизацией за пару минут.

Подробное описание всех возможностей — в [документации](https://tuna.am/docs/apps.md):

* [Политики доступа](https://tuna.am/docs/apps/policies.md)
* [Запросы доступа](https://tuna.am/docs/apps/access_requests.md)
* [Сервисные токены](https://tuna.am/docs/apps/service_tokens.md)
* [Сессии](https://tuna.am/docs/apps/sessions.md)
* [Настройки приложения](https://tuna.am/docs/apps/settings.md)

## Оставьте отзыв

Если вам нравится пользоваться Tuna, или наоборот вы недовольны чем либо, то пожалуйста [оставьте отзыв](https://my.tuna.am/?show_feedback=1).

![](/blog/img/2024-08-22/feedback.gif)

## Помощь

Мы ценим наших пользователей и детально изучаем все обращения, если у вас возникли проблемы с tuna – обязательно свяжитесь с нами одним из способов:

* [Электронная почта](mailto:info@tuna.am)
* [Telegram сообщество](https://telegram.me/+Kgbtt0_gJwI5ZmEy)

**Теги:**

* [release](https://tuna.am/blog/tags/release)
* [tuna](https://tuna.am/blog/tags/tuna)
* [cli](https://tuna.am/blog/tags/cli)
