Настройка нескольких пользовательских каталогов
Если настройка нескольких каталогов осуществляется в уже используемой системе Indeed (после выдачи первичных прав для администратора системы), и изменяется расположение администратора системы или префикс, заданный в параметре RootAdministrator, то потребуется удалить выданные ранее права и выполнить повторный запуск утилиты первичной конфигурации.
Для удаления прав необходимо удалить все данные из таблицы DbAccessGroupMembers, расположенной в базе данных системы Indeed.
Если контейнеры находятся в разных доменах/лесах, то требуется создать пользователя для чтения данных с контейнера в своем домене/лесе.
В теге
RootProvider
укажите значениеorUCP
.Внутри тега
Ldap
добавьте блоки для подключения к контейнерам с параметромId
, в котором указывается идентификатор пользовательского контейнера.ИнформацияЗначение параметра
Id
в разделеOr
должно соответствовать значению, заданному в параметреrootProvider
.Внутри тега
UserCatalog
добавьте тегOr
. Внутри тегаOr
добавьте тегProviders
. В тегеProviders
создайте блоки с параметромId
, в котором указывается идентификатор пользовательского контейнера, иignoreExceptions
со значениемtrue
, данный параметр игнорирует ошибку подключения к каталогу, если данный каталог не доступен.ИнформацияЕсли теги отсутствуют, то добавьте их вручную. Полная структура файла представлена ниже.
Пример
"UserCatalog": {
"RootProvider": "orUCP",
"Providers": {
"Ldap": [
{
"Id": "UserId",
"Domain": "domain",
"Port": 636,
"SecureSocketLayer": true,
"ContainerPath": "user_catalog_path",
"UserName": "username@domain",
"Password": "password"
},
{
"Id": "UserId2",
"Domain": "domaindomain",
"Port": 636,
"SecureSocketLayer": true,
"ContainerPath": "user_catalog_path2",
"UserName": "usernameusername@domaindomain",
"Password": "passwordpassword"
}
],
"Or": [
{
"Id": "orUCP",
"Providers": {
"UserId": {
"IgnoreExceptions": true
},
"UserId2": {
"IgnoreExceptions": true
}
}
}
]
}
}При добавлении каждого нового каталога необходимо заново сформировать значение
StringValue
в конфигурационном файле am/core/initial-settings.json.
Поиск пользователей по нескольким каталогам
Чтобы оптимизировать работу с несколькими каталогами пользователей, выполните следующую опциональную настройку. Настройка позволяет быстрее выполнять поиск пользователей и взаимодействовать с доступными каталогами Active Directory в случае отказа некоторых каталогов.
Чтобы настроить поиск пользователей при работе с несколькими каталогами:
В конфигурационном файле am/core/app-settings.json перейдите в раздел
UserCatalog
.В разделе
Providers
, в тегеLdap
добавьте секциюRegularExpression
и задайте необходимые параметры.В следующем примере проверяется, соответствуют ли атрибуты
PrincipalName
илиSamCompatibleName
домену @indeed.demo. Параметры и возможные значения описаны в следующей таблице.Пример настройки
"UserCatalog": {
"RootProvider": "UserId0",
"Providers": {
"Ldap": [{
"Id": "UserId2",
"Domain": "rodc.indeed.demo",
"Port": 636,
"SecureSocketLayer": true,
"ContainerPath": "OU=Indeed_Users,DC=indeed,DC=demo",
"UserName": "indeed\\admin",
"Password": "password",
"RegularExpression": {
"Users": {
"Value": "^(?:([a-zA-Z0-9._*-]+)@indeed\\.demo|indeed\\\\([a-zA-Z0-9._*-]+))$",
"Attributes": ["PrincipalName", "SamCompatibleName"]
},
}
},Параметр Описание RegularExpression
Секция позволяет задавать регулярные выражения для фильтрации пользователей, групп и контейнеров. Users
Groups
Containers
В зависимости от выбранного параметра, фильтрация может производиться по пользователям ( Users
), группам (Groups
) или контейнерам (Containers
).Value
Поле, в котором задается само регулярное выражение. Рекомендуется задать регулярное выражение, содержащее доменную часть данного каталога. Примеры регулярных выражений приведены после таблицы.
Параметр применяется только к тем атрибутам, которые указаны в параметреAttributes
.
Поиск по каталогу осуществляется в следующих случаях:- если регулярное выражение совпадает c параметром поиска,
- если для каталога не указано регулярное выражение, поиск по этому каталогу осуществляется без применения фильтрации.
Attributes
Переменная, содержащая атрибуты, которые применяются для проверки регулярных выражений.
Эти атрибуты не относятся к полям Active Directory напрямую, а представляют собой переменные уровня приложения из классаUserCatalog
.
Возможные значения параметраAttributes
:Users
:PrincipalName
SamCompatibleName
DistinguishedName
Groups
иContainers
:Name
Примеры настройки поиска по атрибутам
Пример поиска по PrincipalName
"RegularExpression": {
"Users": {
"Value": "^\\*?[a-zA-Z0-9._*-]*@company\\.local\\*?$", // учтены wildcard * для корректной работы поиска в MC по UPN
"Attributes": ["PrincipalName"]
}
}
Пример поиска по SamCompatibleName
"RegularExpression": {
"Users": {
"Value": "^COMPANY\\\\([a-zA-Z0-9._*-]+)$",
"Attributes": ["SamCompatibleName"]
}
}
Пример поиска по DistinguishedName
"RegularExpression": {
"Users": {
"Value": "^CN=[a-zA-Z0-9\s._*-]+,OU=[a-zA-Z0-9\s._*-]+,DC=company,DC=local$",
"Attributes": ["DistinguishedName"]
}
}