Навигатор по разделу:
1. Общие сведения
LDAP (Lightweight Directory Access Protocol) — протокол для доступа к службам каталогов, который используется для хранения и управления учетными записями пользователей, группами и так далее. В данном разделе рассмотрены основные параметры настройки коннектора, а также приведены примеры конфигураций.
2. Строка подключения
Строка подключения используется для указания параметров, необходимых для подключения к LDAP-серверу. Она включает в себя учетные данные, идентификатор ресурса и путь к файлу конфигурации. Пример строки подключения:
userName=admin;password=Avanp0st;resourceid=freeipaigor;file=../ldapconnector.config.json
Параметры строки подключения:
Таблица — Параметры строки подключения
Параметр | Описание |
---|---|
userName | Маска для формирования имени учетной записи, от которой будет работать коннектор Пример значения: |
password | Пароль к учетной записи Пример значения: |
resourceid | Идентификатор ресурса Пример значения: |
file | Расположение файла конфигурации Пример значения: |
3. Файл конфигурации
Файл конфигурации содержит все необходимые настройки для работы LDAP-коннектора.
3.1. Основные параметры
Основные параметры определяют базовую конфигурацию коннектора.
Таблица — Основные параметры
Параметр | Описание |
---|---|
resourceId | Идентификатор ресурса в системе Пример значения: |
userName | Маска для формирования имени учетной записи, от которой будет работать коннектор Пример значения: |
baseDn | Корневой элемент, по которому осуществляется поиск Пример значения: |
provider | Тип LDAP-провайдера (например, FreeIPA или OpenLDAP). Пример значения: |
3.2. Настройки подключения (sessionOptions
)
Настройки подключения определяют параметры для установления соединения с LDAP-сервером.
Таблица — Настройки подключения
Параметр | Описание |
---|---|
server | Адрес LDAP-сервера Пример значения: |
port | Порт сервера. По умолчанию 389 Пример значения: |
useSsl | Флаг использования SSL/TLS для безопасного подключения Пример значения: |
3.3. Настройки групп (groups
)
Настройки групп определяют, как коннектор будет находить и обрабатывать группы пользователей в каталоге
Таблица — Настройки групп
Параметр | Описание |
---|---|
objectClass | Классы групп, по которым осуществляется поиск Пример значения: |
objectKey | Атрибут, из которого будет извлекается идентификатор группы Пример значения: |
searchKey | Атрибут, по которому будет происходить поиск по имени Пример значения: |
memberAttribute | Атрибут, в котором хранятся члены группы Пример значения: |
3.4. Настройки пользователей (users)
Настройки пользователей определяют, как коннектор будет находить, создавать и обновлять данные о пользователях
Таблица — Настройки пользователей
Параметр | Описание |
---|---|
distinguishedName | Маска для формирования DN пользователя Пример значения: |
objectClass | Классы пользователя, передаваемые при создании Пример значения: |
searchClass | Классы, по которым будет происходить поиск пользователя Пример значения: |
objectKey | Атрибут, из которого будет извлекаться идентификатор пользователя Пример значения: |
objectGroupKey | Атрибут пользователя, использующийся при поиске его групп в атрибутах группы Пример значения: |
searchUserGroups | Режим поиска групп пользователя Пример значения: |
memberOfAttribute | Атрибут, в котором будут записываться группы пользователя. Пример значения: |
customSearchAllUsersLdapFilter | Параметр используется для поиска всех пользователей в каталоге. Этот фильтр позволяет администратору задать дополнительные условия для ограничения или расширения списка пользователей, которые будут обрабатываться коннектором. Например, можно задать фильтр для поиска только тех пользователей, чьи имена начинаются с определенной буквы, или тех, кто принадлежит к определенной группе. Пример значения: (&(cn=*)(uid=usr*)) |
3.5. Настройки блокировки/разблокировки пользователей (lockAttributes
)
Параметры блокировки/разблокировки пользователя определяют, как коннектор будет управлять статусом учетных записей — активна или заблокирована. Настройки содержатся в массиве объектов lockAttributes
, который является частью объекта users
.
Таблица — Настройки блокировки/разблокировки пользователей
Параметр | Описание |
---|---|
attributeKey | Имя атрибута, в котором хранится значение блокировки Пример значения: nsaccountlock |
lockValue | Значение, которое устанавливается при блокировке учетной записи. Поддерживает вычисляемые значения Пример значения: Значения |
unlockValue | Значение, которое устанавливается при разблокировке учетной записи. Поддерживает вычисляемые значения Пример значения: Значения |
enable | Включение или отключение использования атрибута Пример значения: |
description | Опциональное описание атрибута Пример значения: |
В настоящее время поддерживается следующих набор вычисляемых значений. Поддерживаемые символы: " ,:-/'a-zA-Z".
Таблица — Вычисляемые значения
Формат | Описание |
---|---|
| Короткий формат даты Пример формата: |
| Длинный формат даты Пример формата: |
| Полный формат даты и короткое время Пример формата: |
| Полный формат даты и длинное время Пример формата: |
| Общий формат даты и короткое время Пример формата: |
| Общий формат даты и длинное время Пример формата: |
| Формат для точного сохранения данных о дате и времени (ISO 8601) Пример формата: |
| Формат RFC1123 (время UTC) Пример формата: |
| Формат сортируемой даты и времени (ISO 8601) Пример формата: |
| Короткий формат времени Пример формата: |
| Длинный формат времени Пример формата: |
| Универсальный сортируемый формат даты и времени (время UTC) Пример формата: |
| Универсальный полный формат даты и времени (время UTC) Пример формата: |
| Формат года и месяца Пример формата: |
3.6. Атрибуты пользователей (attributes
)
Объект attributes
в объекте users
содержит массив объектов, из которых описывает отдельный атрибут пользователя.
Таблица — Настройка атрибутов пользователей
Параметр | Описание |
---|---|
name | Имя атрибута Пример значения: |
description | Описание атрибута Пример значения: |
required | Указывает, является ли атрибут обязательным для создания или обновления пользователя Пример значения : |
format | Определяет формат значения атрибута пользователя Пример значения: {userId}@fedora.ru |
isPassword | Указывает, является ли данный атрибут паролем пользователя. Пример значения: Если параметр |
4. Пример файла конфигурации
``` [ { "resourceId": "freeipa", "userName": "uid={0},cn=users,cn=accounts,dc=fedora", "baseDn": "dc=fedora", "provider": "FreeIPA", "sessionOptions": { "server": "10.10.180.97" }, "groups": { "objectKey": "ipaUniqueID", "searchKey": "cn", "memberAttribute": "member", "objectClass": [ "ipausergroup" ] }, "users": { "distinguishedName": "uid={0},cn=users,cn=accounts,dc=fedora", "lockAttributes": [ { "attributeKey": "nsaccountlock", "lockValue": "TRUE", "unlockValue": "FALSE" } ], "memberOfAttribute": "memberOf", "searchUserGroups": "MemberOf", "objectKey": "uid", "objectGroupKey": "entryDn", "objectClass": [ "ipaobject", "person", "top", "ipasshuser", "inetorgperson", "organizationalperson", "krbticketpolicyaux", "krbprincipalaux", "inetuser", "posixaccount", "ipaSshGroupOfPubKeys", "mepOriginEntry" ], "searchClass": [ "person" ], "customSearchAllUsersLdapFilter": "(&(cn=*)(uid=*))", "attributes": [ { "name": "userPassword", "description": "Пароль", "required": true, "isPassword": true }, { "name": "sn", "description": "Фамилия сотрудника", "required": false }, { "name": "givenName", "description": "Имя сотрудника", "required": true }, { "name": "cn", "required": true, "description": "Полное имя" }, { "name": "displayName", "required": false, "description": "Отображаемое имя" }, { "name": "krbPrincipalName", "required": true, "description": "Имя учетной записи Kerberos", "format": "{0}@FEDORA" }, { "name": "initials", "required": false, "description": "Инициалы сотрудника" }, { "name": "mail", "required": false, "description": "Адрес электронной почты", "format": "{userId}@fedora.ru" }, { "name": "telephoneNumber", "required": false, "description": "Номер телефона" }, { "name": "mobile", "required": false, "description": "Номер мобильного телефона" }, { "name": "title", "required": false, "description": "Должность" }, { "name": "ou", "required": false, "description": "Подразделение" }, { "name": "employeeNumber", "required": false, "description": "Табельный номер сотрудника" }, { "name": "manager", "required": false, "description": "Руководитель" }, { "name": "homeDirectory", "required": true, "description": "Домашний каталог пользователя", "format": "/home/{0}" }, { "name": "loginShell", "required": true, "description": "Оболочка входа" }, { "name": "street", "required": false, "description": "Адрес: улица" }, { "name": "l", "required": false, "description": "Адрес: город" }, { "name": "st", "required": false, "description": "Адрес: область" }, { "name": "gecos", "required": false, "description": "Дополнительная информация" } ] } }, { "resourceId": "freeipaigor", "userName": "uid={0},cn=users,cn=accounts,dc=avanpost,dc=local", "baseDn": "dc=avanpost,dc=local", "provider": "FreeIPA", "sessionOptions": { "server": "10.10.180.105" }, "groups": { "objectKey": "ipaUniqueID", "searchKey": "cn", "memberAttribute": "member", "objectClass": [ "ipausergroup" ] }, "users": { "distinguishedName": "uid={0},cn=users,cn=accounts,dc=avanpost,dc=local", "lockAttributes": [ { "attributeKey": "nsaccountlock", "lockValue": "TRUE", "unlockValue": "FALSE" } ], "memberOfAttribute": "memberOf", "searchUserGroups": "MemberOf", "objectKey": "uid", "objectGroupKey": "entryDn", "objectClass": [ "ipaobject", "person", "top", "ipasshuser", "inetorgperson", "organizationalperson", "krbticketpolicyaux", "krbprincipalaux", "inetuser", "posixaccount", "ipaSshGroupOfPubKeys", "mepOriginEntry" ], "searchClass": [ "person" ], "customSearchAllUsersLdapFilter": "(&(cn=*)(uid=*))", "attributes": [ { "name": "userPassword", "description": "Пароль", "required": true, "isPassword": true }, { "name": "sn", "description": "Фамилия сотрудника", "required": false }, { "name": "givenName", "description": "Имя сотрудника", "required": true }, { "name": "cn", "required": true, "description": "Полное имя" }, { "name": "displayName", "required": false, "description": "Отображаемое имя" }, { "name": "krbPrincipalName", "required": true, "description": "Имя учетной записи Kerberos", "format": "{0}@AVANPOST.LOCAL" }, { "name": "initials", "required": false, "description": "Инициалы сотрудника" }, { "name": "mail", "required": false, "description": "Адрес электронной почты", "format": "{userId}@avanpost.local.ru" }, { "name": "telephoneNumber", "required": false, "description": "Номер телефона" }, { "name": "mobile", "required": false, "description": "Номер мобильного телефона" }, { "name": "title", "required": false, "description": "Должность" }, { "name": "ou", "required": false, "description": "Подразделение" }, { "name": "employeeNumber", "required": false, "description": "Табельный номер сотрудника" }, { "name": "manager", "required": false, "description": "Руководитель" }, { "name": "homeDirectory", "required": true, "description": "Домашний каталог пользователя", "format": "/home/{0}" }, { "name": "loginShell", "required": true, "description": "Оболочка входа" }, { "name": "street", "required": false, "description": "Адрес: улица" }, { "name": "l", "required": false, "description": "Адрес: город" }, { "name": "st", "required": false, "description": "Адрес: область" }, { "name": "gecos", "required": false, "description": "Дополнительная информация" } ] } }, { "username": "cn={0},dc=wsso,dc=local", "resourceId": "openldap", "provider": "OpenLdap", "baseDn": "dc=wsso,dc=local", "sessionOptions": { "server": "10.10.180.108" }, "groups": { "objectKey": "cn", "searchKey": "cn", "memberAttribute": "memberUid", "objectClass": [ "posixGroup", "top" ] }, "users": { "distinguishedName": "uid={0},ou=ZAGS,dc=wsso,dc=local", "lockAttributes": [ { "attributeKey": "nsaccountlock", "lockValue": "TRUE", "unlockValue": "FALSE" } ], "memberOfAttribute": "memberUid", "searchUserGroups": "Member", "objectKey": "uid", "objectGroupKey": "entryDn", "objectClass": [ "top", "inetOrgPerson", "person", "posixAccount" ], "searchClass": [ "person" ], "customSearchAllUsersLdapFilter": "(&(cn=*)(uid=usr*))", "attributes": [ { "name": "userPassword", "description": "Пароль", "required": true, "isPassword": true }, { "name": "sn", "description": "Фамилия сотрудника", "required": true }, { "name": "givenName", "description": "Имя сотрудника", "required": true }, { "name": "cn", "required": true, "description": "Полное имя" }, { "name": "homeDirectory", "description": "Домашний каталог", "required": true }, { "name": "mail", "required": false, "description": "E-mail" }, { "name": "loginShell", "required": true, "description": "Оболочка входа" }, { "name": "gidNumber", "required": false, "description": "gidNumber" }, { "name": "uidNumber", "required": false, "description": "uidNumber" } ] } } ] ```