Для AI-агентов: markdown этой страницы — /docs-content/infra/access/access-policy.md индекс документации — /llms.txt

Политика доступа

PATCH /v1/infra/servers/:id/access-policy

Обновляет политику доступа для BLACKHOLE-сервера — определяет, кто из пользователей Битрикс24 может открывать приложение по HTTPS-субдомену (app-{id}.vibecode.bitrix24.tech). По умолчанию установлено OWNER_ONLY — только владелец API-ключа. Работает только в режиме BLACKHOLE. Для OPEN-сервера возвращается BLACKHOLE_ONLY — сначала переключите режим через PATCH /mode.

Изменение accessPolicy с OWNER_ONLY на более открытую напрямую влияет на безопасность. Смена на PORTAL, AUTHENTICATED или PUBLIC открывает приложение другим людям. AI-агенты: никогда не вызывайте этот эндпоинт без явного подтверждения пользователя.

Параметры

Параметр В Тип Обяз. Описание
Параметрid Вpath Типstring (UUID) Обяз.да ОписаниеID сервера в режиме BLACKHOLE из Списка серверов

Поля запроса (body)

Поле Тип Обяз. Описание
ПолеaccessPolicy Типstring Обяз.да ОписаниеОдно из: OWNER_ONLY, NAMED_USERS, DEPARTMENT, PORTAL, AUTHENTICATED, PUBLIC
ПолеapprovalId Типstring (UUID) Обяз.нет ОписаниеID подтверждённого запроса из error.details.proposalId ответа 409 AUDIENCE_APPROVAL_REQUIRED. Проверить запрос

Значения (от самой закрытой к самой открытой):

Значение Кто видит приложение
ЗначениеOWNER_ONLY Кто видит приложениеТолько владелец API-ключа (по умолчанию)
ЗначениеNAMED_USERS Кто видит приложениеКонкретные пользователи из списка /access
ЗначениеDEPARTMENT Кто видит приложениеОтделы Битрикс24 из списка /access
ЗначениеPORTAL Кто видит приложениеВсе пользователи портала Битрикс24
ЗначениеAUTHENTICATED Кто видит приложениеВсе авторизованные пользователи (включая не-членов портала)
ЗначениеPUBLIC Кто видит приложениеВсе, без авторизации

Примеры

curl — личный ключ

Terminal
curl -X PATCH https://vibecode.bitrix24.tech/v1/infra/servers/SERVER_ID/access-policy \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"accessPolicy": "PORTAL"}'

curl — OAuth-приложение

Terminal
curl -X PATCH https://vibecode.bitrix24.tech/v1/infra/servers/SERVER_ID/access-policy \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"accessPolicy": "NAMED_USERS"}'

JavaScript — личный ключ

