Настройка нескольких пользовательских каталогов
Чтобы настроить поиск пользователей одновременно в нескольких каталогах Active Directory, добавьте конфигурацию каждого каталога в раздел Providers:Ldap, а затем объедините их в разделе Providers:Or.
Составной каталог Or не является отдельным LDAP-сервером. Он объединяет несколько настроенных каталогов Active Directory в единый источник для поиска пользователей.
Чтобы настроить несколько пользовательских каталогов:
- В конфигурационном файле
am/core/app-settings.jsonперейдите в разделUserCatalog. - В разделе
Providers, в тегеLdapдобавьте конфигурацию каждого каталога Active Directory. - Добавьте тег
Orи укажите идентификаторы настроенных каталогов. - В параметре
RootProviderукажите идентификатор составного провайдераOr.
В следующем примере настроены два каталога Active Directory с идентификаторами UserId2 и UserId3. Они объединены в составной каталог OrUserId0, который указан в качестве корневого провайдера.
Пример настройки
"UserCatalog": {
"RootProvider": "OrUserId0",
"Providers": {
"Ldap": [
{
"Id": "UserId2",
"Domain": "ad2.indeed.demo",
"Port": 636,
"SecureSocketLayer": true,
"ContainerPath": "OU=Indeed_Users,DC=ad2,DC=indeed,DC=demo",
"UserName": "indeed\\admin",
"Password": "password2"
},
{
"Id": "UserId3",
"Domain": "ad3.indeed.demo",
"Port": 636,
"SecureSocketLayer": true,
"ContainerPath": "OU=Indeed_Users,DC=ad3,DC=indeed,DC=demo",
"UserName": "indeed\\admin",
"Password": "password3"
}
],
"Or": [
{
"Id": "OrUserId0",
"Providers": {
"UserId2": { "IgnoreExceptions": true },
"UserId3": { "IgnoreExceptions": true }
}
}
]
}
}
| Параметр | Описание |
|---|---|
RootProvider | Идентификатор корневого пользовательского каталога. Чтобы поиск выполнялся в нескольких каталогах, укажите идентификатор составного провайдера Or. |
Providers:Ldap | Раздел содержит настройки отдельных каталогов Active Directory. |
Providers:Ldap:Id | Уникальный идентификатор каталога Active Directory. |
Providers:Or | Раздел содержит настройки составных пользовательских каталогов. |
Providers:Or:Id | Уникальный идентификатор составного провайдера. |
Providers:Or:Providers | Раздел содержит идентификаторы каталогов Active Directory, которые объединяются в составной каталог. |
IgnoreExceptions | Определяет, будет ли поиск продолжаться в остальных каталогах, если один из каталогов недоступен или при обращении к нему возникла ошибка. При значении "IgnoreExceptions": true система продолжает поиск в доступных каталогах, если один из объединенных каталогов недоступен. |
Чтобы ограничить область поиска в отдельном каталоге по доменной части имени пользователя, добавьте в его конфигурацию секцию RegularExpression. Подробнее см. Поиск пользователей по нескольким каталогам.
Поиск пользователей по нескольким каталогам
Чтобы оптимизировать работу с несколькими каталогами пользователей, выполните следующую опциональную настройку. Настройка позволяет быстрее выполнять поиск пользователей и взаимодействовать с доступными каталогами Active Directory в случае отказа некоторых каталогов.
Чтобы настроить поиск пользователей при работе с несколькими каталогами:
В конфигурационном файле
am/core/app-settings.jsonперейдите в разделUserCatalog.В разделе
Providers, в тегеLdapдобавьте секциюRegularExpressionи задайте необходимые параметры.После добавления секции включите настройку поиска в Management Console.
В следующем примере проверяется, соответствуют ли атрибуты
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Секция позволяет задавать регулярные выражения для фильтрации пользователей, групп и контейнеров. UsersGroupsContainers
В зависимости от выбранного параметра, фильтрация может производиться по пользователям ( Users), группам (Groups) или контейнерам (Containers).ValueПоле, в котором задается само регулярное выражение. Рекомендуется задать регулярное выражение, содержащее доменную часть данного каталога. Примеры регулярных выражений приведены после таблицы.
Параметр применяется только к тем атрибутам, которые указаны в параметреAttributes.
Поиск по каталогу осуществляется в следующих случаях:- Если регулярное выражение совпадает c параметром поиска.
- Если для каталога не указано регулярное выражение, поиск по этому каталогу осуществляется без применения фильтрации.
AttributesПеременная, содержащая атрибуты, которые применяются для проверки регулярных выражений.
Эти атрибуты не относятся к полям Active Directory напрямую, а представляют собой переменные уровня приложения из классаUserCatalog.
Возможные значения параметраAttributes:Users:PrincipalNameSamCompatibleNameDistinguishedName
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=[\\w\\s.*-]+(?:,OU=[\\w\\s.*-]+)+,DC=company,DC=local$",
"Attributes": ["DistinguishedName"]
}
}