# Конфигурирование интеграции с Active Directory

**Настройка интеграции PassOffice с Active Directory: Пошаговая инструкция**

Данное руководство описывает процесс настройки интеграции между PassOffice и Active Directory. Выполните следующие шаги под учетной записью администратора PassOffice.

**1.** **Предварительные действия:**

* Проверьте, что служба Active Directory запущена и доступна.

**Настройка PassOffice:**

**1. Запуск сервера PassOffice:** Запустите сервер PassOffice, используя файл `PassOfficeSrv.bat`.

**2. Авторизация в PassOffice:** Откройте браузер, введите адрес сервера PassOffice (например, `localhost:80`) и авторизуйтесь под учетной записью администратора.

**3**. **Переход к настройкам интеграции:** Откройте пункт меню «Администрирование / Настройки интеграции».

**4. Редактирование настроек Active Directory:**

* **Основные параметры:**
* `логин и пароль оператора` Active Directory, от лица которого будет работать PassOffice. Для обновления пароля:
  * Установите галочку **«Обновить пароль»**
  * Введите **новый пароль** в соответствующее поле и после этого нажмите **«Сохранить»**.
* `URL Active Directory:` адрес сервера AD например, `ldap://dc.example.com.`
* `Поисковая база (Base DN):` корневой объект в AD, с которого начинается поиск пользователей (например, `DC=example,DC=com`).
* `Connection timeout и Read timeout`: задайте значения тайм-аутов для соединения и чтения данных.

• **Вкладка «SSL»:**

* Добавьте сертификат для защищенного соединения.
* Поддерживаются сертификаты x509, хранилища JKS и PKCS12.
* Включите настройку "Упрощенная проверка" для отключения проверки хоста и домена.

• **Вкладка «Аутентификация»:**

* *Разрешать аутентификацию и Разрешать саморегистрацию:* разрешает пользователям AD аутентифицироваться в PassOffice и создавать учетные записи (требуется наличие ФИО и email в AD).

• **Вкладка «Атрибуты»:**

* В настройках интеграции с AD можно указать соответствие полей PassOffice и атрибутов AD. Допускается указывать **несколько атрибутов через запятую** — система возьмёт значение из **первого непустого** атрибута по порядку.

Например:

| Поле в PassOffice | Примеры атрибутов AD (по приоритету) | Что получится в PassOffice                 |
| ----------------- | ------------------------------------ | ------------------------------------------ |
| **ФИО**           | displayName, cn                      | Берётся из displayName, если пусто — из cn |
| **Имя**           | givenName, GivenName, firstName      | Берётся первое непустое значение           |

* В каждом поле задайте стратегию разрешения конфликтов при обнаружении совпадений:
  * *Сторонняя система, очищать -* если поле есть и в PassOffice и в СКУД, то оно будет заменено на соответствующее из СКУД. Если поле есть в PassOffice, но нет в СКУД, то поле в PassOffice будет очищено. Если каких-то полей нет в PassOffice, но есть в СКУД, то оно заменится на соответствующее из СКУД.
  * *Сторонняя система, дополнять -* если поле есть и в PassOffice и в СКУД, то оно будет заменено на соответствующее из СКУД. Если поле есть в PassOffice, но нет в СКУД, то поле отгрузится из PassOffice. Если каких-то полей нет в PassOffice, но есть в СКУД, то оно заменится на соответствующее из СКУД.
  * *Бюро пропусков -* данные в PassOffice сохраняются, даже если они отличаются от данных в AD. Если каких-то полей нет в PassOffice, но есть в Active Directory, то они заменяются на соотвествующие из Active Directory.

```bbcode
Фамилия=sn
Почта=mail
Логин=userPrincipalName
Телефон=telephoneNumber
Рабочий телефон=telephoneNumber
Комната=physicalDeliveryOfficeName
Отдел=department
Должность=title
Организация=Company
Страна=co
```

• **Вкладка «Маски»:**

* *Маска даты рождения:* формат даты рождения, используемый в AD (например, `dd/MM/yyyy`). Важно, чтобы этот формат совпадал с форматом, используемым в PassOffice.
* *Маска ФИО:* порядок импорта ФИО из атрибутов AD (например, `{name} {surname} {middlename}`). Это определяет, как PassOffice соберет ФИО из различных полей AD.

Система поддерживает следующие переменные:

* {name} — имя
* {surname} — фамилия
* {middlename} — отчество

**Примеры масок**

