Навигатор по разделу:
- 1. Общие сведения
- 2. Поддерживаемые функции
- 3. Поддерживаемые управляемые системы
- 4. Предварительные условия
- 5. Используемые библиотеки
- 6. Порядок установки и настройки подключения
- 7. Конфигурация коннектора
- 3.2 Строка подключения
- 8. Схема атрибутов
- 9. Методы API коннектора
- 10. Проверка рабочего состояния подключения
1. Общие сведения
Avanpost IDM позволяет автоматизировать управление учётными записями (далее — УЗ) и правами доступа пользователей в управляемых ИС, подключаемых к IDM через службу каталогов MS Active Directory.
Коннектор AvanpostConnectorAD, состоящий из библиотеки (.dll) и конфигурационного файла (.json), устанавливается на сервере Avanpost IDM. С помощью коннектора создается подключение к управляемой системе Active Directory. Взаимодействие IDM с управляемой системой Active Directory осуществляется с использованием протокола LDAP v3 в одностороннем порядке:
- IDM инициирует запрос;
- AD исполняет запрос и возвращает результат исполнения запроса.
При наличии в организации нескольких доменов для каждого может быть реализован отдельный ресурс с уникальным контекстом, при этом передаваемые свойства могут быть настроены в составе одного конфигурационного файла.
2. Поддерживаемые функции
Коннектор Avanpost IDM к управляемой системе MS Active Directory обладает следующими функциональными возможностями:
1. Управление УЗ пользователей Active Directory:
- Создание УЗ пользователя;
- Изменение атрибутов УЗ пользователя;
- Блокировка УЗ пользователя;
- Разблокировка УЗ пользователя;
- Удаление УЗ пользователя;
- Получение атрибутов с генерируемыми в Active Directory значениями.
2. Управление доступом и мониторинг активности пользователей:
- Включение УЗ пользователя в группы доступа;
- Исключение УЗ пользователя из групп доступа;
- Получение времени последнего входа пользователя.
3. Управление организационной структурой (Organizational Unit - OU):
- Создание OU;
- Перемещение УЗ пользователя между OU.
4. Управление каталогами или файлами общего файлового хранилища:
- Проверка наличия у пользователя прав на использование каталога или файла;
- Назначение и отзыв у пользователя прав на использование каталога или файла.
3. Поддерживаемые управляемые системы
- Microsoft Windows Server 2019;
- Microsoft Windows Server 2016;
- Microsoft Windows Server 2012 R2;
- Microsoft Windows Server 2012;
- Microsoft Windows Server 2008 R2;
- Microsoft Windows Server 2008;
- Microsoft Windows Server 2003.
4. Предварительные условия
Веб-сервис и сервер IDM должны быть установлены на Windows, либо сервис коннекторов должен быть установлен на Windows.
Для функционирования коннектора необходима служебная (техническая) учетная запись в AD. Служебная учетная запись должна быть включена в группу «Операторы учета» (Account Operators) и иметь права на изменение organizationUnit
.
5. Используемые библиотеки
System.DirectoryServices, Version=5.0.0, Microsoft.
6. Порядок установки и настройки подключения
Для установки подключения через коннектор AvanpostConnectorAD к управляемой системе необходимо:
- Установить коннектор Active Directory на сервере Avanpost IDM.
- Создать служебную (техническую) УЗ в AD.
- Настроить ресурс в IDM.
6.1. Порядок установки коннектора
Для установки коннектора на сервере Avanpost IDM необходимо:
- Скопировать файл коннектора Avanpost.IDM.Connectors.ActiveDirectory и перенести его в папку с коннекторами.
- Открыть и настроить конфигурационный файл
ad-connector.config.json
. - Выполнить настройку ресурса Active Directory в IDM.
- Открыть IDM, пройти авторизацию и проверить наличие загруженных свойств в настройках ресурса.
- Чтобы можно было добавить права в IDM, пул в IIS должен быть запущен из-под УЗ, которая имеет права на сетевой ресурс.
- Чтобы управлять ролями в IDM, которые имеют объектные права в сетевых каталогах, служба IDM должна быть запущена под технической УЗ, которая имеет полные права на сетевой ресурс.
6.2. Настройка ресурса Active Directory в IDM
Настройка ресурса Active Directory в IDM производится согласно руководству Администратора IDM (см. здесь) и состоит из следующих этапов:
- Создание ресурса.
- Настройка атрибутов ресурса. Для настройки атрибутов ресурса необходимо заполнить основные свойства ресурса:
- "Название" — название ресурса;
- "Библиотека коннектора" — имя библиотеки коннектора:
ActiveDirectory.ProvisioningConnector.dll;
- "Строка подключения" — информация, необходимая для подключения к ресурсу. Параметры строки подключения и примеры ее заполнения приведены ниже.
- Настройка свойств УЗ пользователей в ресурсе. Перечень свойств является настраиваемым и может быть изменен в массиве атрибутов конфигурационного файла.
- Настройка зависимостей свойств УЗ в профиле ресурса от свойств УЗ в другом профиле.
- Настройка прав пользователей по умолчанию в ресурсе (через привязку профиля ресурса к роли – см. здесь).
6.3. Управление OU
Создание OU
Для создания организационного подразделения (OU) в IDM необходимо:
- Создать роль для пользователя;
- Связать ее с ресурсом через соответствующий профиль;
- В шаблоне учетных записей профиля ресурса добавить свойство
ou
; - Настроить заполнение свойства
ou
, а именно, определить и записать процедуру вычисления OU пользователя исходя из организационной структуры целевой системы (при назначении роли свойство будет получать значение в свойствах ресурса УЗ в соответствии с шаблоном); - Передать параметр
autoCreateOrganizationalUnit=true
в строку подключения коннектора. Учетная запись пользователя будет помещена в необходимый OU организационной структуры AD.
Перевод пользователя
При обновлении OU в свойствах ресурса УЗ пользователя автоматически переместится в новую папку организационной структуры AD.
Перемещение УЗ пользователя в OU при увольнении
Для перемещения УЗ пользователя в другое OU при увольнении необходимо:
- Создать роль для пользователя, которая будет отзываться только при увольнении сотрудника;
- Настроить кадровую политику в части сценария выполнения увольнения: определить и записать процедуру переноса УЗ пользователей в OU, выделенную для УЗ уволенных сотрудников, при удалении роли в ресурсе.
Учетная запись пользователя будет помещена в OU для уволенных сотрудников организационной структуры AD.
6.4. Настройка времени работы пользователей
Атрибут УЗ logonHours
в каталоге Active Directory позволяет ограничить время, в которое пользователь может залогиниться в операционную систему. Атрибут хранит в двоичном виде информацию о рабочих часах пользователя в каждый из дней недели. Подробнее об особенностях атрибута см. здесь.
Использование logonHours
как свойства
Для ограничения времени работы пользователя с помощью атрибута logonHours
, используемого как свойство ресурса, необходимо:
- создать на стороне IDM роль для пользователя;
- добавить свойство
logonHours
в ресурсе роли или свойствах ресурса; - в значениях свойства прописать последовательность из 21 байта в десятичном формате, устанавливающих недельный график работы пользователя.
Пример записи значения logonHours
:
[240|255|031|240|255|031|240|255|031|240|255|031|240|255|031|240|255|031|240|255|031]
При назначении роли пользователю будет сформирован соответствующий рабочий график.
Использование logonHours
как права
Для ограничения времени работы пользователя с помощью атрибута logonHours
, используемого как право, необходимо:
- создать на стороне IDM роль для пользователя;
- в файле конфигурации в параметре
logonHoursMap
добавить схему отображения прав (графиков работы пользователя) на значения атрибута, записанные в шестнадцатеричном формате.
logonHours
и как свойство и как право недопустимо: либо logonHours
добавлен как свойство в профиле ресурса, либо в файле конфигурации настроен параметр logonHoursMap
, реализующий отображение прав на значения свойства7. Конфигурация коннектора
Конфигурирование коннектора выполняется посредством создания (или копирования из дистрибутива поставки коннектора) и настройки конфигурационного файла ресурса MS Active Directory и передачи параметров подключения интерфейса IDM к службе MS Active Directory в строке подключения.
7.1. Файл конфигурации ресурса
Конфигурационной файл ресурса представляет собой расположенный локально файл в формате .json (ad-connector.config.json
), хранящий конфигурацию ресурса.
Пример файла конфигурации
{ "userName": "tb//{0}", "logonHoursMap": { "24/7": "", "Только будние": "00 00 E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 1F 00 00 00", "С 9:00 до 19:00, будние": "00 00 00 C0 FF 00 C0 FF 00 C0 FF 00 C0 FF 00 C0 FF 00 00 00 00" }, "domains": [ { "server": "145.140.10.120", "keyPrefix": "TB", "domainName": "dc=tb,dc=ru", "port": 390, "usersContainers": [ "OU=Organization Structure", "OU=Дополнительный офис,OU=Organization Structure1" ], "removeContainer": "OU=2,OU=Organization Structure,DC=tb,DC=ru", "controller": "tb.dom.ru", "controllers": [ "tb.ru", "tb.dom.ru" ], "removeAccountBehavior": "Remove", "removeAllGroups": false, "loadPrimaryGroup": true } ], "attributes": [ { "name": "ExtrAttr1", "description": "Дополнительный атрибут 1", "required": false }, { "name": "ExtrAttr2", "description": "Дополнительный атрибут 2", "required": false } ] }
Параметры конфигурации ресурса
userName | Формат имени пользователя, который необходимо использовать при подключении к источнику данных ресурса Последовательность символов Т.е. если логин УЗ – admin, в параметр |
| Набор пар соответствий имен прав, определяющих часы доступа в IDM, и возможных значений атрибута Пример заполнения параметра:
|
attributesOnDismissal | Набор пар атрибутов (см. здесь) и их значений, которые устанавливаются в УЗ при удалении пользователя |
domains | Массив доменов в составе ресурса. Каждый домен определяется через параметры, описанные ниже |
attributes | Массив дополнительных атрибутов доменов. Каждый дополнительный атрибут определяется через следующие параметры:
Описание и признак обязательности стандартного атрибута УЗ (см. здесь) может быть переопределено, если в параметре |
Параметры домена в конфигурации ресурса
server | IP-адрес сервера, на котором расположен домен |
keyPrefix | Префикс домена в составе учетной записи пользователя |
domainName | Имя домена AD в формате различимого имени |
port | Порт сервера, на котором расположен домен. Значение по умолчанию – 389 |
usersContainers | Массив OU в рамках домена, по которым будут отрабатываться запросы |
removeContainer | Путь к расположению УЗ уволенных сотрудников |
controller | Путь к глобальному каталогу домена |
controllers | Массив постфиксов, по которым будут отрабатываться запросы |
removeAccountBehavior | Поведение при удалении УЗ пользователя Допустимые значения: MoveToDeleted (перемещение в RemoveContainer , параметр также должен быть указан в файле конфигурации ресурса); Remove (удаление из домена). По умолчанию – MoveToDeleted |
removeAllGroups | Исключение пользователя из всех групп при удалении УЗ пользователя Допустимые значения: true или false. По умолчанию установлено значение true |
loadPrimaryGroup | Поиск групп с учетом основной группы (Primary Group) Допустимые значения: true или false . По умолчанию установлено значение true |
3.2 Строка подключения
Формат строки подключения
user=<Техническая учетная запись>;password=<пароль>;resourceid=<ИД ресурса>;path=<путь к файлу конфигурации ресурса>;
Примеры строки подключения
user=ap.com\administrator;password=********;resourceid=adtb;path=C:\connectors\ad-connector.config.json;
ser=ap.com\administrator;password=********;;resourceid=adtb;path=C:\connectors\ad-connector.config.json;AutoCreateOrganizationalUnit=false;UnlockUserAccount=false;UseDomainPrefix=true;GetNamesOfAllUsers=false;CheckExistenceUserWhenCreating=true;CheckExistenceContactWhenCreating=true;MustResetPasswordLogon=true;SetUserPrincipalNameIdmOnly=true;FillOuWithDomain=true;EnableSsl=true;SamAccountNameWithDomain=true;
Обязательные параметры
user —
логин технической УЗ;
password —
пароль технической УЗ;
resourceid — идентификатор ресурса;
path —
путь к конфигурационному файлу ресурса.
Опциональные параметры
Наименование параметра | Описание |
---|---|
| Автоматически создавать Допустимые значения: t Пример записи параметра: |
UnlockUserAccount | Обнулять атрибут Допустимые значения: t Пример записи параметра: |
| Использовать префикс домена при обработке пользователей. Целесообразно включать эту опцию при мультидоменной структуре ресурса – будет использоваться значение параметра Допустимые значения: t Пример записи параметра: |
GetNamesOfAllUsers | При получении активных пользователей возвращать все имена пользователей (не только активных) Допустимые значения: t Пример записи параметра: |
CheckExistenceUserWhenCreating | Проверять существование пользователя перед созданием Допустимые значения: t Пример записи параметра: |
MustResetPasswordLogon | Пользователь должен сбросить пароль после назначения пароля Допустимые значения: t Пример записи параметра: |
FillOuWithDomain | Выводить Допустимые значения: t Пример записи параметра: |
EnableSsl | Использовать ssl Допустимые значения: t Пример записи параметра: |
RecreateAccountIfDifferentDomain | Пересоздавать УЗ в AD, если при переименовании УЗ в IDM был указан разный домен Допустимые значения: t Пример записи параметра: |
ProtectCreatedOu | Установить флаг " Допустимые значения: t Пример записи параметра: |
CreatePersonalCatalog | Создать персональную папку для пользователя в каталоге Допустимые значения: t Пример записи параметра: |
8. Схема атрибутов
Перечисленные ниже атрибуты УЗ могут использоваться в профилях ресурсов для настройки их свойств в УЗ (см. 5.1.4. Настройка интеграции с целевыми системами).
Стандартные атрибуты УЗ
assistant | DN помощника по администрированию пользователя |
businessCategory | Вид бизнеса, которым занимается организация пользователя |
c | Код страны из двух букв. ISO 3166 |
carLicense | Автомобильные номера или номерные знаки |
comment | Комментарий |
company | Организация |
department | Подразделение |
departmentNumber | Отдел в организации, к которому относится пользователь |
description | Общие сведения об учетной записи |
destinationIndicator | Атрибут может использоваться для отправки телеграмм |
displayName | Предпочтительное имя пользователя, которое будет использоваться при отображении записей |
distinguishedName | Полное имя, которое однозначно идентифицирует пользователя в каталоге |
domainUserName | Имя пользователя с префиксом домена |
employeeID | Идентификатор сотрудника |
employeeNumber | Числовой идентификатор (табельный номер) сотрудника в организации |
employeeType | Тип занятости (например, сотрудник или подрядчик) |
facsimileTelephoneNumber | Первичный номер факса пользователя |
givenName | Имя пользователя |
homeDirectory | Домашняя папка пользователя |
homeDrive | Домашний диск пользователя |
homePhone | Домашний номер телефона пользователя |
homePostalAddress | Домашний адрес пользователя |
initials | Инициалы частей полного имени пользователя |
internationaliSDNNumber | Определяет международный номер ISDN, связанный с объектом |
l | Название местности, такой как город, округ или другой географический регион |
labeledURI | Универсальный индикатор ресурса (URI) и необязательная метка, связанная с пользователем |
mail | Один или несколько адресов электронной почты |
manager | Имя каталога руководителя сотрудника в организации |
mobile | Номер мобильного телефона пользователя |
name | Полное имя (отображаемое имя сотрудника) |
o | Название организации |
organizationUnit | Название контейнера подразделения (OrganizationUnit ), где находится пользователь |
ou | Название организационного подразделения (OrganizationUnit ) |
pager | Номер пейджера пользователя |
physicalDeliveryOfficeName | Офис, в который отправляется доставка |
postalAddress | Почтовый адрес офиса (местонахождения пользователя) |
postalCode | Почтовый индекс офиса |
postOfficeBox | Номер абонентского ящика для этого объекта |
preferredDeliveryMethod | Предпочтительный способ доставки |
preferredLanguage | Предпочтительный письменный или разговорный язык пользователя |
proxyAddresses | Почтовый адрес, по которому объект получателя Microsoft Exchange Server распознается во внешней почтовой системе. Может иметь несколько значений через разделитель | |
registeredAddress | Почтовый адрес, подходящий для приема телеграмм или ускоренных документов (где необходимо, чтобы получатель принял доставку) |
roomNumber | Офис пользователя или номер комнаты |
secretary | Имя каталога помощника администратора пользователя |
seeAlso | Ссылка на другую УЗ |
showInAddressesBook | Атрибут используется для указания, в каких адресных книгах MAPI будет отображаться объект. Может иметь несколько значений через разделитель | |
st | Название штата или провинции |
street | Уличная часть почтового адреса |
streetAddress | Почтовый адрес |
telephoneNumber | Первичный номер телефона |
teletexTerminalIdentifier | Идентификатор телексного терминала, связанного с объектом |
telexNumber | Номер телекса в международной нотации |
title | Должность пользователя |
userPrincipalName | Имя пользователя и домена в формате email. Значение должно быть уникальным |
userWorkstations | Cписок рабочих станций пользователя |
x121Address | X.121 адрес для объекта |
Атрибуты для управления поведением коннектора
accountIsLocked | Автоматическая блокировка пользователя Допустимые значения: |
changePasswordAtNextLogon | Пользователь должен сменить пароль при следующем входе Свойство только для записи. Допустимые значения: 0 или true |
userDontChangePassword | Пользователь не имеет права менять пароль Допустимые значения: |
passwordNeverExpires | Пароль никогда не истекает Допустимые значения: |
smartCardRequired | Для входа сотрудника требуется смарт-карта Допустимые значения: |
ouDescription | Значения атрибута description в AD для создаваемых OU. Следует указать полный путь до OU, разделитель - ' Формат записи: Атрибут будет присвоен только при создании нового OU и не меняет значения уже существующих OU |
removeAllGroups | Удаление пользователя из всех групп, если значение Допустимые значения: true или false |
9. Методы API коннектора
Методы API коннектора реализуют функциональные возможности коннектора.
Метод | Параметры | Описание |
---|---|---|
CreateSession |
Пример значения параметра:
| Установка соединения/проверка возможности соединения с управляемой системой |
GetAllRights | Получение списка групп доступа пользователей в управляемой системе. Наименование каждой группы пользователя передается в формате DN | |
SearchRights |
| Поиск группы доступа из интерфейса IDM по имени |
GetAllProperties | Возвращение списка значимых атрибутов пользователей Метод предоставляет атрибуты УЗ целевой системы для связи со свойствами УЗ в IDM посредством настройки шаблона учетных записей в профиле ресурса (подробнее см. здесь) | |
GetUser |
| Получение имени УЗ и статус пользователя. Если УЗ не существует, то метод возвращает null. На результат выполнения метода влияет включение в файле конфигурации опции |
GetUsersList |
| Пакетная передача нескольких имён учётных записей. Если не найдена ни одна запись запрос возвращает пустой список |
CreateUser |
| Создание учетной записи пользователя в системе. При отсутствии OU пользователь по умолчанию создается в OU users |
AddUserRights |
| Добавление права пользователю |
DropUserRights |
| Изъятие прав у пользователя |
LockUser |
| Блокировка учетной записи пользователя – выключение учетной записи пользователя (Account is enabled) |
UnlockUser |
| Разблокировка учетной записи пользователя – включение учетной записи пользователя (Account is disabled). В случае присвоения атрибуту unlockUserAccount значения true выполняется разблокировка и отключение УЗ пользователя |
ChangeUserPassword |
| Изменение пароля пользователя |
ResetUserPassword |
| Сброс пароля пользователя |
GetActiveUsers | Получение всех активных (включенных и незаблокированных) УЗ в ресурсе, если unlockUserAccount=true | |
GetPropertyOption |
| Получение информации о значениях свойства в ресурсе |
GetRightsById |
| Получение полной информации о правах в ресурсе |
GetUserProperties |
| Получение свойств УЗ |
GetUserRights |
| Получение прав УЗ |
SetUserPassword |
| Задание пароля УЗ |
SetUserProperties |
| Установка значений свойств в существующей УЗ |
ObjectExists |
| Проверка существования объектного права в ресурсе |
GetObjectRights |
| Получение возможных прав объекта с указанным URI |
AddUserObjectRight |
| Добавление пользователю права на объект с указанным URI |
DropUserObjectRight |
| Удаление у пользователя права на объект с указанным URI |
UserHasObjectRight |
| Проверка наличия права на объект у УЗ пользователя |
GetLastLogon |
| Получение времени c последнего входа под указанной УЗ |
IHasGeneratedProperties.GetGeneratedProperties | Получение полного списка атрибутов УЗ целевой системы со значениями. Список атрибутов включает в том числе:
Этими атрибутами IDM не управляет, но может использовать для связи одного ресурса с другим Метод предоставляет атрибуты УЗ целевой системы для управления зависимостями свойств УЗ одного профиля ресурса от другого (подробнее см. здесь) |
10. Проверка рабочего состояния подключения
1. Проверка подключения к AD
Для проверки установки соединения c Active Directory следует на стороне IDM открыть профиль ресурса ресурса, перейти на вкладку "Шаблон учетных записей" и раскрыть выпадающий список выбора свойств для добавления в свойства ресурса. Если список пустой, то соединение с Active Directory отсутствует. Если в списке для выбора свойств ресурса доступны все атрибуты, соответствующие подключаемой среде Active Directory, то подключение через коннектор выполнено корректно.
2. Проверка сетевого соединения
Для проверки сетевого соединения следует подключиться к Active Directory при помощи telnet. При корректном подключении будет выполнен переход в среду Active Directory.
3. Проверка обработки запросов
Чтобы убедиться в правильной обработке запросов коннектором, следует открыть лог-файл, расположенный на сервере Avanpost IDM в папке коннектора, и проверить его на отсутствие ошибок.