Как настроить аутентификацию пользователей в 1С при работе без домена Active Directory?

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

При организации клиент-серверного подключения к базе 1С часто возникает ситуация, когда сервер 1С и клиентские компьютеры находятся в разных рабочих группах (Workgroup) без централизованного домена Active Directory. При попытке настроить аутентификацию средствами операционной системы пользователи сталкиваются с ошибками авторизации, так как сервер 1С не имеет доступа к учетным записям удаленных рабочих мест. Разберем внутренние механизмы работы платформы, выясним причины проблемы и рассмотрим способы ее решения.

Почему штатная аутентификация средствами ОС не работает в рабочей группе

Проанализируем, как устроен механизм аутентификации средствами операционной системы в платформе 1С:Предприятие. В клиент-серверном варианте проверки подлинности выполняет рабочий процесс сервера rphost через системный интерфейс Windows SSPI. Сервер 1С самостоятельно не хранит и не сверяет пароли пользователей Windows — он перенаправляет маркер безопасности операционной системе хоста, на котором запущен.

В доменной сети Active Directory проверка выполняется централизованно через контроллер домена по протоколу Kerberos. Однако в условиях одноранговой сети (рабочей группы) контроллер домена отсутствует. В этом случае аутентификация выполняется исключительно по протоколу NTLM. Сервер Windows может подтвердить подлинность входящего подключения только при наличии соответствующей локальной учетной записи в своей базе диспетчера учетных записей безопасности (SAM). Если на машине с сервером 1С нет локального пользователя с точно таким же логином и паролем, как на клиентском компьютере, операционная система отклоняет запрос, и автоматический вход в 1С завершается ошибкой.

Решение 1. Синхронизация локальных учетных записей на сервере 1С

Классический способ обеспечить работу механизма аутентификации средствами ОС без домена — дублирование учетных записей пользователей на сервере, где развернута служба 1С. Рассмотрим по шагам, как настроить этот вариант:

  1. На компьютере с сервером 1С создаем локальную учетную запись Windows, имя которой совпадает с именем пользователя на удаленной машине.
  2. Устанавливаем для созданного пользователя пароль, в точности совпадающий с паролем на клиентском ПК. Для обеспечения сетевой аутентификации этому пользователю не требуются права локального администратора или доступ к интерактивному входу на сервер.
  3. В конфигураторе 1С открываем свойства соответствующего пользователя. Включаем флаг Аутентификация операционной системы и указываем пользователя в формате ИмяСервера1С\Логин.

При использовании данного способа важно проверить системные параметры безопасности Windows на стороне сервера 1С:

  1. Параметр локальной политики Сетевой доступ: модель общего доступа и безопасности для локальных учетных записей (Network access: Sharing and security model for local accounts) должен быть переведен в режим Обычная — локальные пользователи удостоверяются как они сами (Classic). При включенном гостевом режиме любое сетевое подключение принудительно определяется под учетной записью Гостя, из-за чего авторизация 1С завершится сбоем.
  2. Уровень совместимости NTLM (NTLM SSP) на клиентах и сервере должен совпадать, иначе пакеты аутентификации будут заблокированы на сетевом уровне.
  3. Если пароли на клиенте и сервере различаются, на рабочем месте пользователя можно открыть Диспетчер учетных данных Windows (Windows Credential Manager) и явно сохранить реквизиты доступа к серверу 1С.

Решение 2. Передача системного логина через параметр запуска программы

Если пользователей много (например, удаленный филиал на сотню рабочих мест), постоянное дублирование учетных записей и синхронизация паролей вручную становятся трудоемкой задачей. В качестве альтернативы можно использовать штатные возможности командной строки запуска платформы.

Рассмотрим запуск программы с использованием переменной среды операционной системы %username%. Для этого создается общий ярлык для всех пользователей системы со следующей строкой запуска:

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /N"%username%"

Чтобы ярлык автоматически появился у всех пользователей рабочей станции или терминального сервера, его размещают в общем профиле по пути:

C:\Users\All Users\Desktop\

Разберем технические нюансы и ограничения данного подхода:

  1. Тип аутентификации: Этот метод заменяет аутентификацию средствами ОС на внутреннюю аутентификацию платформы. В карточке пользователя в 1С должен быть активен флаг Аутентификация 1С:Предприятие, а имя пользователя в базе должно совпадать со значением переменной %username%.
  2. Вопрос безопасности: Если у пользователей в 1С не заданы пароли, то передача параметра /N обеспечивает бесшовный вход в систему. Однако любой пользователь сможет отредактировать ярлык или запустить клиент из консоли под чужим логином. Если же пароли в 1С заданы, пользователю потребуется ввести пароль в окне авторизации вручную. Хранить пароль открытым текстом в ярлыке через параметр /P категорически не рекомендуется по соображениям безопасности.

Решение 3. Альтернативные методы централизованной авторизации

Если инфраструктура предприятия развивается, а развертывание платного домена на базе Windows Server не планируется, рассмотрим другие способы организации единого входа (SSO):

  1. Аутентификация по протоколу OpenID / OpenID Connect: Платформа 1С:Предприятие штатно поддерживает протоколы федеративной аутентификации. В качестве провайдера идентификации можно использовать бесплатные сервисы (например, Keycloak) либо опубликовать одну из баз 1С в роли OpenID-провайдера. В этом случае пользователи выполняют прозрачный вход через веб-клиент или тонкий клиент.
  2. Публикация базы через веб-сервер (HTTP/HTTPS): При публикации информационной базы на веб-сервере (IIS или Apache) проверку подлинности можно перенести на уровень веб-шлюза, используя механизмы веб-авторизации и сертификаты.
  3. Развертывание бесплатного контроллера домена: Организация службы каталогов на базе Samba 4 в среде Linux позволяет создать полноценный контроллер Active Directory с поддержкой протокола Kerberos без затрат на лицензирование серверов, что полностью снимает проблему аутентификации средствами ОС в 1С.
← На главную