Skip to main content
Version: Privileged Access Manager 2.10

Интеграция со сторонними каталогами пользователей

На этой странице описано, как настроить интеграцию продукта Indeed PAM с каталогами пользователей Active Directory, FreeIPA, OpenLDAP и ALD Pro.

Для изменения параметров чтения каталога пользователей требуется отредактировать секцию UserCatalog в конфигурационных файлах Core и Idp.

Путь до файла конфигурации Core:

WindowsC:\inetpub\wwwroot\pam\core\appsettings.json
Linux/etc/indeed/indeed-pam/core/appsettings.json

Путь до файла конфигурации IdP:

WindowsC:\inetpub\wwwroot\pam\idp\appsettings.json
Linux/etc/indeed/indeed-pam/idp/appsettings.json

Настройка интеграции с Active Directory

Файлы конфигурации изначально содержат настройки для интеграции с Active Directory, дополнительных изменений не требуется.

Настройка поиска пользователей в группе безопасности

Для настройки поиска пользователей из определенной группы безопасности требуется настроить параметр CatalogFilter.

Пример настройки параметра для одной группы безопасности
"CatalogFilter": "memberOf=cn=Admins,CN=Builtin,DC=vdd,DC=com"
Пример настройки для нескольких групп безопасности
"CatalogFilter": "(|(memberOf=cn=Admins,CN=Builtin,DC=vdd,DC=com) (memberOf=cn=PrivelledgeAccounts,OU=Groups,DC=vdd,DC=com) (memberOf=cn=Admins1,OU=PAMUsers,DC=vdd,DC=com))"

Параметр ContainerPath также должен быть заполнен, т.к. считываться будут только те пользователи, которые состоят в OU, который вы указали в значении параметра CatalogFilter.

Пример заполненной секции UserCatalog с указанием группы безопасности
"UserCatalog": {
"RootProvider": "ad1",
"Providers": {
"Ldap": [
{
"Id": "ad1",
"ConnectorType": "Ldap",
"LdapServerType": "ActiveDirectory",
"Domain": "indeed.test",
"Port": 636,
"AuthType": "Basic",
"SecureSocketLayer": true,
"ContainerPath": "OU=UsersPAM,DC=indeed,DC=test",
"CatalogFilter": "memberOf=cn=SecurityGroup,OU=PAMUsers,DC=indeed,DC=test",
"UserName": "IPAMADReadOps@indeed.test",
"Password": "qwe123",
"UserMapRules": {
"Settings": [
{
"Category": "person",
"Class": "user"
}
]
}
}
]
}
}

Дополнительную информацию по настройке параметра CatalogFilter можно прочитать в документации Microsoft.

Настройка интеграции с FreeIpa или AldPro

Для настройки интеграции с каталогом пользователей FreeIPA или AldPro пользователи каталога должны иметь следующие атрибуты:

  • entryUUID или ipaUniqueID
  • cn
  • entryDn
  • ipaNTSecurityIdentifier
  • krbPrincipalName
  • uid
Пример заполненной секции UserCatalog для каталога пользователей FreeIPA или AldPro
{
"Id": "ad",
"ConnectorType": "Ldap",
"LdapServerType": "FreeIpa", //Заменить на AldPro при настройке на AldPro
"Domain": "ald.sup", //Имя домена или конкретного контроллера
"Port": 389, //389 для подключения по LDAP, 636 для подключения по LDAPS
"AuthType": "Basic",
"SecureSocketLayer": false,//false для подключения по LDAP, true для подключения по LDAPS
"ContainerPath": "dc=ald,dc=sup", //Путь до контейнера пользователей
"UserName": "uid=pamread,cn=users,cn=accounts,dc=ald,dc=sup", //Учетные данные для доступа к домену. Должны быть в формате distigushedName, УЗ должна иметь права на чтение необходимых атрибутов
"Password": "Q1w2e3r4", //Пароль УЗ для доступа к домену
"GroupMapRules": {
"Settings": [
{
"Category": "",
"Class": "ipantgroupattrs"
}
],
"Attributes": {
"Id": "ipaUniqueID",
"Name": "cn",
"SamAccountName": "cn",
"CanonicalName": "cn",
"DistinguishedName": "entryDn",
"SidBytes": "ipaNTSecurityIdentifier"
}
},
"UserMapRules": {
"Settings": [
{
"Category": "",
"Class": "person"
}
],
"Attributes": {
"Id": "ipaUniqueID",
"Name": "cn",
"PrincipalName": "krbPrincipalName",
"SamAccountName": "uid",
"DistinguishedName": "entryDn",
"SidBytes": "ipaNTSecurityIdentifier",
"ThumbnailPhoto": "jpegPhoto",
"JpegPhoto": "jpegPhoto"
}
}
}

Если у пользователей каталога есть атрибут entryUUID и нет атрибута ipaUniqueID, то в секциях GroupMapRules и UserMapRules в разделе Attributes необходимо удалить параметр "Id": "ipaUniqueID".

