Содержание:
2. Аутентификация в 1С: доступ по логину и паролю
3. Авторизация в 1С: разграничение прав доступа
4. Публикация и защита интерфейса API
5. Реализация собственного механизма токенов (прототип OAuth) в системе программы 1С: Предприятие
6. Практическое применение API в 1С: ERP
Современные корпоративные информационные системы всё чаще требуют интеграции между собой и с внешними сервисами. Одним из ключевых инструментов для обеспечения такой взаимосвязи является API — интерфейс программирования приложений. В рамках системы 1С: ERP API позволяет как получать данные из внешних источников, так и предоставлять информацию другим системам.
Однако эффективное и безопасное использование API невозможно без грамотной настройки аутентификации (подтверждение личности) и авторизации (проверка прав доступа). Это фундаментальные механизмы безопасности, которые позволяют контролировать, кто и какие действия может выполнять через API-интерфейс 1С.
1. Общие принципы работы API в 1С: ERP
Система 1С: ERP поддерживает несколько способов взаимодействия через API:
· Веб-сервисы (WS, WSDL, SOAP) — классическая интеграция;
· HTTP-сервисы (REST-подобные) — современный подход;
· Расширения на HTTPServiceRequest/HTTPResponse;
· COM-интерфейсы и DCOM для Windows-приложений;
· Интерфейс OData — используется для прямого чтения и изменения данных через HTTP-запросы.
Мы сосредоточим внимание на HTTP и OData API, как наиболее применимых для современных сценариев, и на их безопасной настройке.
2. Аутентификация в 1С: доступ по логину и паролю
Система программы 1С: Предприятие поддерживает следующие модели аутентификации:
1. Аутентификация средствами платформы (Basic Auth):
· логин и пароль, указанные в конфигурации;
· передаются через HTTP-заголовок Authorization: Basic.
2. Интеграция с ОС (Windows Authentication):
· используется доменная учетная запись;
· работает при публикации на IIS с включенной интеграцией.
3. OAuth2 или JWT — не реализованы на платформе "из коробки", но могут быть добавлены через доработку.
Запрос к опубликованному HTTP-сервису 1С при базовой аутентификации:
КопироватьРедактировать
POST https://erp.company.ru/erp/hs/api/orders
Authorization: Basic YWRtaW46cGFzc3dvcmQ=
Content-Type: application/json
{
"OrderID": "12345",
"Customer": "ООО Тест",
"Total": 20000
}
YWRtaW46cGFzc3dvcmQ= — это Base64 от admin:password.
Важно: Basic Auth не шифрует логин и пароль. Используйте HTTPS, иначе данные могут быть перехвачены.
3. Авторизация в 1С: разграничение прав доступа
В системе программы 1С: Предприятие авторизация управляется ролями пользователей, которые настраиваются в конфигурации. Каждый пользователь должен иметь строго определенные права доступа к данным и обработкам.
Чтобы создать пользователя для API, нужно в разделе Администрирование → Пользователи, создайте нового пользователя:
· Укажите логин и пароль;
· Назначьте ему роли (например, "ЧтениеДокументов", "ВводЗаказов");
· Создайте профиль, исключающий доступ к интерфейсу, если требуется.
Можно создать отдельную роль "REST API Reader", которая имеет права только на чтение определенных регистров и справочников. Это ограничит потенциальный ущерб в случае компрометации ключей.
4. Публикация и защита интерфейса API
Для публикации конфигурации как веб-сервиса:
1. Откройте конфигуратор;
2. Выберите Администрирование → Публикация на веб-сервере;
3. Укажите каталог IIS, включите BasicAuth;
4. Убедитесь, что работает только HTTPS.
В настройках IIS можно ограничить доступ только с определённых IP-адресов. Это добавляет второй уровень защиты от несанкционированных попыток входа.
5. Реализация собственного механизма токенов (прототип OAuth) в системе программы 1С: Предприятие
Если необходимо добавить токен-ориентированную аутентификацию, можно реализовать обработку обмена токенами.
КопироватьРедактировать
Функция ПолучитьТокен(Пользователь, Пароль)
Если Пользователь = "apiuser" И Пароль = "secret123" Тогда
Возврат ГенерироватьGUID();
Иначе
Возврат "";
КонецЕсли;
КонецФункции
Пример использования токена:
КопироватьРедактировать
Процедура ОбработатьЗапрос(Запрос)
Заголовки = Запрос.ПолучитьЗаголовки();
Если НЕ Заголовки.Содержит("Authorization") Тогда
Ответ.УстановитьКодОтвета(401);
Ответ.УстановитьТело("Unauthorized");
Возврат;
КонецЕсли;
Токен = Заголовки["Authorization"];
Если НЕ ПроверитьТокен(Токен) Тогда
Ответ.УстановитьКодОтвета(403);
Ответ.УстановитьТело("Forbidden");
Возврат;
КонецЕсли;
// Продолжить обработку запроса
КонецПроцедуры
Типовые ошибки и способы их устранения:
Ошибка 401 Unauthorized возникает из-за неверного логина или пароля и нужно проверить заголовок Authorization.
Ошибка 403 Forbidden возникает из-за недостатка прав и нужно назначить правильные роли пользователю.
Ошибка 500 Internal Server Error возникает из-за неправильного кода в запросе и нужно логировать тело запроса и обрабатывать исключения.
Ошибка CORS error возникает из-за запроса, из браузера, который блокируется политикой CORS и нужно подключить CORS на уровне IIS или прокси-сервера.
6. Практическое применение API в 1С: ERP
Мобильные приложения для агрономов и логистов — через API можно получать маршруты, задания, отчеты.
Интеграция с ФГИС "Сатурн" — формирование и отправка JSON через HTTP.
Связь с маркетплейсами или CRM — передача заказов, остатков, цен.
BI-системы — запрос данных по регистрам в режиме OData.
Выводы:
Настройка доступа к API в системе 1С: ERP — это не просто технический шаг, а важный элемент обеспечения информационной безопасности и стабильности процессов. Правильно организованная аутентификация и авторизация позволяют:
· Защитить конфиденциальные данные;
· Избежать несанкционированного доступа;
· Гибко управлять правами на стороне 1С;
· Упростить интеграцию с другими системами;
· Повысить надежность и масштабируемость всей ИТ-инфраструктуры.
Рекомендуется использовать HTTPS, минимизировать открытые интерфейсы, логировать все действия и регулярно обновлять учетные данные.
Специалист компании ООО "Кодерлайн"
Лев Туренко