| Маска                                        | Что получится из строки «Иван Иванович Петров»                     | Результат в PassOffice    |
| -------------------------------------------- | ------------------------------------------------------------------ | ------------------------- |
| {name} {middlename} {surname} (по умолчанию) | <p>Иван → имя</p><p>Иванович → отчество</p><p>Петров → фамилия</p> | ФИО: Петров Иван Иванович |
| {surname} {name} {middlename}                | <p>Петров → фамилия</p><p>Иван → имя</p><p>Иванович → отчество</p> | ФИО: Петров Иван Иванович |
| {surname} {name}                             | <p>Петров → фамилия</p><p>Иван → имя (отчество пусто)</p>          | ФИО: Петров Иван          |
| {name} {surname}                             | <p>Иван → имя</p><p>Петров → фамилия</p>                           | ФИО: Петров Иван          |
| {middlename} {surname} {name}                | <p>Иванович → отчество</p><p>Петров → фамилия</p><p>Иван → имя</p> | ФИО: Петров Иван Иванович |

• **Вкладка «Фильтры»:**

* На вкладке **«Фильтры»** в настройках интеграции с AD можно задать **пользовательский LDAP-фильтр** импорта операторов и людей.

**Как работает фильтр**

При выборе **«Пользовательская»** вы вводите LDAP-фильтр в стандартном синтаксисе Active Directory. По умолчанию система использует следующий «универсальный» фильтр:

```
(&(objectGUID=*)(|(objectClass=person)(objectClass=user))(|(givenName=*)
(GivenName=*))(sn=*)(|(mail=*)(userPrincipalName=*)))
```

**Расшифровка основных частей фильтра**

| Часть фильтра                                | Что означает                                                                   |
| -------------------------------------------- | ------------------------------------------------------------------------------ |
| `(& … )`                                     | **И** — все условия внутри должны выполняться одновременно                     |
| `(objectGUID=*)`                             | Объект существует в AD (техническое условие, всегда истинно)                   |
| `(\|(objectClass=person)(objectClass=user))` | **ИЛИ** — объект должен быть либо человеком, либо учётной записью пользователя |
| `(\|(givenName=*)(GivenName=*))`             | Есть хотя бы одно из полей «Имя» (в любом регистре)                            |
| `(sn=*)`                                     | Поле «Фамилия» заполнено                                                       |
| `(\|(mail=*)(userPrincipalName=*))`          | Есть хотя бы один из способов авторизации (почта или UPN)                      |

**Примеры готовых фильтров**

<table><thead><tr><th width="320">Цель импорта</th><th>Рекомендуемый фильтр</th></tr></thead><tbody><tr><td>Только активные пользователи</td><td><code>(&#x26;(objectCategory=person)(objectClass=user))</code></td></tr><tr><td>Только пользователи с почтой</td><td><code>(&#x26;(objectClass=user)(mail=*))</code></td></tr><tr><td>Только сотрудники определённого подразделения</td><td><code>(&#x26;(objectClass=user)(department=Отдел продаж))</code></td></tr></tbody></table>

После сохранения фильтра система будет импортировать только те объекты AD, которые ему соответствуют.\
Фильтр применяется как к операторам, так и к людям при синхронизации.

• **Вкладка «Дополнительные»:**

* *Блокировка человека и его карт при деактивации в Active Directory:* установите флажок для автоматической блокировки пользователя в PassOffice при его деактивации в Active Directory.
* *Разрешать слияние конфликтов при импорте -* при включенной настройке при импорте людей из интеграций объединяются похожие посетители.
* *Конфигурация размера пакетов для импорта:* оптимизируйте процесс импорта данных из AD, указав размер пакетов для различных типов объектов: человек, оператор.

• **Тест соединения:** обязательно проведите тест соединения после ввода параметров.

* **Успешный тест:** активируйте настройки соединения с AD.
* **Ошибка:** проверьте логи сервера PassOffice для выявления и устранения проблемы.

• **Реактивация/Деактивация соединения:** используйте соответствующие кнопки для управления состоянием соединения с AD.

• **Вкладка «Соответствие категорий»:**

* *Соответствие категорий оператора в PassOffice и группы Active Directory:* установите соответствие между группами AD и категориями в PassOffice или укажите категорию по умолчанию.

• **Вкладка «Профили операторов»:**

* Задайте соответствие группы AD и профиля оператора в PassOffice.

После выполнения этих шагов интеграция PassOffice с AD должна быть настроена. Рекомендуется проверить работоспособность интеграции путем создания тестовой заявки и отслеживания её в системе AD.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.aamsystems.ru/passoffice/passoffice-guide/admin-guide-doc/acs-configuration/acs-activedirectory.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