Настройка интеграции с OpenLDAP

Для настройки интеграции с каталогом пользователей OpenLDAP пользователи каталога должны иметь следующие атрибуты:

  • cn
  • entryDn
  • uid
Пример заполненной секции UserCatalog для каталога пользователей OpenLDAP
{
"Id": "oldap",
"ConnectorType": "Ldap",
"LdapServerType": "OpenLdap",
"Domain": "oldap.local", //Имя домена или конкретного контроллера
"Port": 389, //389 для подключения по LDAP, 636 для подключения по LDAPS
"AuthType": "Basic",
"SecureSocketLayer": false, //false для подключения по LDAP, true для подключения по LDAPS
"ContainerPath": "DC=oldap,DC=local", //Путь до контейнера пользователей
"UserName": "cn=IPAMADReadOps,dc=oldap,dc=local", //Учетные данные для доступа к домену. Должны быть в формате distigushedName, УЗ должна иметь права на чтение необходимых атрибутов
"Password": "QWEqwe123", //Пароль УЗ для доступа к домену
"GroupMapRules": {
"Settings": [
{
"Category": "",
"Class": "groupOfUniqueNames"
}
],
"Attributes": {
"Name": "cn",
"SamAccountName": "cn",
"CanonicalName": "cn",
"DistinguishedName": "entryDn",
"Members": "uniqueMember"
}
},
"UserMapRules": {
"Settings": [
{
"Category": "",
"Class": "inetOrgPerson"
}
],
"Attributes": {
"Name": "cn",
"SamAccountName": "uid",
"DistinguishedName": "entryDn",
"ThumbnailPhoto": "photo",
"JpegPhoto": "photo"
}
}
}

Настройка интеграции с несколькими каталогами пользователей

Для настройки интеграции с несколькими каталогами пользователей выполните следующие действия:

  1. Поменяйте значение параметра RootProvider на "orUCP".
  2. В секции Ldap перечислите через запятую каталоги пользователей, с которыми необходима интеграция. Id провайдеров не должны совпадать. Id провайдеров, с которыми до этого работал PAM, не должны меняться.
  3. Добавьте секцию Or из примера ниже, в которой пропишите Id секций провайдеров.
Пример секции UserCatalog, настроенной на работу с двумя каталогами пользователей
"UserCatalog": {
"RootProvider": "orUCP",
"Providers": {
"Ldap": [
{
"Id": "ad",
"ConnectorType": "Ldap",
"LdapServerType": "ActiveDirectory",
"Domain": "indeed.test",
"Port": 636,
"AuthType": "Basic",
"SecureSocketLayer": true,
"ContainerPath": "OU=UsersPAM,DC=indeed,DC=test",
"UserName": "IPAMADReadOps@indeed.test",
"Password": "qwe123",
"UserMapRules": {
"Settings": [
{
"Category": "person",
"Class": "user"
}
]
}
},
{
"Id": "ad2",
"ConnectorType": "Ldap",
"LdapServerType": "ActiveDirectory",
"Domain": "indeed.test",
"Port": 636,
"AuthType": "Basic",
"SecureSocketLayer": true,
"ContainerPath": "OU=UsersPAM,DC=indeed,DC=test",
"UserName": "IPAMADReadOps@indeed.test",
"Password": "qwe123",
"UserMapRules": {
"Settings": [
{
"Category": "person",
"Class": "user"
}
]
}
},
{
"Id": "ipa",
"ConnectorType": "Ldap",
"LdapServerType": "FreeIpa",
"Domain": "ipa.redos",
"Port": 389,
"AuthType": "Basic",
"SecureSocketLayer": false,
"ContainerPath": "DC=ipa,DC=redos",
"UserName": "uid=IPAMADReadOps,cn=users,cn=accounts,dc=ipa,dc=redos",
"Password": "qwe123",
"GroupMapRules": {
"Settings": [
{
"Category": "",
"Class": "ipantgroupattrs"
}
],
"Attributes": {
"Name": "cn",
"SamAccountName": "cn",
"CanonicalName": "cn",
"DistinguishedName": "entryDn",
"SidBytes": "ipaNTSecurityIdentifier"
}
},
"UserMapRules": {
"Settings": [
{
"Category": "",
"Class": "person"
}
],
"Attributes": {
"Name": "cn",
"PrincipalName": "krbPrincipalName",
"SamAccountName": "uid",
"DistinguishedName": "entryDn",
"SidBytes": "ipaNTSecurityIdentifier",
"ThumbnailPhoto": "jpegPhoto",
"JpegPhoto": "jpegPhoto"
}
}
}
],
"Or": [
{
"Id": "orUCP",
"Providers": {
"ad": {"IgnoreExceptions": true},
"ad2": {"IgnoreExceptions": true},
"ipa": {"IgnoreExceptions": true}
}
}
]
}
}