При организации клиент-серверного подключения к базе 1С часто возникает ситуация, когда сервер 1С и клиентские компьютеры находятся в разных рабочих группах (Workgroup) без централизованного домена Active Directory. При попытке настроить аутентификацию средствами операционной системы пользователи сталкиваются с ошибками авторизации, так как сервер 1С не имеет доступа к учетным записям удаленных рабочих мест. Разберем внутренние механизмы работы платформы, выясним причины проблемы и рассмотрим способы ее решения.
Проанализируем, как устроен механизм аутентификации средствами операционной системы в платформе 1С:Предприятие. В клиент-серверном варианте проверки подлинности выполняет рабочий процесс сервера rphost через системный интерфейс Windows SSPI. Сервер 1С самостоятельно не хранит и не сверяет пароли пользователей Windows — он перенаправляет маркер безопасности операционной системе хоста, на котором запущен.
В доменной сети Active Directory проверка выполняется централизованно через контроллер домена по протоколу Kerberos. Однако в условиях одноранговой сети (рабочей группы) контроллер домена отсутствует. В этом случае аутентификация выполняется исключительно по протоколу NTLM. Сервер Windows может подтвердить подлинность входящего подключения только при наличии соответствующей локальной учетной записи в своей базе диспетчера учетных записей безопасности (SAM). Если на машине с сервером 1С нет локального пользователя с точно таким же логином и паролем, как на клиентском компьютере, операционная система отклоняет запрос, и автоматический вход в 1С завершается ошибкой.
Классический способ обеспечить работу механизма аутентификации средствами ОС без домена — дублирование учетных записей пользователей на сервере, где развернута служба 1С. Рассмотрим по шагам, как настроить этот вариант:
ИмяСервера1С\Логин.При использовании данного способа важно проверить системные параметры безопасности Windows на стороне сервера 1С:
Network access: Sharing and security model for local accounts) должен быть переведен в режим Обычная — локальные пользователи удостоверяются как они сами (Classic). При включенном гостевом режиме любое сетевое подключение принудительно определяется под учетной записью Гостя, из-за чего авторизация 1С завершится сбоем.NTLM SSP) на клиентах и сервере должен совпадать, иначе пакеты аутентификации будут заблокированы на сетевом уровне.Windows Credential Manager) и явно сохранить реквизиты доступа к серверу 1С.Если пользователей много (например, удаленный филиал на сотню рабочих мест), постоянное дублирование учетных записей и синхронизация паролей вручную становятся трудоемкой задачей. В качестве альтернативы можно использовать штатные возможности командной строки запуска платформы.
Рассмотрим запуск программы с использованием переменной среды операционной системы %username%. Для этого создается общий ярлык для всех пользователей системы со следующей строкой запуска:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /N"%username%"
Чтобы ярлык автоматически появился у всех пользователей рабочей станции или терминального сервера, его размещают в общем профиле по пути:
C:\Users\All Users\Desktop\
Разберем технические нюансы и ограничения данного подхода:
%username%./N обеспечивает бесшовный вход в систему. Однако любой пользователь сможет отредактировать ярлык или запустить клиент из консоли под чужим логином. Если же пароли в 1С заданы, пользователю потребуется ввести пароль в окне авторизации вручную. Хранить пароль открытым текстом в ярлыке через параметр /P категорически не рекомендуется по соображениям безопасности.Если инфраструктура предприятия развивается, а развертывание платного домена на базе Windows Server не планируется, рассмотрим другие способы организации единого входа (SSO):