Вопрос

Добрый день!

На странице настройки синхронизации с LDAP одно из обязательных полей [Уникальный идентификатор пользователя]. По умолчанию заполняется значением ObjectSid. У меня возник вопрос: значения данного атрибута из AD хранятся где-нибудь в системе BPM Online? Если да, то в каком объекте и в каком поле. Насколько я понял, данные о пользователе AD хранятся в системе в объекте LDAPElement.

У меня такой же вопрос

3 комментария

Добрый день, Дмитрий.

Верно, это значение хранится в таблице LDAPElement - колонка LDAPEntryId.

Антон Малий,

Антон, добрый день! А подскажите, поле LDAPEntryDN в каком случае заполняется и как настроить его заполнение, если оно пустое?

Добрый день, Дмитрий.

В LDAPEntryDN хранится полный путь к пользователю в AD. Оно заполняется автоматически при синхронизации. Пустым оно не должно быть, так как по этому пути BPM ищет пользователя в AD.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Кейс:

Есть список контактов в системе

настроена интеграция с ЛДАП люди аторизуются все вроде ничего.

добавили учетку в ЛДАП с фио как в контактах и при синхронизации с лдап создалась учетная запись в BPM но мало того так еще и создался контакт одноименный

теперь у меня 2 одинаковых контакта что есть неверно.

Как настроить интеграцию с ЛДАП чтоб при попадание УЗ в BPM не создавались контакты а использовались те что уже есть.

р.ы. нельзя изменить процесс сперва контакты создаются в BPM

а учетка в ЛДАП потом.

У меня такой же вопрос

3 комментария

Добрый день, Алексей.

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

Антон Малий,

 

bpm'online service enterprise 7.11.0.3122

если это было обновлено то как можно только часть отвечающую за интеграцию с ЛДАП обновить ?

Добрый день, Алексей.

Уточнил информацию у разработчиков - бизнес-процесс не проверяет наличие уже существующего контакта, а создает новый. Для решения Вашей проблемы можно либо вручную привязать нужные контакты к аккаунтам, либо самостоятельно заместить и модифицировать процесс синхронизации LDAP, так как в текущих релизах это сторона синхронизации не затрагивалась.

P.S. В любом случае рекомендуем обновиться до актуальной версии - 7.12.1. В новых релизах исправлены некоторые ошибки и добавлен новый функционал.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Коллеги, добрый день.
Хотел уточнить есть ли возможность загрузки фото сотрудников в bpm'online sales enterprise при синхронизации с каталогами LDAP?

У меня такой же вопрос

3 комментария

Здравствуйте, Роман

На данный момент в механизме синхронизации с LDAP нет возможности синхронизации фото сотрудников с приложением bpmonline.

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

Denys Diachenko, Денис спасибо! 
Может есть другие методы решения этого вопроса или все-таки придётся добавлять фото вручную? 

Роман Никулин,

на данный момент в приложении нет возможности решить такую задачу базовыми средствами приложения и также мы не имеем примеров решения такой задачи. Как обходные решения, могу Вам предложить либо ручное обновление записей либо Вы можете самостоятельно доработать функционал синхронизации с LDAP используя нашу документацию по разработке по ссылке https://academy.terrasoft.ru/documents/technic-sdk/7-11/dokumentaciya-p…

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Добрый день.

Настраиваю интеграцию с LDAP, не происходит импорт пользователей, только групп. Опытным путём выяснил что проблема в последнем фильтре "Фильтрация пользователей группы Active Directory". Скрипт который указан в родной документации не работает.

Посоветуйте какой фильтр в нём можно применять. Например если у всех пользователей sAMAccountType=805306368 можно ли его там использовать?

У меня такой же вопрос

1 комментарий

Добрый день, Иван.

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

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Добрый день, Коллеги!

1. На community видел упоминание что есть инструкция как влючить логирование синхронизации с LDAP кто может, прошу поделится.

