Авторизация в 1с через active directory

Описание проблемы

Не работает аутентификация операционной системы (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», создателем который является известный программист и писатель Марк Русси́нович. Данная программа позволит вам просмотреть дерево объектов выбранного вами домена, а если в начале запуска программы, сразу нажать кнопку «ОК», то домена по умолчанию, для текущего компьютера.

Читайте также:  Процессор intel core 2 duo e8400 характеристики

Интеграция 1С и Active Directory

Теперь получаем данные пользователей, которые включены в выбранную группу домена:

По этому примеру можно создавать более сложные примеры интеграции 1С и Active Directory, более подробные сведения, вы можете получить по следующим адресам:
ADSI LDAP Provider
Использование протокола LDAP в скриптах

Интеграция 1С и Active Directory : 4 комментария

Жаль, что обработку не прикрепили

Попытка
ОбъектТекущегоДомена = ПолучитьCOMОбъект(«LDAP://» + ТекущийДомен);
Исключение
Сообщить(«Ошибка ПолучитьCOMОбъект «+»LDAP://» + Объект.ТекущийДомен+»: » + ОписаниеОшибки());
Возврат;
КонецПопытки;

Откуда Объект.ТекущийДомен появился .

  1. Благин Константин Автор записи 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С настраиваем параметры пользователя как на картинке (используем полное имя домена):