Секретные переменные и безопасность
Как хранить токены и пароли, подставлять секреты в URL и заголовки и безопасно подключать внешние сервисы.
Секретные переменные позволяют хранить токены, API-ключи и пароли отдельно от конфигурации. Одну переменную можно переиспользовать в нескольких автоматизациях компании.
Создание переменной
На экране Администратор → Автоматизации нажмите Секретные переменные, затем Добавить переменную.
Укажите:
| Поле | Требования |
|---|---|
| Имя | От 2 до 64 символов. Начинается с латинской буквы; далее допустимы латинские буквы, цифры и _. Для удобства используйте заглавные буквы. |
| Значение | Токен, API-ключ, пароль или другое закрытое значение. Не может быть пустым. |
Примеры понятных имён:
ONE_C_API_TOKEN
CRM_CLIENT_SECRET
WAREHOUSE_API_KEY
После сохранения значение не показывается в интерфейсе. Его можно заменить через редактирование переменной, но нельзя прочитать обратно. В базе значение хранится в зашифрованном виде и отдельно для каждой компании.
Использование в конфигурации
Синтаксис ссылки:
${secrets.NAME}
Секрет можно подставить в URL и значения HTTP-заголовков.
Bearer-токен
headers:
Authorization: "Bearer ${secrets.CRM_TOKEN}"
API-ключ
headers:
X-API-Key: "${secrets.WAREHOUSE_API_KEY}"
Параметр URL
url: "https://api.example.com/export?token=${secrets.EXPORT_TOKEN}"
Если API использует Basic Authentication, заранее сохраните подготовленное значение авторизации и подставьте его в заголовок:
headers:
Authorization: "Basic ${secrets.ONE_C_BASIC_AUTH}"
Где подстановка не работает
Секреты подставляются только:
- в
urlисточников и назначений; - в значения
headersисточников и назначений.
Они не подставляются в body, не передаются в input или context обработчика и недоступны из JavaScript. Если внешняя система требует токен внутри тела запроса, по возможности настройте передачу через заголовок. Не копируйте закрытое значение непосредственно в YAML, JSON или код.
Замена и удаление
Чтобы заменить токен без правки автоматизаций:
- Откройте Секретные переменные.
- Нажмите редактирование у нужного имени.
- Введите новое значение и сохраните.
- Выполните проверочный запуск связанных автоматизаций.
Все конфигурации, использующие это имя, начнут получать новое значение.
Перед удалением переменной найдите все ссылки ${secrets.NAME} в автоматизациях. После удаления запуск завершится ошибкой secret NAME is not configured.
Защита данных в результатах запуска
При формировании превью и логов система заменяет известные значения секретов на ***. Это дополнительная защита, но она не отменяет безопасную работу с данными:
- не выводите токены и пароли через
console.log; - не помещайте секреты в ответ источника или результат обработчика;
- не используйте один токен для разных внешних систем;
- выдавайте токену только необходимые права;
- регулярно меняйте значения и отзывайте старые токены.
Сетевые ограничения
Автоматизации выполняются на сервере Synchra24. Для URL действуют следующие правила:
- адрес должен быть абсолютным и начинаться с
https://илиhttp://; - используйте HTTPS для передачи любых рабочих данных;
- локальные и приватные адреса по умолчанию заблокированы;
- нельзя обращаться к
localhost, loopback, link-local и внутренним сетям организации, если сервер Synchra24 специально не настроен для такого доступа; - перенаправления проверяются и ограничены; внешняя система должна возвращать прямой безопасный адрес.
Если 1С или другая система доступна только во внутренней сети, потребуется безопасно опубликованный HTTPS endpoint, VPN/туннель на уровне инфраструктуры или отдельный интеграционный шлюз. Не открывайте базу или административный интерфейс системы напрямую в интернет.
Минимальные права
Для каждого подключения создавайте отдельную техническую учётную запись:
- источнику выдавайте только чтение нужных данных;
- назначению — только запись в нужный метод или раздел;
- ограничивайте доступ по IP, если внешняя система это поддерживает;
- фиксируйте владельца и срок действия токена;
- удаляйте переменную после отключения интеграции.
Для доступа к разделу автоматизаций у компании должна быть включена лицензионная возможность API-интеграция, а у пользователя — соответствующее право администратора.