Организационная структура¶
Сотрудники¶
Для того, чтобы сотрудник мог войти в систему, должно выполняться следующее условие: для сотрудника должна быть заведена карточка в справочнике сотрудников и в ней должен быть указан его аккаунт (если тип входа в систему - Пользователь Windows
или Пользователь LDAP
) или логин/пароль (если тип входа в систему - Пользователь TESSA
).
Карточка сотрудника является одним из типов ролей. Все доступные типы ролей описаны в разделе Роли.
Просмотр справочника¶
Посмотреть список сотрудников можно на рабочем месте Администратор в представлении Сотрудники:
В представлении доступен просмотр по подмножествам подразделений или статических ролей.
Создание карточки сотрудника¶
Для того чтобы завести нового пользователя в системе и тем самым дать ему доступ к приложениям, рабочим местам и представлениям, необходимо создать карточку нового сотрудника с помощью меню системы Создать карточку -> Роли -> Сотрудник. Также создать новую карточку сотрудника можно с помощью кнопки + Создать в представлении Сотрудники на рабочем месте Администратор:
Note
В системе можно настроить доступ на создание карточек сотрудников и подразделений для обычных пользователей, не являющихся администраторами системы (подробней см. Выдача прав на создание и редактирование карточек сотрудников/подразделений).
В карточке сотрудника необходимо указать: Фамилию, Имя и Отчество. Отображаемое имя и Полное имя можно не заполнять, тогда система сгенерирует их самостоятельно в формате Фамилия И. О. и Фамилия Имя Отчество соответственно. Далее выбрать Тип входа в систему и, в зависимости от выбранного типа, заполнить данные для доступа в систему:
Пользователь Windows
- указать доменный аккаунт в форматедомен\имя пользователя
.Пользователь LDAP
- указать аккаунт.-
Пользователь TESSA
- указать логин, пароль и повтор пароля.Note
Алгоритм формирования хэша для хранения пароля работает следующим образом:
- При каждом указании нового пароля (после того, как пользователь или администратор устанавливает пароль) генерируется случайные 256 бит “соли” (это нужно, чтобы если у пользователей одинаковые пароли, в БД хеши паролей отличались). В БД он в поле
PersonalRoles.PasswordKey
. - Далее по алгоритму
HMACSHA-256
для пароля совместно с солью формируется 256-битный хеш, который сохраняется в БД в полеPersonalRoles.PasswordHash
. - При логине для указанного пользователем пароля сервер, используя соль
PasswordKey
, формирует хеш и сравнивает его сPasswordHash
. Если хеш совпадает, то пароль правильный. - Когда пароль неправильный, система говорит об этом пользователю в виде
логин или пароль неправильный
, чтобы нельзя было подобрать “живой” логин, не зная пароль.
- При каждом указании нового пароля (после того, как пользователь или администратор устанавливает пароль) генерируется случайные 256 бит “соли” (это нужно, чтобы если у пользователей одинаковые пароли, в БД хеши паролей отличались). В БД он в поле
-
Вход запрещён - вход для данного сотрудника будет запрещён. Данный тип указывается, если это служебная учетная запись (как, например, System) или при увольнении сотрудника.
Note
Дополнительно в системе может быть разработан свой тип входа в систему (подробней в руководстве разработчика, Создание типа входа пользователей).
Также необходимо выбрать Уровень доступа - Обычный
или Администратор
(подробней об отличии уровней доступа см. в разделе Механизмы разграничения доступа).
Дополнительно в карточке сотрудника можно указать:
- E-mail - электронная почта. Сотрудник будет получать почтовые уведомления, если поле заполнено.
- В по умолчанию свернутом блоке Дополнительная информация:
- Язык - язык локализации в интерфейсе системы и в отправляемых на почту уведомлениях.
- Форматирование дат и чисел - параметры форматирования даты, времени, чисел и валют, используемые в интерфейсе системы и в отправляемых на почту уведомлениях. Подробнее в разделе Форматирование дат и чисел.
На вкладке Роли и синхронизация блок Синхронизация с Active Directory / LDAP используется для отображения информации по синхронизации, а также запуска ручной синхронизации (более подробно см. Синхронизация с Active Directory / LDAP).
Поле Внешний ID используется при импорте сотрудников с помощью утилиты tadmin. Оно необходимо для связывания данных с внешней системой и проверки уникальности, заполняется только в случае, если данные сотрудника синхронизируются с какой-либо внешней системой.
После того, как все необходимые данные сотрудника заполнены, можно нажать на кнопку сохранения карточки , которая доступна на тулбаре и в системном меню (сохранение доступно сочетанием горячих клавиш Ctrl+S). Также в меню системы присутствует кнопка Сохранить, закрыть и создать или Ctrl+Shift+S, которая сохраняет текущую карточку, закрывает её и создаёт еще одну карточку (подробней о возможных способах создания карточек см. в Руководстве Пользователя).
В течение 30 минут (после перерасчёта ролей плагином системы) новый пользователь получит доступ к рабочему месту и представлениям, которые по умолчанию должны быть доступны всем сотрудникам. Пересчет роли можно выполнить самостоятельно, открыв в представлении Администратор -> Роли -> Динамическая роль, роль Все сотрудники и нажав на кнопку пересчета (подробней см. Пересчёт ролей).
Note
Если через 30 минут пользователь все еще не может запустить клиент, то это означает, что права на представления еще не пересчитались (они пересчитываются отдельно раз в час). В этом случае можно просто подождать, либо выполнить команду tadmin InvalidateCache
, либо перезапустить пул приложений.
Загрузить большое количество Сотрудников в TESSA можно с помощью синхронизации с Active Directory / LDAP или утилиты tadmin.
Настройки сотрудника¶
В каждой карточке сотрудника есть вкладка Мои настройки и несколько вкладок правее. Все настройки, указанные на этих вкладках, каждый пользователь может изменять для себя, открыв меню пользователя в правом верхнем углу и выбрав пункт Мои настройки.
У Администратора есть права для изменения настроек любого пользователя. Настройки поделены на несколько вкладок:
Описание вкладок Мои настройки, Уведомления и Персонализация представлено в соответствующем разделе руководства пользователя - Мои настройки.
Для Администратора системы, в отличии от обычного пользователя, на вкладке Мои настройки дополнительно доступна кнопка Сохранить и применить настройки для сотрудников - кнопка для копирования настроек, указанных для текущего сотрудника, в карточки других сотрудников. При нажатии на кнопку откроется окно, где можно указать сотрудников, для кого необходимо применить данные настройки. Можно указать любые роли (кроме контекстных), в том числе роль Все сотрудники
, если настройки надо распространить на всех сотрудников.
Администратор может изменить собственные настройки как в своей карточке сотрудника, так и с помощью вызова окна настроек из меню пользователя - Настройки -> Мои настройки. При этом с помощью пункта меню пользователя Настройки -> Настройки новых пользователей открывается диалог настроек, аналогичный диалогу Мои настройки, но применяемый для всех новых сотрудников. Новыми считаются любые сотрудники, создаваемые после установки настроек.
Ограничения входа¶
В карточке сотрудника есть блок Ограничения входа, который по умолчанию свёрнут. Чтобы развернуть его, необходимо нажать на название блока:
В блоке хранится информация о блокировке пользователя, а также дата последней смены пароля:
-
Вход заблокирован - при выставленном флаге пользователь не сможет зайти в систему.
Данный флаг может выставиться автоматически для сотрудника с типом входа
Пользователь TESSA
, если количество неудачных входов пользователя превышает количество, указанное в соответствующих настройках безопасности в карточке настроек сервера.Note
Данный флаг можно выставлять вручную или с помощью расширений и скриптов (например, при завершении процесса увольнения сотрудника).
-
Дата и время окончания блокировки - дата и время, когда флаг Вход заблокирован будет снят автоматически. Данное поле заполняется и очищается автоматически при следующих условиях:
- Выставляется автоматически при установке временной блокировки, которая возможна для сотрудников с типом входа
Пользователь TESSA
, если количество неудачных входов пользователя превышает количество неудачных входов до временной блокировки, указанное в настройках безопасности в карточке настроек сервера. - По истечении указанной даты и времени, поле очищается (и снимается флаг Вход запрещён) сервисом
chronos
с периодичностью, указанной в параметреRolesLockTimeout
конфигурационного файлаChronos\app.json
(по умолчанию - каждые 5 минут). - Если количество неудачных входов пользователя превышает количество неудачных входов до постоянной блокировки, указанное в настройках безопасности в карточке настроек сервера, то данное поле очищается, при этом флаг Вход заблокирован не снимается и блокировка считается постоянной.
- Выставляется автоматически при установке временной блокировки, которая возможна для сотрудников с типом входа
-
Дата и время последнего изменения пароля - дата и время, когда последний раз для данного сотрудника была выполнена смена пароля: пользователем самостоятельно с помощью диалога Мои настройки (подробней см. Руководство Пользователя) или администратором системы в карточке данного сотрудника. Указанные дата и время используются для корректного подсчета срока окончания действия пароля в случае, если в настройках безопасности в карточке настроек сервера выставлено ограничение срока действия пароля.
За указанное в настройках безопасности количество дней до окончания срока действия пароля, пользователь ежедневно будет получать на электронную почту уведомление о необходимости смены пароля. Если срок действия пароля истечёт, то пользователь уже не сможет зайти в систему, т.к. в карточке сотрудника будет выставлена постоянная блокировка (т.е. флаг Вход заблокирован выставится, а поле Дата и время окончания блокировки останется пустым), которую снять сможет только администратор системы.
Типы аутентификации пользователей¶
Система обеспечивает прозрачную интеграцию с доменом Active Directory. При запуске клиентского приложения пользователь, без ввода дополнительных параметров, аутентифицируется системой, как соответствующий пользователь домена и применяются соответствующие настройки профиля в системе TESSA.
Также в TESSA доступна аутентификация с помощью логина/пароля TESSA (указанных в справочнике сотрудников) или же имени учетной записи LDAP.
Note
Дополнительно в системе может быть разработан свой тип входа в систему (подробней в руководстве разработчика, Создание типа входа пользователей).
Администратор системы в карточке пользователя в справочнике сотрудников указывает тип входа в систему (Пользователь TESSA
/Пользователь Windows
/Пользователь LDAP
), а также учетные данные (логин/пароль пользователя TESSA, доменная учетная запись или имя учетной записи LDAP), чтобы система могла идентифицировать пользователя (см Создание карточки сотрудника). Для безопасности хранения паролей сотрудников с типом входа Пользователь TESSA
, в системе сохраняется хеш пароля с использованием случайной соли (hash salt
) на каждый устанавливаемый пароль.
Также возможен ручной ввод логина/пароля: учетной записи домена или локальной (на сервере приложений) учетной записи, логина/пароля пользователя TESSA или же имя учетной записи LDAP.
Механизм работы аутентификации пользователей в платформе TESSA¶
В платформе TESSA для серверов Windows поддерживается использование встроенной аутентификации Windows с поддержкой SSO (Single Sign-On), используя протокол Kerberos. SSO позволяет вводить данные для входа только один раз при входе. В дальнейшем используется SPNEGO токен, передаваемый на сервер, в котором пользователь хочет аутентифицироваться. Более подробно написано в разделе Настройка Windows-аутентификации.
Аутентификация с использованием протокола Kerberos также доступна на серверах Linux и на серверах Windows (без настройки встроенной аутентификации Windows). Более подробно написано в разделе Настройка серверной части, используя модуль Kerberos аутентификации в платформе TESSA (работает на Windows и Linux платформах).
Дополнительно поддерживаются механизмы аутентификации:
Также поддерживается двухфакторная аутентификация (2FA), которая запрашивает у пользователя дополнительный код (сгенерированный приложением-аутентификатором или отправленным по электронной почте). За описанием необходимо обратиться к разделу Запуск TESSA руководства пользователя, а для разработки собственных типов 2FA (например, для отправки кода по SMS) - к разделу Создание типа двухфакторной аутентификации руководства разработчика.
Important
В платформе существует консольная административная утилита tadmin и desktop-клиенты (TessaClient
, TessaAdmin
и менеджер приложений Tessa Applications
). Для них перечисленные механизмы аутентификации не поддерживаются.
Приложения desktop-клиента требуется использовать только для работы инженеров, разработчиков и администраторов. Функциональность приложений ограничена. Не используйте их для работы обычных пользователей. В будущих релизах приложения будут удалены в пользу web-клиента.
Без явного указания логина и пароля¶
- Пользователь открывает браузер и переходит по ссылке web-клиента.
- Браузер отправляет cookies сервису, если был произведен вход в систему ранее.
- Если cookies не были переданы или истекли, то происходит перенаправление на страницу логина по адресу https://{base}/login с запоминанием исходной страницы.
- Если включен автоматический вход (в файле
app.json
настройкаWinAutoLogin = true
), то браузер отправляет запрос на аутентификацию сервису TESSA, иначе ждет реакции от пользователя. - Сервис TESSA отвечает кодом 401 и заголовком
WWW-Authenticate
. - Браузер запрашивает у KDC (Центр рассылки ключей) сервера сеансовый ключ.
- Сервер KDC отправляет клиенту сеансовый ключ.
- Браузер отправляет сеансовый ключ сервису TESSA.
- Сервис проверяет сеансовый ключ и извлекает из него учетные данные пользователя. Проверяется наличие в справочнике сотрудников. При успешной аутентификации отправляется токен на клиент. При неудачной - сообщение об ошибке.
С явным указанием логина и пароля¶
- Клиент отправляет логин и пароль сервису TESSA по адресу https://{base}/login .
- Сервис TESSA проверяет наличие логина в справочнике сотрудников (таблица
PersonalRoles
, полеLogin
). Если пользователь не найден, то возвращается ошибка. -
Сервис TESSA получает тип учетной записи из карточки сотрудника.
-
Если учетная запись TESSA, то аутентификация выполняется средствами TESSA:
- Логин и пароль передаются сервису TESSA.
- Сервис TESSA получает хеш HMACSHA256 полученного пароля и сравнивает с хешом пользователя из базы.
- Если хеши совпадают, то выполняется аутентификация, в противном случае выдается ошибка
Неверный логин или пароль
.
-
Если учетная запись LDAP, то аутентификация выполняется, используя настройки LDAP из файла
app.json
. -
Если учетная запись Windows, то производятся следующие действия:
- Если включена LDAP аутентификация (в файле
app.json
), то выполняется LDAP аутентификация, используя данные для входа из файлаapp.json
. - В случае ошибки LDAP аутентификации (или если она не включена) происходит попытка имперсонализации (только для Windows систем). В случае ошибки имперсонализации, или если используется Linux система, то пользователю возвращается ошибка и окно ввода логина и пароля.
- Если включена LDAP аутентификация (в файле
-
Подразделения¶
Подразделения в системе используются для настройки организационной структуры, а также для настройки прав доступа, рассылки заданий и уведомлений.
Карточка подразделения является одним из типов ролей. Все доступные типы ролей описаны в разделе Роли.
Посмотреть список подразделений можно на рабочем месте Администратор в представлении Подразделения:
При выборе подразделения в нижней части представления отображается список сотрудников выбранного подразделения.
Создать новую карточку подразделения можно нажав на кнопку + Создать, расположенную на панели инструментов представления Подразделения или с помощью меню системы Создать карточку -> Роли -> Подразделение.
Note
В системе можно настроить доступ на создание карточек сотрудников и подразделений для обычных пользователей, не являющихся администраторами системы (подробней см. Выдача прав на создание и редактирование карточек сотрудников/подразделений).
Карточка подразделения содержит следующие поля:
Блок Общая информация содержит в себе основную информацию по подразделению:
- Название подразделения - обязательно для заполнения, название данного подразделения. Название должно быть уникально в пределах одного уровня организационной структуры.
-
Родительское подразделение - ссылка на родительское подразделение. Указывается в случае, если текущее подразделение является дочерним по отношению к какому-либо другому подразделению. С помощью данного поля создается древовидная организационная структура.
Note
В типовой поставке TESSA есть агрегатор метаролей, который по каждому подразделению, имеющему дочерние подразделения с сотрудниками, создает метароль, в которую входят все сотрудники текущего подразделения и все сотрудники всех дочерних подразделений. Данные метароли также можно использовать для настройки прав доступа, а также рассылки заданий и уведомлений. Подробней о всех типах ролей в TESSA см. в разделе Роли.
-
Глава подразделения - руководитель текущего подразделения.
- Внешний ID - используется при импорте подразделений с помощью утилиты tadmin. Поле необходимо для связывания данных с внешней системой и проверки уникальности, заполняется только в случае, если данные подразделения синхронизируются с какой-либо внешней системой.
- Описание - при необходимости указывается подробное описание подразделения.
- Временная зона - временная зона подразделения. Подробней см. раздел Временные зоны.
- Наследовать временную зону - при установке этого флага сбрасывается указанная временная зона, а после сохранения карточки подразделения - устанавливается такая же, как у родительского подразделения. Если нет родительского подразделения - устанавливается зона
По умолчанию
. - Скрывать при выборе - флаг выставляется в случае ликвидации подразделения. При выставленном флаге данное подразделение не будет отображаться в представлениях и не будет доступно для выбора при настройке правил доступа или настройке маршрутов. Найти все скрытые карточки подразделений можно в представлении Подразделения выполнив поиск по параметру Показать скрытые -
равен да
. - Отключить замещения - флаг, который отвечает за возможность отключения замещения для данного подразделения. Это означает, что в состав подразделения не будут включены заместители сотрудников.
- Календарь - календарь подразделения. Подробней см. раздел Календари.
- Наследовать календарь - при установке этого флага сбрасывается указанный календарь, а после сохранения карточки подразделения - устанавливается такой же, как у родительского подразделения. Если нет родительского подразделения - устанавливается календарь
По умолчанию
.
Блок Синхронизация с Active Directory/LDAP используется для настройки и выполнения ручной синхронизации с Active Directory/LDAP. Подробней см. раздел Синхронизация с Active Directory / LDAP.
Блок Состав роли содержит в себе информацию о сотрудниках и их заместителях, которые входят в состав данного подразделения:
- Сотрудники - сотрудники, входящие в данное подразделение.
- Сотрудники и заместители - недоступно для редактирования, высчитывается автоматически на основании указанных сотрудников и заместителей. При расчёте прав доступа или назначении заданий система использует именно этот состав роли подразделения.
- Заместители - таблица, в которой отображаются заместители, добавленные сотрудникам с помощью вкладки Мои замещения.
- Заместители по типам документов - таблица, в которой отображаются заместители по типам документов. Указанные заместители будут иметь тот же доступ к карточке, заданиям, и получать уведомления как заместители, но только по документам тех типов, по которым настроено замещение.
Загрузить большое количество подразделений в TESSA можно с помощью синхронизации с Active Directory / LDAP или утилиты tadmin.
Статические роли¶
Статические роли в системе используются для настройки прав доступа, рассылки заданий и уведомлений. Все доступные в TESSA типы ролей описаны в разделе Роли.
Note
В системе можно настроить доступ на создание карточек статических ролей для обычных пользователей, не являющихся администраторами системы (подробней см. Выдача прав на создание и редактирование карточек сотрудников/подразделений).
Посмотреть список всех статических ролей можно в представлении Роли -> По типу -> Статическая роль на рабочем месте администратора:
При выборе роли в нижней части представления отображается список сотрудников выбранной роли.
Создать новую карточку статической роли можно нажав на кнопку + Создать, расположенную на панели инструментов представления или с помощью меню системы Создать карточку -> Роли -> Статическая роль.
Карточка статической роли содержит следующие поля:
Блок Общая информация содержит в себе основную информацию по статической роли:
- Имя роли - обязательно для заполнения, название данной роли.
-
Родительская роль - ссылка на родительскую роль. Указывается в случае, если текущая роль является дочерней по отношению к какой-либо другой статической роли. С помощью данного поля создается древовидная структура статических ролей.
Note
Древовидная структура настраивается только для удобства и не влияет на работу системы (например, назначив права на родительскую роль, сотрудники дочерней роли не получат данные права).
-
Описание - при необходимости указывается подробное описание роли.
- Временная зона - временная зона роли. Подробней см. раздел Временные зоны.
- Наследовать временную зону - при установке этого флага сбрасывается указанная временная зона, а после сохранения карточки статической роли - устанавливается такая же, как у родительской. Если нет родительской роли - устанавливается зона
По умолчанию
. - Скрывать при выборе - флаг выставляется в случае ликвидации роли. При выставленном флаге данная роль не будет отображаться в представлениях и не будет доступна для выбора при настройке правил доступа или настройке маршрутов. Найти все скрытые карточки статических ролей можно в представлении Роли, выполнив поиск по параметру Показать скрытые -
равен да
. - Отключить замещения - флаг, который отвечает за возможность отключения замещения для данной роли. Это означает, что в состав роли не будут включены заместители сотрудников.
- Календарь - календарь роли. Подробней см. раздел Календари.
- Наследовать календарь - при установке этого флага сбрасывается указанный календарь, а после сохранения карточки роли - устанавливается такой же, как у родительской роли. Если нет родительской роли - устанавливается календарь
По умолчанию
.
Блок Синхронизация с Active Directory/LDAP используется для настройки и выполнения ручной синхронизации с Active Directory/LDAP. Подробней см. раздел Синхронизация с Active Directory / LDAP.
Блок Состав роли содержит в себе информацию о сотрудниках и их заместителях, которые входят в состав данной роли:
- Сотрудники - сотрудники, входящие в данную роль.
- Сотрудники и заместители - недоступно для редактирования, высчитывается автоматически на основании указанных сотрудников и заместителей. При расчёте прав доступа или назначении заданий система использует именно этот состав роли.
- Заместители - таблица, в которой отображаются заместители, добавленные сотрудникам с помощью вкладки Мои замещения.
Загрузить большое количество статических ролей в TESSA можно с помощью синхронизации с Active Directory / LDAP.
Изменение фамилии, увольнение сотрудника/ликвидация подразделения и роли¶
В случае увольнения сотрудников или ликвидации подразделений и ролей, необходимо найти и открыть нужную карточку роли и выставить в ней флаг Скрывать при выборе. Данная роль станет недоступна для выбора в карточках системы.
Если увольняется сотрудник, то, помимо скрытия карточки, необходимо выполнить следующие действия:
- Очистить в карточке сотрудника все статические роли и подразделения - это необходимо, чтобы при отправке каких-то документов на ознакомление на данные роли и подразделения текущий сотрудник не попал в рассылку и не отображался в списке ознакомителей.
- Запретить вход сотруднику в систему - выставить тип входа
Вход запрещён
(тогда очистится логин) или выставить флаг Вход заблокирован в блоке полей Ограничения входа. В обоих случаях пользователь не сможет зайти в систему, однако флаг Вход заблокирован удобно использовать для временных блокировок. - Назначить сотруднику заместителей - в случае, если есть необходимость переназначить все незавершенные задания данного сотрудника на других сотрудников.
Чтобы найти скрытые карточки, необходимо в нужном представлении (Сотрудники, Подразделения, Роли) выполнить поиск по параметру Показать скрытые и выставить равен да
При смене фамилии достаточно найти карточку нужного сотрудника и указать в ней новую фамилию (имя, отчество), при этом во всех старых карточках документов, где указан данный сотрудник, останется старая фамилия, а в новых карточках и во всех справочниках будет отображаться уже новая. При поиске карточек по сотруднику (если это поиск по ссылке) будут находиться все карточки данного сотрудника как со старой, так и с новой фамилией.
Warning
При увольнении сотрудника не надо пытаться удалить его карточку, а при смене фамилии - не надо создавать новую карточку сотрудника.
Выдача прав на создание и редактирование карточек сотрудников/подразделений¶
Обычным пользователям, не имеющим административного доступа, можно выдать права на создание и редактирование карточек сотрудников. При этом будут следующие ограничения:
- Пользователь не может создавать сотрудников с административным доступом;
- Пользователь не может редактировать карточки сотрудников с административным доступом.
Для назначения доступа на создание/редактирование карточек сотрудников необходимо тип карточки Сотрудник добавить в настройки типового решения (Меню системы -> Настройки -> Типовое решение -> добавить строку в таблицу Типы карточек).
После того, как тип карточки Сотрудник добавлен в типовое решение, для него начинают работать типовые правила доступа. Т.е. никто, даже администратор, не сможет создавать/редактировать сотрудников, пока не будут настроены соответствующие правила доступа.
Для корректной работы системы первым делом необходимо создать правило доступа на чтение карточек сотрудников всем сотрудникам:
Далее необходимо создать правило доступа для администраторов, аналогично правилу на изображении выше с дополнительно выставленными флагами на создание, редактирование карточки (и, при необходимости, остальные: добавление файлов и т.п.). При этом вместо роли Все сотрудники
указать другие роли/других сотрудников.
И теперь можно создать дополнительные правила для предоставления доступа обычным сотрудникам (ролям) на создание/редактирование карточек сотрудников. При получении прав на редактирование карточек сотрудников, указанные пользователи получат права на все вкладки и поля карточек сотрудников, включая настройку замещений и прочее.
Note
Аналогично можно настроить расширенные правила доступа для предоставления прав на редактирование отдельных полей в карточках сотрудников без выдачи прав на редактирование всей карточки.
Note
Права на редактирование карточек сотрудников (или полей в карточках сотрудников) можно также разделить с помощью самостоятельно разработанных типов условий.
Important
При добавлении типа карточки Сотрудник в типовое решение для того, чтобы пользователь мог изменять поля Подразделения и Статические роли, типы карточек Подразделение и Статическая роль должны быть также добавлены в типовое решение. Пользователь должен иметь права на редактирование данных типов карточек, а в расширенных настройках прав доступа для типа карточки Сотрудник должны быть выданы права на редактирование секций PersonalRoleDepartmentsVirtual
и PersonalRoleStaticRolesVirtual
соответственно.
Помимо прав на создание/редактирование карточек сотрудников таким же образом можно выдать права на карточки подразделений и статических ролей.
Синхронизация с Active Directory / LDAP¶
Описание модуля¶
Модуль предназначен для синхронизации с Active Directory / LDAP карточек Сотрудников, Подразделений и Статических ролей.
Tip
Модуль входит только в корпоративную лицензию, или приобретается отдельно, если лицензия не корпоративная.
Посмотреть информацию о доступных модулях, включённых в лицензию, можно в приложении TessaAdmin, раздел Информация:
Данный модуль может выполнять:
- Периодическую синхронизацию данных в указанные моменты времени
- Синхронизацию данных по запросу пользователя (вручную)
Модуль синхронизирует:
Синхронизация карточек сотрудников¶
Синхронизируются:
- ФИО
- Логин
- Телефон
- Мобильный телефон
- Домашний телефон
- IP телефон
- Факс
- Должность
Маппинг полей (тип объекта person / user):
Параметр в Active Directory / LDAP |
Параметр в TESSA ([таблица].[поле] ) |
Описание |
---|---|---|
sAMAccountName / uid |
PersonalRoles.Login |
Логин пользователя |
sn |
PersonalRoles.LastName |
Фамилия |
middleName |
PersonalRoles.MiddleName |
Отчество |
givenName |
PersonalRoles.FirstName |
Имя |
cn |
PersonalRoles.FullName |
Полное имя |
facsimileTelephoneNumber |
PersonalRoles.Fax |
Факс |
telephoneNumber |
PersonalRoles.Phone |
Телефон |
homePhone |
PersonalRoles.HomePhone |
Домашний телефон |
mobile |
PersonalRoles.MobilePhone |
Мобильный телефон |
IpPhone |
PersonalRoles.IPPhone |
IP телефон |
title |
PersonalRoles.Position |
Должность |
userAccountControl |
PersonalRoles.LoginTypeID |
Тип входа пользователя (Active Directory/LDAP/Отключен) |
name |
Roles.Name |
Название |
whenChanged / modifyTimestamp |
Roles.AdSyncWhenChanged |
Дата изменения объекта |
distinguishedName |
Roles.AdSyncDistinguishedName |
Уникальное имя объекта |
manager |
нет | Используется для определения руководителя подразделения (см. ниже) |
Фамилия, имя и отчество берутся из указанных выше параметров или на основании параметров cn
, name
, displayName
(если параметры из таблицы пусты).
Синхронизация карточек подразделений¶
Синхронизируются:
- Название подразделения
- Глава подразделения
- Сотрудники, входящие в подразделение
Маппинг полей (тип объекта organizationalUnit):
Параметр в Active Directory / LDAP |
Параметр в TESSA ([таблица].[поле] ) |
Описание |
---|---|---|
нет | DepartmentRoles.HeadUserID |
Руководитель подразделения определяется как руководитель, указанный в поле manager большинства сотрудников. Переопределить это поведение можно, перегрузив метод DefaultAdExtension.GetHeadUser в дефолтном расширении |
description |
Roles.Description |
Описание объекта |
whenChanged / modifyTimestamp |
Roles.AdSyncWhenChanged |
Дата изменения объекта |
distinguishedName |
Roles.AdSyncDistinguishedName |
Уникальное имя объекта |
managedBy |
нет | Не используется. Согласно семантической схеме AD это не руководитель подразделения, а администратор, управляющий OU |
Синхронизация карточек статических ролей¶
Синхронизируются:
- Имя роли
- Описание роли
- Сотрудники, входящие в статическую роль
Маппинг полей (тип объекта group / ipausergroup / posixgroup):
Параметр в Active Directory / LDAP |
Параметр в TESSA ([таблица].[поле] ) |
Описание |
---|---|---|
name |
Roles.Name |
Название |
description |
Roles.Description |
Описание объекта |
whenChanged / modifyTimestamp |
Roles.AdSyncWhenChanged |
Дата изменения объекта |
distinguishedName |
Roles.AdSyncDistinguishedName |
Уникальное имя объекта |
Note
Если в Active Directory / LDAP удален (или заблокирован) сотрудник, удалены подразделение или группа, то после синхронизации в соответствующих карточках TESSA выставится флаг Скрывать при выборе. В карточке Сотрудника, помимо этого, поменяется тип входа на Вход воспрещён
.
Автоматическая синхронизация¶
Для автоматической синхронизации необходимо включить основной плагин AdSyncPlugin
и плагин периодической синхронизации AdSyncRecurrentPlugin
, выставив в соответствующих конфигурационных xml-файлах disabled="false"
. Все конфигурационные файлы плагинов сервиса chronos
хранятся в папке Chronos\Plugins\Tessa\configuration
. Более подробно про плагины см. в разделе Настройка плагинов Chronos
Затем необходимо настроить конфигурационный файл Chronos\app.json
, добавив в раздел "Settings"
строки, указанные ниже.
Для запуска синхронизации должны быть заполнены параметры AdSync.User
и AdSync.Password
. Остальные параметры являются опциональными и заполняются при необходимости.
Список настроек:
Параметр |
Пример значения | Описание |
---|---|---|
AdSync.Server |
“192.168.0.1” | Контроллер домена. В случае, если значение не задано, то система в качестве адреса использует переменную среды USERDOMAIN , либо, если последняя также не назначена, переменную среды HOSTNAME |
AdSync.Port |
389 | Порт контроллера домена. По умолчанию 389 |
AdSync.TimeoutMilliseconds |
0 | Таймаут на подключение к контроллеру домена. По умолчанию 0 - без ограничений |
AdSync.User |
“administrator” | Логин пользователя в домене. Можно передать как domain\administrator |
AdSync.Password |
“Master1234” | Пароль пользователя, используется вместе с ADSync.User |
AdSync.UseSsl |
true | Признак того, что используется защищённое подключение по SSL-протоколу |
AdSync.EnforceTls12 |
true | Признак того, что при использовании SSL будет задействован протокол TLS 1.2 или старше. В противном случае также может использоваться протокол TLS 1.1 . Другие версии SSL запрещены |
AdSync.ConnectionAttemptCount |
10 | Количество попыток соединения с реферальными серверами. По умолчанию 10 |
AdSync.ConnectionAttemptIdle |
10 | Пауза между попытками соединения с реферальными серверами в секундах. По умолчанию 10 |
AdSync.SkipReferral |
false | Отключение поиска по всем реферальным серверам |
AdSync.SkipReferralList |
[“DC=ForestDnsZones,DC=company,DC=com”, “DC=DomainDnsZones,DC=company,DC=com”] | Отключение поиска по списку реферальных серверов |
AdSync.SkipSystemPartitions |
true | Игнорирование системных разделов, таких как ForestDnsZones , DomainDnsZones , Configuration |
AdSync.RootDn |
“DC=company,DC=com” | Секция домена (актуально для LDAP-каталогов, где нет атрибута defaultNamingContext ) |
AdSync.UseLdapIntegerUid |
false | Использование целочисленного значения в качестве идентификатора (актуально для LDAP-каталогов, где нет атрибута ObjectGUID ) на основании атрибутов gidNumber или uidNumber |
AdSync.UseGroupMembership |
false | Использование атрибута GroupMembership вместо memberOf (актуально для некоторых LDAP-каталогов) |
Далее необходимо открыть карточку Синхронизация AD / LDAP (меню системы - Настройки -> Синхронизация AD / LDAP) и заполнить eё:
- В поле Группа синхронизации сотрудников указывается DN группы, из которой будут синхронизироваться сотрудники. В случае, если поле не заполнено, будут синхронизированы все сотрудники из корневых элементов.
- Флаг Не переименовывать статические роли позволяет не изменять имя роли в соответствии с именем в LDAP для созданных в системе статических ролей.
- В таблице Корневые элементы синхронизации (OU) указываются OU, которые вместе с иерархией дочерних переносятся в карточки Подразделений, а элементы – в карточки Сотрудников/Статических ролей. Задаются в формате DN. Можно выбрать тип объекта для синхронизации.
- Блок Периодическая синхронизация отвечает за периодическую синхронизацию и позволяет отключить синхронизацию конкретных типов карточек.
- Кнопка Запустить синхронизацию в блоке Ручная синхронизация позволяет запустить ручную синхронизацию конкретных типов объектов.
Перед синхронизацией каждого сотрудника система также проверяет, входит ли данный сотрудник в группу, указанную в поле Группа синхронизации сотрудников. Если сотрудник не входит в эту группу, то он игнорируется и не будет синхронизирован. Если поле Группа синхронизации сотрудников не заполнено, то сотрудник будет синхронизирован.
Если необходимо синхронизировать только сотрудников, то флаг Синхронизировать подразделения в таблице Корневые элементы синхронизации (OU) должен быть отмечен. В противном случае сотрудники обновлены не будут. Объекты для синхронизации выбираются в разделе периодической синхронизации: если необходимо синхронизировать только сотрудников, то остальные флаги в этом разделе необходимо снять.
Warning
Если ни один корневой элемент не задать, синхронизация Сотрудников, Подразделений и Статических ролей работать не будет.
Автоматическая синхронизация будет выполняться сервисом chronos
с периодом, указанным в плагине AdSyncRecurrentPlugin
. По умолчанию плагин запускается раз в сутки в полночь.
Ручная синхронизация¶
Синхронизацию можно выполнять по требованию: синхронизировать отдельные карточки Сотрудников, Подразделений, Статических ролей или запустить полную синхронизацию.
Предварительно необходимо выполнить все настройки, описанные в разделе Автоматическая синхронизация (кроме включения плагина AdSyncRecurrentPlugin
).
Запустить полную синхронизацию Сотрудников, Подразделений или Статических ролей можно открыв карточку настроек Синхронизация AD / LDAP и нажав на соответствующие кнопки в блоке Ручная синхронизация:
Синхронизация выполняется асинхронно. После запуска синхронизации будет создана операция, по которой можно отслеживать прогресс синхронизации. Список всех активных операций можно посмотреть на рабочем месте Администратор, в представлении Служебные -> Активные операции.
Также, при необходимости, можно выполнить синхронизацию отдельного объекта, т.е. конкретной карточки Сотрудника, Подразделения или Статической роли. Открыв нужную карточку необходимо раскрыть блок Синхронизация с Active Directory / LDAP, нажав левой кнопкой мыши на названии блока. По умолчанию во всех карточках он свёрнут.
Note
В карточке Сотрудника блок Синхронизация с Active Directory / LDAP находится на вкладке Роли и синхронизация.
В раскрывшемся блоке есть следующие поля:
- Дата последней синхронизации - дата и время последней синхронизации текущей карточки.
- Дата последнего изменения в AD / LDAP - дата и время последнего изменения текущего объекта в Active Directory / LDAP.
- Уникальное имя (DN) - уникальное имя объекта в Active Directory / LDAP.
- Active Directory / LDAP ID - идентификатор объекта в Active Directory / LDAP.
- Синхронизация отключена - флаг для отключения синхронизации текущей карточки.
- Синхронизируется независимо от корневых элементов - флаг для синхронизации, даже если объект не принадлежит к дереву корневых элементов.
- Кнопка Запустить ручную синхронизацию - кнопка для запуска ручной синхронизации текущей карточки.
В случае, если необходимо связать уже созданные в TESSA Подразделения, Сотрудников или Статические роли, то можно заполнить поле Уникальное имя (DN) и выполнить ручную синхронизацию. Синхронизация найдет запись в домене по указанному DN и свяжет записи между собой. Связывание выполняется по атрибуту objectGuid
.
Note
Сотрудники, добавленные в Подразделение или Статическую роль вручную (у Сотрудника не заполнено поле AdSyncID), а также Сотрудники с флагом Синхронизация отключена не удаляются из состава роли/подразделения при синхронизации Подразделений.
Алгоритм работы синхронизации¶
После того, как операция синхронизации была создана вручную или периодическим плагином системы (AdSyncRecurrentPlugin
), её подхватывает плагин AdSyncPlugin
, который обрабатывает операции раз в 30 секунд (по умолчанию, настраивается в app-plugins.json
).
В первую очередь проверяется возможность перерасчёта ролей (раздел Активные операции). Если плагин не смог взять эксклюзивную блокировку (потому что длительное время выполнялась другая операция с ролями, такая как пересчёт замещений), то в лог пишется предупреждение и работа плагина при этом завершается (до следующего запуска).
После взятия блокировки из операции извлекается тип операции: синхронизация отдельной карточки или всех объектов.
-
Если выполняется синхронизация отдельной карточки (например, по кнопке в карточке сотрудника):
- Для заданного типа проверяются все объекты с заполненным DN, но пустым AdSyncID, и выполняется поиск соответствий для объектов в системе и в Active Directory / LDAP.
- После этого по AdSyncID синхронизируемой карточки запрашивается объект из Active Directory / LDAP.
- После получения объекта выполняется синхронизация значений его свойств.
-
Если выполняется синхронизация всех объектов:
- Проверяются все объекты с заполненным DN, но пустым AdSyncID, и выполняется поиск соответствий для объектов в системе и в Active Directory / LDAP.
- Система получает список ID корней, для которых включена синхронизация. После этого выполняется рекурсивный обход всех дочерних корней и проверяется, принадлежат ли они к списку корней, для которых включена синхронизация.
- Если принадлежат, то выполняется синхронизация выбранных в настройках объектов.
- После того, как рекурсивно будет пройден весь лес Active Directory / LDAP, проверяются объекты в системе, у которых выставлен флаг Синхронизируется независимо от корневых элементов. Такие объекты синхронизируются как отдельные карточки (см выше).
- После завершения синхронизации, если не было никаких ошибок, происходит скрытие элементов, которые не были обновлены системой, такие объекты считаются удалёнными в домене, и поэтому для них устанавливается флаг Скрывать при выборе, фактического удаления не происходит.
Импорт сотрудников и подразделений из Excel¶
Импорт сотрудников из Excel можно выполнить с помощью команды консольной административной утилиты tadmin
. Импорт выполняется по специальным шаблонам, которые можно скачать по ссылкам ниже. Если необходимо выполнить импорт сотрудников с набором каких-то дополнительных полей, то можно воспользоваться универсальным импортом, подготовив данные для импорта самостоятельно.
Для работы с утилитой необходимо в командной строке открыть папку Tools
(входящую в поставку платформы) и выполнить нужную команду.
Команда для импорта сотрудников:
ImportUsers pathToUserFile [-sd:pathToDepartmentFile] [-a:address] [-u:userName] [-p:password] [-cs:configurationString] [-db:databaseName] [-q] [-nologo]
где pathToUserFile
- путь к файлу .xlsx
(содержащему список сотрудников и подразделений) или .csv
(содержащему список пользователей).
pathToDepartmentFile
- путь к файлу .csv
, содержащему список подразделений. Указывается в дополнение к .csv
файлу со списком сотрудников, необязательный параметр.
Описание необязательных параметров (указаны в квадратных скобках напротив команды):
-a
- адрес сервиса TESSA.-u
- имя пользователя.-p
- пароль.-cs
- имя строки подключения в файлеapp.json
для использования вместо строки по умолчанию.-db
- имя базы данных для использования вместо указанной в строке подключения.-q
- на консоль выводятся только ошибки. Если не указать, то все сообщения выводятся на консоль.-nologo
- предотвращает отображение сообщения по авторским правам и номеру версии.
Требования к импортируемым CSV, Excel файлам:
-
При импорте из Excel обязательна книга, на листах которой находятся данные о сотрудниках и подразделениях, а также их связях. Шаблон
.xslx
файла: ImportUsersSample.xlsx.Note
Лист подразделений может быть пустым, если необходимо импортировать только сотрудников.
Пример импорта:
tadmin ImportUsers ImportUsersSample.xlsx -u:admin -p:admin
-
При импорте из CSV обязателен файл, содержащий сотрудников. Файл с подразделениями передается при необходимости. Шаблоны файлов для импорта сотрудников и подразделений: ImportUsersSample.csv, ImportDepartmentsSample.csv.
Пример импорта:
tadmin ImportUsers ImportUsersSample.csv -u:admin -p:admin /sd:ImportDepartmentsSample.csv
Important
Связывание данных с внешней системой и проверка уникальности производится с помощью поля Внешний ID. Если Внешний ID не заполнен, то для подразделений производится проверка по названию подразделения, а для сотрудников по логину. Если в какой-то строке списка сотрудников/подразделений не заполнены ни Внешний ID, ни логин/название подразделения, то такая строка не будет синхронизирована.
Если какие-то строки из файлов не были импортированы, данная информация отобразится в консоли и добавится в log.txt
с указанием номеров строк.
При выполнении импорта/синхронизации необходимо учитывать следующие особенности:
-
Обязательные поля отмечены звездочкой в заголовке шаблонного файла. Если какие-то из обязательных полей не будут указаны, то данная строка из файла не будет загружена, о чем в консоль будет выведена соответствующая информация:
Для подразделения обязательные поля: № п/п, Родительское подразделение (если подразделение корневое, то данное поле оставить пустым), Название организации/подразделения.
Для сотрудника: Фамилия, Имя.
-
Для сотрудников с типом входа Пользователь TESSA, Пользователь Windows или Пользователь LDAP помимо указанных выше обязательных полей должен быть указан логин. Если логин не указать - сотрудник не будет загружен, в консоль выведется данная информация:
-
Логин сотрудника должен быть уникален. Если в файле встретится повторяющийся логин или сотрудник с таким логином уже есть в TESSA, то в консоль будет выведена ошибка:
-
Название подразделения должно быть уникально на одном уровне. Два подразделения с одинаковым именем, но имеющие разные родительские подразделения могут быть загружены:
Однако если два подразделения имеют одинаковое имя и попытаться их загрузить в одно и тоже родительское подразделение (или если у обоих не указать родительского):
Или, если в TESSA уже есть подразделение с таким же именем и на том же уровне, то в консоль будет выведена соответствующая ошибка:
При этом все корректные строки из файла будут успешно загружены.
-
Если в файле окажется, что для каких-то из подразделений указаны родительские подразделения таким образом, что они “зациклены”, например:
В этом случае в консоль выведется соответствующая ошибка о том, что указанная родительская роль приводит к циклической связи:
При этом все подразделения будут загружены успешно, но для одного из подразделений не пропишется родительское.
-
Временную зону для подразделения или сотрудника можно задать как через Код зоны, например,
Saratov Standard Time
илиDefault
, так и указав смещение в формате (+-H:mm или +-HH:mm), например+3:00
, или+03:00
, или-07:00
. Если указан Код зоны, то будет выбрана первая временная зона из справочника временных зон, отсортированного по полю Идентификатор зоны, которая содержит в имени искомый текст. Если указано смещение, то будет выбрана первая временная зона из справочника временных зон, отсортированного по полю Идентификатор зоны, которая имеет такое же смещение. В обоих случаях, когда указан Код зоны или смещение, при установке зоны, для роли будет отключено наследование временной зоны от родителя. Чтобы включить наследование от родителя, необходимо вместо Кода зоны или смещения указать-1
.Если временная зона не задана, то поля с временными зонами не будут импортированы, и у новых карточек они будут заполнены временной зоной
По умолчанию
, а в уже имеющихся карточках - останутся без изменений.