2. При добавлении пользователя через синхронизацию с LDAP пользователь помешается в группу "Все сотрудники компании", как коректно отключить этот механизм мне надо чтоб пользователь был только в тех группах с которыми он синхронизирован через LDAP?

3. Есть учетка в LDAP числится в нужной группе которая синхронизирована с организационной ролью BPM другие учетки есть а этой нет. Куда копать?

 

установка он сайт.

У меня такой же вопрос

1 комментарий

Здравствуйте, Алексей

По Вашим вопросам:

1. Настройка логирования LDAP

  1. Открываем файл log4net.config в папке <site>/Terrasoft.WebApp
  2. Находим фильтр:

                                <filter type="log4net.Filter.LoggerMatchFilter">

                                                <loggerToMatch value="Terrasoft.Core.LDAP" />

                                                <acceptOnMatch value="false" />

                                </filter>

Если данный фильтр отсутствует, то добавляем. Пример:

<?xml version="1.0" encoding="utf-8"?>

<log4net>

                <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">

                                <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

                                <connectionString value="Data Source=#SQLServer#; Initial Catalog=syslog; Persist Security Info=True; MultipleActiveResultSets=True; User ID=svc-log4net; Password=FoaFkplBSl0Iqqdbo2a7fj6JfdyE1jmu; Pooling = true; Max Pool Size = 100" />

                                <commandText value="INSERT INTO [dbo].[log4net] ([Date],[Host],[Site],[Thread],[Level],[Logger],[User],[Message],[Exception]) VALUES (@log_date, @log_host, @log_site, @log_thread, @log_level, @log_logger, @log_user, @log_message, @log_exception)" />

                                <bufferSize value="1" />

                                <filter type="log4net.Filter.LoggerMatchFilter">

                                                <loggerToMatch value="Terrasoft.Core.LDAP" />

                                                <acceptOnMatch value="false" />

                                </filter>

                                <parameter>

                                                <parameterName value="@log_date" />

                                                <dbType value="DateTime" />

                                                <layout type="log4net.Layout.PatternLayout" value="%date{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}" />

                                </parameter>

  1. Находим атрибут appender

                <appender name="ldapAppender" type="log4net.Appender.RollingFileAppender">

                                <file type="log4net.Util.PatternString">

                                                <converter>

                                                                <name value="AspNet" />

                                                                <type value="log4net.Util.PatternStringConverters.AspNetPatternConverter,log4net.Util.PatternStringConverters" />

                                                </converter>

                                                <conversionPattern value="${TEMP}\BPMonline\Site_%AspNet{SiteId}\%AspNet{ApplicationPath}\Log\" />

                                </file>

                                <appendToFile value="true" />

                                <rollingStyle value="Date" />

                                <datePattern value="yyyy_MM_dd'\\LDAP.log'" />

                                <staticLogFileName value="false" />

                                <layout type="log4net.Layout.PatternLayout">

                                                <conversionPattern value="%date [%thread] %-5level %username %logger %method - %message%newline" />

                                </layout>

                </appender>

Если не находим, то добавляем. Пример:

                </appender>

                <appender name="ldapAppender" type="log4net.Appender.RollingFileAppender">

                                <file type="log4net.Util.PatternString">

                                                <converter>

                                                                <name value="AspNet" />

                                                                <type value="log4net.Util.PatternStringConverters.AspNetPatternConverter,log4net.Util.PatternStringConverters" />

                                                </converter>

                                                <conversionPattern value="${TEMP}\BPMonline\Site_%AspNet{SiteId}\%AspNet{ApplicationPath}\Log\" />

                                </file>

                                <appendToFile value="true" />

                                <rollingStyle value="Date" />

                                <datePattern value="yyyy_MM_dd'\\LDAP.log'" />

                                <staticLogFileName value="false" />

                                <layout type="log4net.Layout.PatternLayout">

                                                <conversionPattern value="%date [%thread] %-5level %username %logger %method - %message%newline" />

                                </layout>

                </appender>

                <root>

                                <level value="WARN" />

                                <appender-ref ref="AdoNetAppender" />

                </root>

  1. Находим атрибут logger

                <logger name="Terrasoft.Core.LDAP" >

                                <level value="ALL" />

                                <appender-ref ref="ldapAppender" />

                </logger>

