Описание проблемы
Не работает аутентификация операционной системы (windows) через IIS при использовании тонкого клиента или веб-клиента.
С точки зрения пользователей, будет видно окно с запросом логина и пароля.
Проблема может заключаться в том, что методы операционной системы в силу различных причин возвращают описание текущего пользователя сеанса в таком представлении, которое не совпадает ни с одним пользователем в списке пользователей информационной базы 1С
Решение проблемы
На сервере 1С включить технологический журнал, используя следующую настройку:
Воспроизвести ситуацию с неудачной аутентификацией операционной системы. Авторизоваться под пользователем операционной системы, указанным в свойствах пользователя 1С.
Открыть технологический журнал рабочего процесса и найти событие EXCP со следующим описанием: "Идентификация пользователя не выполнена
Неправильное имя или пароль пользователя"
Обратите внимание на предшествующее ему событие CONN и значение свойства DstUserName2 — именно в таком виде пользователь должен быть указан в свойствах пользователя информационной базы.
04:45.940011-0,CONN,2,process=rphost,t:client >04:45.940012-0,CONN,2,process=rphost,t:client >04:45.971001-0,CONN,2,process=rphost,t:client >DstUserName2: DOMAIN701 estuser2(DOMAIN701 estuser2)
04:46.205021-0,EXCP,2,process=rphost,p:processName=trade,t:client >a01f465c-ed70-442e-ada5-847668d7a41c: Идентификация пользователя не выполнена
Неправильное имя или пароль пользователя’
Заменить значение свойства "Пользователь" пользователя информационной базы согласно следующему формату "\" + [Имя пользователя из свойства DstUserName2 без скобок].
Проверить работоспособность аутентификации средствами операционной системы, войдя в информационную базу, используя веб-клиент.
Расположение веб-сервера IIS и рабочих серверов 1С на разных машинах
В некоторых случаях, несмотря на корректно указанного пользователя операционной системы в пользователе информационной базы, при попытке входа в опубликованную базу через браузер аутентификация операционной системы не проходит. Такая ситуация может возникать, если веб-сервер IIS и сервер 1с находятся на разных машинах. В таком случае в технологическом журнале рабочего процесса можно наблюдать следующую картину:
56:39.487001-0,CONN,2,process=rphost,p:processName=accounting,t:client >56:39.487002-0,CONN,2,process=rphost,p:processName=accounting,t:client >56:39.596004-0,CONN,2,process=rphost,p:processName=accounting,t:client >DstUserName2: NT AUTHORITYANONYMOUS LOGON(NT AUTHORITYANONYMOUS LOGON )
56:39.659003-0,EXCP,2,process=rphost,p:processName=accounting,t:client >a01f465c-ed70-442e-ada5-847668d7a41c: Идентификация пользователя не выполнена
Неправильное имя или пароль пользователя’
При возникновении такой ситуации необходимо проверить следующие настройки:
1) Убедиться, что процессы сервера 1С запущены от имени доменной учетной записи, входящей в группу Domain Users.
2) Убедиться, что веб-сервер IIS настроен корректно.
В публикации информационной базы найти настройки аутентификации
В настройках аутентификации отключить анонимную аутентификацию и включить Windows-аутентификацию. В Windows-аутентификации упорядочить доступных провайдеров так, чтобы на первом месте был Negotiate.
Пул приложений публикации не нуждается в настройках, в нем можно оставить все по умолчанию.
После изменения настроек перезапустить веб-сервер с помощью команды iisreset в командной строке.
3) Убедиться, что в контроллере домена в свойствах компьютера, на котором запущен веб-сервер, на вкладке делегирование установлено "Доверять компьютеру делегирование любых служб (только Kerberos)"
Для этого откройте оснастку Active Directory Users and Computers (dsa.msc), в компьютерах найдите веб-сервер, перейдите в его свойства и на вкладке Делегирование установить значение "Доверять компьютеру делегирование любых служб (только Kerberos)" и нажать применить.
4) Убедиться, что на клиенте в свойствах обозревателя разрешена встроенная проверка подлинности Windows.
После выполнения всех действий необходимо перезагрузить клиентский компьютер (рабочие серверы перезагрузки не требуют) и убедиться, что аутентификация операционной системы успешно выполняется.
Важно: аутентификации Windows при расположении веб-сервера IIS и рабочих серверов на разных машинах в тонком клиенте работает, начиная с версии 8.3.10.2620 (для тестирования).
Программирование как созидательный процесс.
Интеграция 1С и Active Directory
Изредка, в работе программистов и системных администраторов, возникают ситуации и задачи, когда необходимо произвести интеграцию 1С и Active Directory. В данном примере будет показано как с помощью технологии LDAP (англ. Lightweight Directory Access Protocol — «облегчённый протокол доступа к каталогам») и средств интеграции 1С, получить данные из Active Directory. Интеграция 1С и Active Directory может использоваться не только для получения данных, но и для создания объектов в структуре соответствующего домена.
В процессе создания алгоритма интеграции 1С и Active Directory, будет весьма полезна программа «Active Directory Explorer», создателем который является известный программист и писатель Марк Русси́нович. Данная программа позволит вам просмотреть дерево объектов выбранного вами домена, а если в начале запуска программы, сразу нажать кнопку «ОК», то домена по умолчанию, для текущего компьютера.
Интеграция 1С и Active Directory
Теперь получаем данные пользователей, которые включены в выбранную группу домена:
По этому примеру можно создавать более сложные примеры интеграции 1С и Active Directory, более подробные сведения, вы можете получить по следующим адресам:
ADSI LDAP Provider
Использование протокола LDAP в скриптах
Интеграция 1С и Active Directory : 4 комментария
Жаль, что обработку не прикрепили
Попытка
ОбъектТекущегоДомена = ПолучитьCOMОбъект(«LDAP://» + ТекущийДомен);
Исключение
Сообщить(«Ошибка ПолучитьCOMОбъект «+»LDAP://» + Объект.ТекущийДомен+»: » + ОписаниеОшибки());
Возврат;
КонецПопытки;
Откуда Объект.ТекущийДомен появился .
- Благин Константин Автор записи 05.12.2019 в 18:49
Это строковой реквизит обработки, по сути можете его не использовать.
Задача: Настроить 1С сервер установленный на Linux таким образом, чтобы авторизация пользователей осуществлялась через контроллер домена, то есть доменный пользователь входя в 1С не должен ввводить пароль.
Имя домена: domainname.ru
NetBIOS имя домена: DNAM
IP контроллеров домена, они же DNS сервера: 172.16.1.16, 172.16.1.19
Сетевое имя одного из контроллеров домена: server-dc1
Сетевое имя сервера 1С: SERVER-1S
ОС сервера 1С: Debian GNU/Linux 7 (wheezy)
Версия сервера 1C: 8.3.5.1248
Все нижеследующее работает на "Debian GNU/Linux 8 (jessie)" + 1С версии 8.3.9.1850
1. Настраиваем DNS на сервере 1С:
в моем случае содержание resolv.conf следующее:
Имя сервера 1С должно быть вручную зарегистрировано на DNS сервере.
Ping должен выглядеть следующим образом:
2. Синхронизируем время на сервере 1С с контроллером домена.
3. Выясняем имя учетной записи от которой работает сервер 1С
4. На контроллере домена создаем учетную запись с паролем "1cv8password" и запрещаем смену пароля пользователем.
5. На контроллере домена выполняем следующую комманду
usr1cv8 — учетная запись от имени которой работает сервер 1С, а так-же учетная запись в AD
server-1s — сетевое имя узла, на котором запущен сервер 1С, можно выяснить командой hostname
1cv8password — пароль доменного пользователя usr1cv8
В результате должен сформироваться файл usr1cv8.keytab.
6. Полученный в предыдущем пункте файл, копируем в на сервер 1С в директорию /opt/1C/v8.3/x86_64/ и устанавливаем на него необходимые права:
7. На сервере 1С Устанавливаем базовый набор утилит для работы Kerberos аутентификацией
8. Настраиваем Kerberos.
В моем случае содержание файла следующее:
9. На сервере 1С выполняем:
результат должен быть следующим:
В результате программа kinit должна отработать без каких-либо сообщений, не спрашивать никаких паролей и вернуть управление обратно в командную строку.
10. В 1С настраиваем параметры пользователя как на картинке (используем полное имя домена):