Почему не работает авторизация ОС при интеграции 1С:ERP с 1С:Документооборот и как это исправить?

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием IT и автоматизация бизнеса
← На главную

При настройке бесшовной интеграции между 1С:ERP Управление предприятием и 1С:Документооборот (ДО) специалисты часто сталкиваются с неприятной проблемой. При попытке установить соединение через веб-сервисы система запрашивает имя пользователя и пароль, наотрез отказываясь авторизовать пользователя средствами операционной системы (доменная Windows-авторизация). При этом, если запустить 1С:Документооборот напрямую в веб-клиенте через браузер, доменная авторизация срабатывает мгновенно и без лишних вопросов.

В этой статье мы подробно разберем, почему возникает эта ошибка, проанализируем архитектурные ограничения платформы «1С:Предприятие 8.3» и рассмотрим несколько эффективных способов решения данной проблемы, включая классические рекомендации фирмы «1С» и современные технологии сквозной аутентификации.

Анализ технической проблемы и кода ошибки

Выясним, что происходит на программном уровне в момент попытки подключения. При попытке инициализации веб-сервиса бесшовной интеграции на стороне ERP система пытается создать объект WSОпределения. В этот момент в отладчике мы можем наблюдать следующее исключение:


ВызовКонструктора = СтрШаблон(
    "Определения = Новый WSОпределения(
    |    МестоположениеWSDL + ""ws/dm.1cws?wsdl"",
    |    ИмяПользователя,
    |    Пароль,,
    |    Таймаут,
    |    ЗащищенноеСоединение%1);", 
    ПараметрАутентификацияОС
);

Попытка
    Выполнить(ВызовКонструктора);
Исключение
    ТекстСообщенияОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
КонецПопытки;

Платформа возвращает ошибку: «Аутентификация пользователя не выполнена. URL сервиса: ...». При этом параметры ИмяПользователя и Пароль передаются пустыми, так как разработчик рассчитывает на автоматическую авторизацию средствами операционной системы (SSO).

Проанализируем, почему этот механизм, исправно работающий при прямом входе в базу через тонкий или веб-клиент, дает сбой при интеграции двух систем.

Архитектурная причина: выполнение кода на стороне сервера и проблема «двойного хопа»

Главная причина кроется в особенностях клиент-серверной архитектуры «1С:Предприятия» при работе с управляемыми формами:

  1. Выполнение кода на сервере 1С. В современных конфигурациях (таких как 1С:ERP 2.5 / 1С:КА 2.5 / 1С:ДО 3.0) все вызовы веб-сервисов интеграции выполняются строго на стороне сервера 1С (в контексте рабочего процесса rphost). Клиентское приложение лишь отправляет команду на сервер ERP, а сервер сам инициирует HTTP/WS-запрос к веб-серверу, где опубликован «1С:Документооборот».
  2. Отсутствие контекста пользователя ОС на сервере. Когда сервер ERP отправляет запрос к ДО, он делает это от имени той учетной записи Windows, под которой запущена сама служба сервера 1С (например, локальный пользователь usr1cv8 или выделенная доменная учетная запись службы). Сервер 1С физически «не знает» доменных учетных данных текущего пользователя, сидящего за клиентским компьютером, и не может передать их дальше.
  3. Проблема «двойного хопа» (Double Hop). В политиках безопасности Windows (при использовании протоколов NTLM или базового Kerberos) запрещено транслировать токен безопасности пользователя через несколько сетевых узлов. Компьютер пользователя авторизуется на сервере 1С (шаг 1), но сервер 1С не имеет права использовать этот токен для авторизации на веб-сервере IIS/Apache с базой ДО (шаг 2).

Именно поэтому, даже если вы пропишете учетную запись службы сервера 1С (например, domain\usr1cv8_server) в качестве пользователя в 1С:Документообороте и свяжете ее с доменным именем, интеграция заработает, но все действия всех пользователей в ДО будут регистрироваться под одной системной учетной записью сервера. Это нарушает базовые принципы безопасности и аудита данных.

Рассмотрим, какими путями мы можем решить эту задачу.

Решение №1. Официальная рекомендация фирмы «1С» — разделение публикаций на веб-сервере

Фирма «1С» в документации к «Библиотеке интеграции с 1С:Документооборотом» (БИД) рекомендует отказаться от попыток пробросить доменную авторизацию напрямую через веб-сервер для служебных запросов. Вместо этого предлагается разделить логику входа для интерактивных пользователей и для программных интерфейсов (API).

