Навигатор по разделу:
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"
}
]
}
}
]
```