и устанавливаем  уровень логирования в ALL, вместо INFO или DEBUG

Если не находим, то добавляем. Пример:

                <root>

                                <level value="WARN" />

                                <appender-ref ref="AdoNetAppender" />

                </root>

                <logger name="Terrasoft.Core.LDAP" >

                                <level value="ALL" />

                                <appender-ref ref="ldapAppender" />

                </logger>

</log4net>

 

2. Если имеется ввиду то что, к примеру, создается пользователь (Администратор) который должен получить роль "Системные администраторы" а получает дополнительно роль "Все сотрудники компании" - то это корректное поведение приложения так как по логиге пользователь получает все родительские роли полученной роли, а так как роль системных администраторов является дочерней ролью Всех сотрудников компании то это правильно.

 

3. Необходимо сравнить атрибуты пользователелей в AD который попал в приложение при синхронизации и который не попал и уже после отталкиваться от результатов.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Коллеги, здравствуйте!
Назрел такой вопрос по поводу синхронизации с АД. Клиент в своей АД изменил логин пользователя с miignatyev на iignatyev. При последующей синхронизации bpm старый логин не изменил на новый.
Почему? Синхронизация завершается без ошибок

У меня такой же вопрос

2 комментария

Здравствуйте, Елена.

В данной ситуации можем рекомендовать следующее:

1. Проверить изменены ли поля User Logon Name в AD (см. скрин).
2. Проверить указан ли правильный логин в атрибуте sAMAccountName пользователя.
3. Выполнить очистку даты последней синхронизации. Выполнить это можно одним из двух способов:
- обнуленить системную настройку [Дата последней синхронизации с LDAP] (LDAPLastSynchDate);
- выполнить скрипт: UPDATE SysSettingsValue SET DateTimeValue = NULL WHERE SysSettingsId = (SELECT Id FROM SysSettings WHERE Code = 'LDAPLastSynchDate'). После этого очистить Redis.
4. После выполненных действий выполнить повторный запуск синхронизации (действие синхронизировать с LDAP в разделе Орг. структура)

"Мария Ватулина" написал:

Здравствуйте, Елена.

В данной ситуации можем рекомендовать следующее:

1. Проверить изменены ли поля User Logon Name в AD (см. скрин).
2. Проверить указан ли правильный логин в атрибуте sAMAccountName пользователя.
3. Выполнить очистку даты последней синхронизации. Выполнить это можно одним из двух способов:
- обнуленить системную настройку [Дата последней синхронизации с LDAP] (LDAPLastSynchDate);
- выполнить скрипт: UPDATE SysSettingsValue SET DateTimeValue = NULL WHERE SysSettingsId = (SELECT Id FROM SysSettings WHERE Code = 'LDAPLastSynchDate'). После этого очистить Redis.
4. После выполненных действий выполнить повторный запуск синхронизации (действие синхронизировать с LDAP в разделе Орг. структура)

Прикрепленный файлРазмер

ad_1.jpg
19.4 кб

Мария, спасибо! Очистка даты в системной настройке и сброс редиса помог!

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Версия приложения: 7.9.2
После настройки интеграции с LDAP - получаем информационное сообщение, что синхронизация выполняется в "фоновом режиме", по факту завершения вы получите уведомление.

1) Можно ли запустить процесс синхронизации принудительно - прямо сейчас.
2) Как отслеживать, в журнале БП - пусто, оповещений длительное время нет (интервал был поставлен - 1 час в течении которого уведомлений не поступило), как отлаживать ? если произошли ошибки - то какие, где это можно увидеть ?

У меня такой же вопрос

3 комментария

Добрый день.

Илья, запустить процесс синхронизации вы можете либо сохранив изменения в окне настроек синхронизации с LDAP, либо в разделе Организационная структура выполнив действие Синхронизировать с LDAP.

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

