При разработке и подготовке внешних обработок для использования в облачном сервисе 1С:Fresh (1cfresh.com) разработчики часто сталкиваются с жесткими требованиями контроля безопасности. Одно из главных правил публикации — обработка должна работать в безопасном режиме, в котором по умолчанию запрещен прямой доступ к ресурсам сети Интернет. Разберем ситуацию, когда ваша обработка обращается к веб-сервису, расположенному на собственном сервере компании, и выясним, считается ли это доступом к Интернету и как правильно пройти аудит.
Рассмотрим архитектуру сетевого взаимодействия при работе в облаке. Информационная база клиента физически находится на серверах дата-центра 1С:Fresh. Ваш веб-сервис развернут на стороннем сервере (даже если он принадлежит вашей компании или находится в офисной локальной сети).
С точки зрения платформы 1С:Предприятие и Библиотеки стандартных подсистем (БСП), любое исходящее сетевое подключение из базы (SOAP, REST, HTTP-запросы, FTP и т.д.) квалифицируется как обращение к внешнему ресурсу сети Интернет.
Соответственно, обращение к веб-сервису из 1С:Fresh является сетевым запросом и блокируется безопасным режимом, если для обработки не оформлены соответствующие разрешения.
Чтобы внешняя обработка успешно прошла аудит 1С:Fresh и сохранила возможность обмениваться данными с веб-сервисом, нельзя отключать безопасный режим. Вместо этого необходимо явно запросить разрешения на использование сетевых ресурсов с помощью специализированного интерфейса БСП.
Разберем по шагам, как задекларировать сетевой доступ в коде внешнего модуля. В функции СведенияОВнешнейОбработке() добавляется запрос разрешения с помощью функции РазрешениеНаИспользованиеИнтернетРесурса() общего модуля РаботаВБезопасномРежиме.
Рассмотрим пример реализации:
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиВызовСервера.ВидОбработкиДополнительнаяОбработка();
ПараметрыРегистрации.Наименование = "Интеграция с веб-сервисом";
ПараметрыРегистрации.Версия = "1.0.0.1";
ПараметрыРегистрации.БезопасныйРежим = Истина; // Обязательное условие аудита
// Формируем массив запрашиваемых разрешений
Разрешения = Новый Массив;
Протокол = "HTTPS";
Адрес = "myserver.company.ru"; // Публичный адрес веб-сервиса
Порт = 443;
Описание = "Обращение к веб-сервису внутренней учетной системы";
// Создаем объект разрешения БСП
Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса(Протокол, Адрес, Порт, Описание);
Разрешения.Добавить(Разрешение);
ПараметрыРегистрации.Вставить("Разрешения", Разрешения);
Возвращать ПараметрыРегистрации;
КонецФункции
Проанализируем ключевые регламентные требования, которые предъявляются аудиторами сервиса 1С:Fresh к обработкам, запрашивающим сетевой доступ:
Обращение из базы 1С:Fresh к стороннему веб-сервису всегда считается доступом к сети Интернет. Для успешного прохождения аудита обработка должна работать в безопасном режиме с явным декларированием разрешений через модуль РаботаВБезопасномРежиме БСП.