Стабильно

Внутренние приложения и политики

Описание одного приложения: публичные адреса, внутренние адреса, правила перенаправлений, пресеты разрешения/блокировки и срок сессии.

Ключевые темы

Используйте эти темы для настройки и проверки безопасности.

  1. 01Что считается «одним приложением»Публичные адреса, внутренние адреса, связанные адреса и WebSocket-маршруты.
  2. 02Публичный адрес, браузерные адреса и upstreamКакое имя должно быть публичным, какое может оставаться внутренним и какой адрес обязан видеть коннектор.
  3. 03CORS и связанные API-адресаКогда фронтенд и API находятся на разных origins, добавьте API как связанный origin, а не оставляйте прямой вызов из браузера.
  4. 04Правила путей: маршрут, ответ, разрешение и блокировкаЗакрытие по умолчанию через список разрешённых путей и пресет «только отчёты».

Справочник

Детали реализации для настройки и проверки.

Публичный адрес приложения и запуск сессииПубличный адрес приложения представляет одно разрешённое внутреннее веб-приложение. Пользователь открывает его после того, как BusinessProxy обменял одноразовый токен запуска на сессию приложения и убрал токен из URL.
  • Публичное имя хоста определяет приложение.
  • Последующие запросы требуют действующую сессию приложения.
  • Коннектор обращается к внутреннему приложению; пользователь не видит внутреннее имя хоста или частный IP-адрес.
Публичный адрес, браузерный адрес и внутренний upstreamПри публикации приложения держите эти три значения отдельно. Публичный адрес приложения — это HTTPS-адрес, который пользователь получает от BusinessProxy, например crm-abc123.business-proxy.com или подтверждённый домен клиента. Опубликованный браузерный адрес — это необязательное имя хоста, которое пользователь может вводить, потому что оно уже используется в исходном приложении, закладках или инструкции. Внутренний upstream — это реальный URL, который открывает коннектор, например http://crm.internal:8080 или https://10.0.12.15.
  • Публичный адрес приложения: должен резолвиться публично на BusinessProxy и определяет сессию приложения на стороне шлюза.
  • Опубликованный браузерный адрес: может быть частным или split-horizon именем. Для пользователя он работает только когда расширение вошло в аккаунт, подключено и имеет актуальный снимок маршрутизации.
  • Внутренний upstream: ему не нужен публичный DNS, но хост коннектора должен его резолвить и достигать по сети. Если коннектор запущен вне этой сети, приложение останется недоступным даже при правильно заданном browser host.
  • Не используйте это поле как способ заявить произвольный домен. Опубликованные браузерные адреса — это подсказки маршрутизации для известных внутренних приложений, а не замена контролю DNS или подтверждению домена.
Готовность коннектора и закрытие доступа при сбоеПеред передачей трафика BusinessProxy проверяет, что приложение включено, а назначенный коннектор готов. Если приложение отключено, сессии нет или коннектор не готов, шлюз возвращает очищенную ошибку и не раскрывает внутреннюю топологию.
Переписывание ответов приложенияНекоторые внутренние приложения перенаправляют пользователя на собственное имя хоста или задают домен файла cookie для него. Если это включено в настройках приложения, совпадающие внутренние Location-заголовки и Set-Cookie Domain переписываются на публичный хост приложения. Файлы cookie без Domain и внешние перенаправления сохраняются.
CORS и связанные API-адресаЕсли приложение открывается на https://crm-abc123.business-proxy.com или custom alias вроде https://app.example.com, а JavaScript вызывает https://api.example.com, браузер считает это cross-origin и может заблокировать ответ до проксирования BusinessProxy. Добавьте https://api.example.com в связанные origins, чтобы вызовы шли через тот же alias приложения.
  • Ожидаемый вид: https://crm-abc123.business-proxy.com/__bp_related/https/api.example.com/v1/users или тот же путь /__bp_related/ на custom alias.
  • Location route rule нужен только когда этот related origin или отдельный path prefix надо отправить на другой внутренний upstream или WebSocket-сервис.
  • WebSocket поддерживается для указанных связанных origins: браузерные вызовы wss:// переписываются в wss://<alias-приложения>/__bp_related/https/api.example.com/..., а значение связанного origin остаётся https://api.example.com.
  • Если DevTools всё ещё показывает прямой https://api.example.com, проверьте кэшированные bundles, service worker, CSP, content encoding и runtime config с абсолютным API URL.
TLS внутреннего приложенияДля рабочих подключений настраивайте внутренние приложения с сертификатами, которым доверяет хост коннектора. Диагностика должна проверить DNS, TCP, TLS и HTTP до производственного включения.
Заголовки и журналируемые данныеМаршрут внутреннего приложения транзитом передаёт HTTP-метод, путь, параметры, заголовки и тела. Тела не логируются и не хранятся; транспортные заголовки фильтруются перед запросом к внутреннему приложению.
Команды для конкретного внедрения, версии пакетов и рабочие учётные данные показываются в разделе загрузок после входа в аккаунт.