Разберем этот процесс по шагам:

  1. Создаем первую публикацию (для пользователей). На веб-сервере (например, IIS) публикуем 1С:Документооборот в каталог /u_do. Настраиваем в IIS для этого виртуального каталога Windows Authentication (Встроенная проверка подлинности Windows), а анонимный доступ (Anonymous Authentication) отключаем. Через эту ссылку пользователи будут заходить в ДО через браузер или тонкий клиент без ввода пароля.
  2. Создаем вторую публикацию (для интеграции/веб-сервисов). На этом же веб-сервере создаем вторую публикацию в каталог /ws_do. В настройках IIS для этого каталога обязательно включаем анонимную аутентификацию (Anonymous Authentication), а доменную авторизацию Windows отключаем.
  3. Настраиваем интеграцию в 1С:ERP. В настройках интеграции с Документооборотом на стороне ERP указываем URL второй публикации (например, http://server/ws_do/ws/dm.1cws?wsdl).
  4. Настройка авторизации пользователей. Поскольку на второй публикации доменная авторизация отключена, платформа 1С будет использовать стандартную авторизацию (Basic Auth). В персональных настройках интеграции каждый пользователь ERP один раз вводит свой логин и пароль от 1С:Документооборота. Эти учетные данные кэшируются на стороне ERP и используются сервером для выполнения персональных запросов к ДО.

Этот способ является наиболее надежным, стабильным и простым в администрировании.

Решение №2. Современный подход — бесшовная JWT-аутентификация

Если вы работаете на современных версиях платформы «1С:Предприятие» (начиная с версии 8.3.21) и актуальных релизах 1С:ERP и 1С:ДО 3.0, вам доступна технология сквозной аутентификации с использованием временных токенов безопасности JWT (JSON Web Token).

Рассмотрим подробнее, как работает этот механизм, который полностью заменяет собой сложную доменную авторизацию:

При этом подходе авторизация происходит автоматически за счет доверительных отношений между базами данных:

  1. Пользователь успешно входит в 1С:ERP (при этом метод входа в саму ERP может быть любым, включая доменную авторизацию).
  2. При обращении к механизмам интеграции сервер ERP генерирует уникальный криптографический JWT-токен, в который зашивает информацию о текущем пользователе. Токен подписывается закрытым ключом ERP.
  3. Сервер ERP передает этот токен в заголовках запроса к веб-сервису 1С:Документооборота.
  4. База ДО, получив запрос, проверяет подпись токена с помощью открытого ключа ERP. Если подпись верна, ДО доверяет этой информации и автоматически авторизует сессию под соответствующим пользователем.

Преимущества JWT-авторизации: пользователю вообще не нужно вводить пароли от ДО, системному администратору не требуется настраивать сложные доменные политики Kerberos, а вся интеграция работает через стандартный открытый веб-порт без привязки к Windows-домену.

Решение №3. Настройка сквозной авторизации через OpenID Connect

Для крупных корпоративных ландшафтов, где помимо ERP и ДО эксплуатируются другие конфигурации 1С, оптимальным решением является внедрение единой точки входа (Single Sign-On) на базе протокола OpenID или внешних провайдеров (например, Keycloak, Avanpost FAM, Authentik).

Проанализируем общую схему настройки:

  1. Выделенная база 1С (или внешний SAML/OIDC-провайдер) настраивается в качестве провайдера идентификации.
  2. В файлах публикации default.vrd для ERP и ДО прописываются настройки авторизации через этот провайдер.
  3. При первом обращении к системе пользователь перенаправляется на единую форму авторизации, где подтверждает свои учетные данные (или они считываются из операционной системы автоматически).
  4. Веб-сервисы интеграции используют полученные маркеры доступа (Access Tokens) для выполнения безопасных кросс-системных запросов от имени конкретного авторизованного пользователя.

Резюме

Попытка настроить бесшовную интеграцию через доменную авторизацию ОС «в лоб» обречена на провал из-за особенностей серверной архитектуры 1С и ограничений безопасности Windows (проблемы Double Hop). Чтобы успешно решить задачу авторизации, воспользуйтесь проверенным временем методом разделения публикаций на веб-сервере или переведите связку ваших конфигураций на использование современных и безопасных JWT-токенов.

← На главную