Здравствуйте. Сервер Creatio версии 7.18.2.1236 развёрнут на Astra Linux. Коллегами была настроена синхронизация пользователей AD – группы AD успешно импортировались в систему, а после этого была произведена успешная синхронизация орг. Роли с группой. В результате, во вкладку «Пользователи» были автоматически добавлены пользователи из группы LDAP. Настройка производилась по инструкции на Академии.

 

Однако, после настроек аутентификации – а именно, изменения файла «Terrasoft.WebHost.dll.config» (т.к. Creatio развёрнуто на Astra Linux), авторизация под учётными записями AD осталась недоступной. Следовали инструкциям по настройке. Просьба подсказать, в чём может быть проблема. Файл настройки «Terrasoft.WebHost.dll.config» прилагаю.



P.S. Есть так же отдельный сервер Creatio на Windows. Там синхронизация с AD и авторизация по учётным записям AD работают корректно (там авторизация настроена через файл конфигурации Web.config)

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

Нравится

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

Добрый день!

Попробуйте заменить Ldap на LdapProvider в следующих строках:<provider name="Ldap" type="Terrasoft.Authentication.Core.Ldap.NetStandardLdapProvider, Terrasoft.Authentication">

 

<auth providerNames="InternalUserPassword,Ldap"

 

Должно получится так:

<provider name="LdapProvider" type="Terrasoft.Authentication.Core.Ldap.NetStandardLdapProvider, Terrasoft.Authentication">

 

<auth providerNames="InternalUserPassword,LdapProvider"

 

Также убедитесь, что сервер приложения включён в домен сервера, где расположен AD.

Показать все комментарии

Версия приложения: 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.

Показать все комментарии

Смысла вести дневник обо всем на свете особого не видел.
Но теперь, есть что имеет смысл выложить.
При импорте пользователя из АД в контакт копирутся его почта.

1. Необходимо выяснить ID типа средства связи для почты делается это запросом в SQL

SELECT ID
FROM tbl_CommunicationType
WHERE Name = 'E-mail'

2. Необходимо, на сервере разрешить выполнять команды с OpenRowset.

3. Изменить scr_DomainUsersUtils следующим образом:
После

ContactsDataset.Values('Name') = UserFullName;

Добавляется

ContactsDataset.Values('Communication1TypeID') = '{EmailID}';
ContactsDataset.Values('Communication1') = GetDomainContactMail(UserFullName);

Где EmailID - ID типа средства связи.

4. Добавить в scr_DomainUsersUtils следующую функцию:

function GetDomainContactMail(ContactName) {
         var Info = new ActiveXObject('ADSystemInfo');
         var Parameters = CreateSPParameters();
         var Email = CreateSPParameter(Parameters, 'Email', pdtGUID, '');
         Email.ParamType = 1;        
         var ComputerName = Info.ComputerName;
         var Index = ComputerName.match('DC').index;
         var Domain = ComputerName.substr(Index,ComputerName.length-1);
         var SQLCommand = 'select :Email = mail from OpenRowset(\'ADSDSOObject\' ';
         SQLCommand = SQLCommand + ',\'\',\'\/\/'+ Domain + '>;';
         SQLCommand = SQLCommand + '(objectCategory=Person);name,mail\')';
         SQLCommand = SQLCommand + ' where Name = \'' + ContactName + '\'';
         Connector.DBEngine.ExecuteCustomSQL(SQLCommand,Parameters);
         return Email.Value;
}

Нравится

Поделиться

0 комментариев
Показать все комментарии