javascript
const res = await fetch(
  `https://vibecode.bitrix24.tech/v1/infra/servers/${serverId}/access-policy`,
  {
    method: 'PATCH',
    headers: {
      'X-Api-Key': 'YOUR_API_KEY',
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({ accessPolicy: 'NAMED_USERS' }),
  }
)
const { data } = await res.json()
console.log('Новая политика:', data.accessPolicy)

JavaScript — OAuth-приложение

javascript
await fetch(
  `https://vibecode.bitrix24.tech/v1/infra/servers/${serverId}/access-policy`,
  {
    method: 'PATCH',
    headers: {
      'X-Api-Key': 'YOUR_APP_KEY',
      'Authorization': 'Bearer USER_SESSION_TOKEN',
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({ accessPolicy: 'OWNER_ONLY' }),
  }
)

Поля ответа

Поле Тип Описание
Полеsuccess Типboolean ОписаниеВсегда true при успехе
Полеdata.accessPolicy Типstring ОписаниеНовое значение политики (эхо)

Пример ответа

JSON
{
  "success": true,
  "data": {
    "accessPolicy": "PORTAL"
  }
}

Пример ответа при ошибке

400 — сервер в режиме OPEN:

JSON
{
  "success": false,
  "error": {
    "code": "BLACKHOLE_ONLY",
    "message": "Access policy is a Black Hole feature. Server is in OPEN mode — switch to BLACKHOLE via PATCH /v1/infra/servers/:id/mode first."
  }
}

Ошибки

HTTP Код Описание
HTTP400 КодVALIDATION_ERROR ОписаниеaccessPolicy не в списке допустимых значений
HTTP400 КодBLACKHOLE_ONLY ОписаниеСервер в режиме OPEN — политика не применима
HTTP401 КодMISSING_API_KEY ОписаниеНе передан заголовок X-Api-Key
HTTP401 КодINVALID_API_KEY ОписаниеКлюч не опознан: такой строки на платформе нет
HTTP403 КодINFRA_FORBIDDEN_FOR_COWORK_KEY ОписаниеВызов сделан ключом Cowork/Code — такой ключ работает только с данными, изменяющие операции ему закрыты. Что делать — Проектный ключ для деплоя
HTTP403 КодSERVER_ROLE_FORBIDDEN ОписаниеВы состоите в команде разработки этого сервера с ролью «Разработчик», а операция открыта роли «Администратор». В error.hint придут ваша роль, требуемый порог и перечень открытых вам вызовов. Разбор ролей — Список серверов
HTTP403 КодSERVER_MANAGING_KEY_REQUIRED ОписаниеЭтот ключ связан с приложением и сервером, но не управляет сервером. Используйте управляющий API-ключ сервера или измените политику через кабинет
HTTP403 КодWRITE_BLOCKED_READONLY_KEY ОписаниеКлюч не меняет данные Битрикс24, а запрос расширяет круг сотрудников, открывающих приложение сервера, у которого собственный обработчик. Каждый открывший передаёт свои токены на этот обработчик
HTTP404 КодNOT_FOUND ОписаниеСервер не существует, удалён или привязан к другому API-ключу, и вы не состоите в его команде разработки
HTTP409 КодAUDIENCE_APPROVAL_REQUIRED ОписаниеРасширение доступа требует подтверждения человеком. Доступ не меняется. Откройте error.details.approvalUrl, затем повторите точный запрос с исходным ключом и approvalId, равным error.details.proposalId
HTTP429 КодRATE_LIMITED ОписаниеПревышен общий лимит запросов платформы

Полный список общих ошибок API — Ошибки.

Известные особенности

  • Подтверждённый запрос ещё нужно применить. На защищённых порталах расширение доступа может требовать подтверждения человеком. В error.details приходят proposalId, approvalUrl, expiresAt и retryOperation. Передайте approvalUrl человеку с правом согласовать доступ. Проверьте запрос и после APPROVED повторите исходный PATCH, добавив approvalId. Сохраните тот же ключ и accessPolicy. Объект retryOperation описывает согласованную операцию и не является телом HTTP-запроса.

  • PUBLIC особенно опасен. Он делает приложение доступным без какой-либо авторизации — любому посетителю из интернета. Факт смены политики фиксируется в аудит-логе портала.

  • NAMED_USERS и DEPARTMENT требуют непустых списков доступа. Сама смена политики не добавляет пользователей — список ведётся отдельно через POST /access. Если список пустой при NAMED_USERS/DEPARTMENT, приложение будет недоступно никому, кроме владельца (автоматического отката к OWNER_ONLY не происходит).

  • Новая политика действует и на уже открытые сессии. Если она больше не пускает пользователя, приложение перестаёт у него открываться в течение минуты. Исключение — переход на OWNER_ONLY: часть открытых сессий работает до конца своего срока, до 40 минут, но продлиться уже не может. Если переводите сервер в OWNER_ONLY, чтобы сразу закрыть доступ, учитывайте этот срок.

  • Доступ по ссылкам share-url смена политики не закрывает. Их отзывают отдельно — Отозвать токен.

  • При возврате в OWNER_ONLY записи в /access сохраняются в базе. Они не применяются, пока политика не NAMED_USERS/DEPARTMENT. Если захотите очистить историю — удалите записи через DELETE /access/:accessId.

  • При смене режима на OPEN accessPolicy не меняется, но и не применяется: в OPEN защита идёт через SSH-ключи и iptables. При возврате в BLACKHOLE политика снова станет действующей.

  • AUTHENTICATED включает не-членов портала. В отличие от PORTAL, AUTHENTICATED пропускает любого авторизованного пользователя Битрикс24 (в том числе тех, кто не состоит в вашем портале). Подходит для приложений-гостевых форм, но снимает привязку к своему портальному коллективу.

  • Владелец API-ключа всегда имеет доступ — он не удаляется из списка при смене политики. Чтобы забрать доступ у себя, нужен запрос с другого ключа.

  • При открытии из каталога Битрикс24 членство в портале подтверждает сам портал. Сотруднику не нужна учётная запись Вайбкод: приложение с политикой PORTAL (а также AUTHENTICATED и PUBLIC) открывается всем сотрудникам, как и обещано. Платформа дополнительно спрашивает у Битрикс24, что это активный сотрудник, а не уволенный и не внешний гость. Именные политики (OWNER_ONLY, NAMED_USERS, DEPARTMENT) этим путём не открываются — они решают по конкретному человеку, поэтому сотруднику нужно один раз войти в Вайбкод.

Смотрите также