Спасибо за предоставленные инструкции, подскажите пожалуйста существует ли способ кастомизации списка атрибутов импортируемых для контакта из LDAP
LDAP Integration Settings (по какой-то причине никак не удается вставить изображения в комментарий)
Список выглядит "конечным", очевидного способа как либо его расширить в интерфейсе не видно.
Хотя среди атрибутов AD есть еще множество данных, те же дополнительные контактные данные
AD Contact Info
(по какой-то причине никак не удается вставить изображения в комментарий)
Существует ли способ расширить набор полей интегрируемых с LDAP ?

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

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Коллеги, добрый день!
При попытке синхронизации с AD в бизнес процессе возникает ошибка: Terrasoft.Common.ArgumentNullOrEmptyException: Значение аргумента "format" не может быть пустым
в Terrasoft.Core.LDAP.LdapUtilities.LogInfo(String format, Object[] args)
в Terrasoft.Core.Process.SyncWithLDAPProcess.ScriptCheckInclusionExecute(ProcessExecutingContext context)
в Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context)

Группы с орг структурой я связала

Скриншоты БП из журнала процессов https://yadi.sk/d/4RxVC_F_3Fy4vK https://yadi.sk/d/C8j4PvRZ3Fy5BB

С чем это может быть связано?

У меня такой же вопрос

1 комментарий

Здравствуйте, Елена.

Выполните sql-скрипт:
select *
from SysLocalizableValue innerValue
where innerValue.SysSchemaId = (select Id from SysSchema where Name = 'SyncWithLDAPProcess')
and innerValue.SysCultureId = '1A778E3F-0A8E-E111-84A3-00155D054C03'

В случае если столбец Value окажется пустым, выполните следующий скрипт:

insert into SysLocalizableValue (
Id
, SysPackageId
, SysSchemaId
, ResourceManager
, SysCultureId
, ResourceType
, IsChanged
, [Key]
, Value
, ImageData)
select
NEWID()
, SysPackageId
, SysSchemaId
, ResourceManager
, '1A778E3F-0A8E-E111-84A3-00155D054C03'
, ResourceType
, IsChanged
, [Key]
, Value
, ImageData
from SysLocalizableValue lczValue
where lczValue.SysSchemaId = (select Id from SysSchema where Name = 'SyncWithLDAPProcess')
and lczValue.SysCultureId = 'A5420246-0A8E-E111-84A3-00155D054C03'
and not exists (
select 1
from SysLocalizableValue innerValue
where innerValue.SysSchemaId = (select Id from SysSchema where Name = 'SyncWithLDAPProcess')
and innerValue.SysCultureId = '1A778E3F-0A8E-E111-84A3-00155D054C03'
and innerValue.[Key] = lczValue.[Key]
)

После выполнения запроса выполните очистку Redis и перезапуск пула в IIS.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Добрый день!
Скажите, а возможна ли в 7.6. интеграция с двумя доменами LDAP, а не с одним?

У меня такой же вопрос

1 комментарий

Здравствуйте.
Для версии BPM'online 7.6 такая возможность не реализована.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Добрый день!
Скажите, пожалуйста, можно ли настраивать авторизацию с LDAP "точечно" - то есть, например, не всех пользователей из группы в LDAP, а только некоторых.
Если такой возможности нет, то какое обходное решение вы можете посоветовать?

У меня такой же вопрос

1 комментарий

Здравствуйте, Дарья!

Мы уточнили у Вас, что речь идет не об авторизации, а именно о синхронизации пользователей с помощью LDAP.
Решение следующее:
1. Сначала Вам необходимо на сервере Active Directory (где находится информация о пользователях) создать новую группу.
2. В созданную группу внести только тех пользователей, которых Вы хотите синхронизировать с bpm'online.
3. В настройках синхронизации с LDAP указать название новой группы. Сохранить настройки.

Таким образом, в последующих синхронизациях будут задействованы только определенные пользователи.

Войдите или зарегистрируйтесь, чтобы комментировать