Организационная структура¶
Аутентификация пользователей¶
Система обеспечивает прозрачную интеграцию с доменом Active Directory. При запуске клиентского приложения пользователь без ввода дополнительных параметров аутентифицируется системой как соответствующий пользователь домена и применяются соответствующие настройки профиля в системе TESSA.
Также в TESSA доступна аутентификация с помощью логина/пароля TESSA (указанных в справочнике сотрудников).
Администратор системы в карточке пользователя в справочнике сотрудников указывает тип входа в систему (Пользователь Windows
/Пользователь TESSA
), а также учетные данные (доменная учетная запись или логин/пароль пользователя TESSA), чтобы система могла идентифицировать пользователя (см Создание карточки сотрудника). Для безопасности хранения паролей сотрудников с типом входа Пользователь TESSA
, в системе сохраняется хэш пароля.
Также возможен ручной ввод логина/пароля (учетной записи домена или локальной (на сервере приложений) учетной записи, или же логина/пароля пользователя TESSA).
Механизм работы аутентификации пользователей в платформе TESSA¶
Note
Инструкция по настройке аутентификации находится в руководстве по установке в разделе Настройка Windows-аутентификации
.
В платформе TESSA поддерживается использование встроенной аутентификации Windows с поддержкой SSO (Single Sign-On), используя протокол Kerberos. SSO позволяет вводить данные для входа только один раз при входе. В дальнейшем используется SPNEGO токен, передаваемый на сервер, в котором пользователь хочет аутентифицироваться.
Толстый клиент¶
Без явного указания логина и пароля¶
-
Пользователь запускает клиент TESSA.
-
Клиент отправляет запрос на аутентификацию сервису TESSA по адресу https://{base}/winlogin
-
Сервис TESSA отвечает кодом 401 и заголовком
WWW-Authenticate
. -
Клиент запрашивает у KDC (Key Distribution Center) сервера сеансовый ключ.
-
Сервер 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 система, то пользователю возвращается ошибка и окно ввода логина и пароля
-
-
Легкий клиент¶
Без явного указания логина и пароля¶
-
Пользователь открывает браузер и переходит по ссылке легкого клиента.
-
Браузер отправляет 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 система, то пользователю возвращается ошибка и окно ввода логина и пароля
-
-
Сотрудники¶
Для того, чтобы сотрудник мог войти в систему, должно выполняться следующее условие: для сотрудника должна быть заведена карточка в справочнике сотрудников и в ней должен быть указан его аккаунт (если тип входа в систему - Пользователь Windows
или Пользователь LDAP
) или логин/пароль (если тип входа в систему - Пользователь TESSA
).
Настройка замещений для сотрудников описана в соответствующем подразделе раздела Обслуживание.
Карточка сотрудника является одним из типов ролей. Все доступные типы ролей описаны в разделе Роли.
Просмотр справочника¶
Посмотреть список сотрудников можно на рабочем месте Администратора в представлени “Сотрудники”:
В представлении доступен просмотр по подмножествам подразделений или статических ролей.
Создание карточки сотрудника¶
Для того чтобы завести нового пользователя в системе и тем самым дать ему доступ к приложениям, рабочим местам и представлениям необходимо создать карточку нового сотрудника с помощью правого меню “Создать карточку → Роли → Сотрудник”. Также создать новую карточку сотрудника можно с помощью кнопки с изображением карандаша в представлении “Сотрудники” на рабочем месте Администратора:
Note
В системе можно настроить доступ на создание карточек сотрудников и подразделений для обычных пользователей, не являющихся администраторами системы (подробней см. Выдача прав на создание и редактирование карточек сотрудников/подразделений). Карточки всех остальных типов ролей создавать и редактировать могут только администраторы системы.
В карточке сотрудника необходимо указать: Фамилию, Имя и Отчество. Краткое и полное имя можно не указывать, тогда система сгенерирует их самостоятельно в формате Фамилия И. О. и Фамилия Имя Отчество соответственно. Далее выбрать Тип входа в систему и, в зависимости от выбранного типа, заполнить данные для доступа в систему:
-
Пользователь Windows - указать доменный аккаунт в формате
домен\имя пользователя
; -
Пользователь LDAP - указать аккаунт;
-
Пользователь TESSA - указать логин, пароль и повтора пароля.
-
Вход запрещён - вход для данного сотрудника будет запрещён. Данный тип указывается, если это служебная учетная запись (как, например, System) или при увольнении сотрудника.
А также выбрать Уровень доступа - Обычный
или Администратор
(подробней об отличие уровней доступа см. в разделе Общая информация).
Поле Архитектура приложений определяет то, какие приложения (32-разрядные или 64-разрядные) будут скачиваться приложением Tessa Applications, когда опубликованы приложения обеих разрядностей.
-
Значение
Автоматически
соответствует архитектуре, которое известно для Tessa Applications новой версии 3.5.0 (или старше), но для предыдущих его версий архитектура определяется как 32-разрядная. -
Значение
предпочитать 32-битные приложения
определяет, что используются 32-разрядные приложения независимо от фактической архитектуры ОС пользователя и версии Tessa Applications. -
Значение
предпочитать 64-битные приложения
- аналогично использует 64-разрядные приложения кроме того случая, когда Tessa Applications новой версии (3.5.0 или старше) явно сообщает серверу, что ОС пользователя является 32-разрядной.
Note
Узнать какой разрядности запускаются у пользователя приложения можно из Истории действий в записи “Вход в систему”. Значение “неизвестно” означает, что приложение, выполнившее вход, не передало информацию по разрядности.
Также в карточке сотрудника можно указать электронную почту (если сотруднику нужно получать уведомления) и Язык уведомлений по умолчанию.
Поле Внешний ID используется при импорте сотрудников с помощью утилиты tadmin. Оно необходимо для связывания данных с внешней системой и проверки уникальности, заполняется только в случае, если данные сотрудника синхронизируются с какой-то внешней системой.
Блок Синхронизация с Active Directory / LDAP используется для отображения информации по синхронизации, а также запуска ручной синхронизации (более подробно см. Синхронизация с Active Directory / LDAP).
После того, как все необходимые данные сотрудника заполнены, нужно нажать кнопку “Сохранить новую” в левом меню системы для сохранения карточки, либо “Сохранить, закрыть и создать” для сохранения текущей карточки, её закрытия и создания еще одной карточки (подробней о возможных способах создания карточек см. в Руководстве Пользователя):
В течение 30 минут (после добавления сервисом Chronos сотрудника в роль “Все сотрудники”) новый пользователь получит доступ к рабочему месту и представлениям, доступным пользователям по умолчанию. Пересчет роли можно выполнить самостоятельно, открыв в представлении “Администратор → Роли → Динамическая роль” роль “Все сотрудники” и нажав на кнопку пересчета (подробней см. Пересчёт ролей).
Загрузить большое количество Сотрудников в TESSA можно с помощью синхронизации с Active Directory / LDAP или утилиты tadmin.
Настройки сотрудника¶
В каждой карточке сотрудника есть вкладка Мои настройки. Все настройки, указанные на данной вкладке каждый пользователь может менять себе сам (правая панель системы - кнопка Мои настройки
).
У Администратора есть права для изменения настроек любого пользователя. Настройки поделены на несколько вкладок:
Вкладка “Мои настройки”
-
Общие настройки:
-
Использовать предпросмотр PDF средствами Windows - отключить предпросмотр файлов PDF встроенными средствами TESSA и использовать внешнюю программу для предпросмотра, если она установлена. Встроенный предпросмотр доступен только для ОС Windows 10 и старше.
-
Постраничный предпросмотр PDF - при использовании встроенного предпросмотра PDF предпочитать просмотр в режиме постраничного отображения; если не указано, то используется сквозная прокрутка между страницами.
-
Отключить затемнение неактивного окна - если флаг установлен, то окно приложения затемняется, когда оно становится неактивным. При этом область предпросмотра файлов может очищаться. Для отключения описанного поведения флаг необходимо снять.
-
Отключить все всплывающие уведомления - все всплывающие уведомления будут отключены (такие уведомления обычно отображаются в правом нижнем углу экрана). Это настройка не затрагивает уведомления email и другие виды уведомлений;
-
Разрешить предпросмотр через несколько внешних программ - разрешить предпросмотр одновременно через несколько внешних программ (на разных вкладках). Настройка не затрагивает встроенный предпросмотр или веб-браузер.
Когда настройка отключена, то при активации предпросмотра через внешнюю программу на одной вкладке, очищается область предпросмотра через внешнюю программу в другой вкладке. Если включить настройку, то несколько одновременно активных внешних программ предпросмотра могут приводить к ошибкам в приложении.
-
Рабочие места, открываемые при запуске - перечисляются рабочие места, которые необходимо отображать по умолчанию при запуске приложения. Одно и то же рабочее место можно указать несколько раз, если требуется, чтобы при запуске приложения данное рабочее место было продублировано в нескольких вкладках. Если в данном поле ничего не указано, то пользователю будет открыто первое доступное рабочее место.
-
-
Обсуждения
-
Включить индикатор сообщений - включить отображение индикатора новых сообщений, поступивших в обсуждения, где текущий сотрудник является участником и подписан на уведомления. Более подробно о модуле обсуждений можно прочитать в Руководстве Пользователя.
-
Не показывать индикатор сообщений при запуске - скрыть индикатор при запуске TessaClient, индикатор появится при поступлении новых сообщений.
-
-
Типовое решение:
- Отключить всплывающие уведомления по заданиям - отключает периодически всплывающие уведомления о том, что доступны новые задания;
-
Настройки учетной записи:
-
Сбросить все настройки - сбросить все настройки текущего пользователя на настройки по умолчанию. А именно: настройки показа боковых панелей, настройки затемнения неактивного окна, добавленные в дерево папки и поисковые запросы, настроенные группировки и показ колонок в представлениях.
-
Сохранить и применить настройки для сотрудников - кнопка для копирования настроек, указанных для текущего сотрудника в карточки других сотрудников. При нажатии на кнопку откроется окно, где можно указать сотрудников, для кого необходимо применить данные настройки. Можно указать любые роли (кроме контекстных), в том числе роль “Все сотрудники”, если настройки надо распространить на всех сотрудников.
-
Вкладка “Уведомления:
-
Отписаться от типов уведомлений – это поле позволяет отписаться от выбранных типов глобальных уведомлений. В списке недоступны скрытые типы уведомлений.
-
Подписаться на типы уведомлений – это поле позволяет подписаться на выбранные типы глобальных уведомлений. Таким образом пользователь будет получать уведомления с данными типами, если он указан как опциональный получатель.
-
Правила уведомлений – таблица для добавления правил получения локальных уведомлений. Их может быть несколько, но уведомление будет подчиняться только самому верхнему правилу, внутри которого выполняются все условия, причём неважно, разрешает это правило получение уведомлений или запрещает. Остальные правила игнорируются. Чтобы добавить новую строку необходимо нажать на кнопку “Добавить”, откроется форма добавления правила:
Также уже добавленное правило можно удалить, выделив его и нажав кнопку “Удалить”. При добавлении новой строки необходимо заполнить поля (обязательные поля отмечены символом *):
-
Название – в этом поле указывается понятное для пользователя название правила.
-
Типы уведомлений – тут указываются типы уведомлений, для которых работает это правило. При поиске доступны все типы уведомлений, кроме скрытых и глобальных.
-
Запретить – если в этом поле стоит флаг, то правило запрещающее, если флага нет, то разрешающее.
-
Описание – в этом поле указывается описание текущего правила. Заполняется автоматически, недоступно для редактирования.
-
Список условий – таблица для добавления условий. Чтобы добавить новую строку необходимо нажать на кнопку “Добавить”, откроется форма добавления условия:
Для добавления условия следует заполнить поле тип условия и связанное с этим типом дополнительное поле. Список дополнительных полей указан в таблице:
-
По автору
Сотрудники – в этом поле указываются сотрудники, по которым будет выполняться данное условие, если они являются авторами карточки
-
По инициатору
Сотрудники – в этом поле указываются сотрудники, по которым будет выполняеться данное условие, если они являются инициаторами процесса
-
По контрагенту
Контрагенты – в этом поле указываются контрагенты, по которым будет выполняться данное условие
-
По поздразделению
Подразделения – в этом поле указываются подразделения, по которым будет выполняться данное условие;
Проверять подразделение автора – если в этом поле стоит флаг, условие выполняется, если автор карточки находится в данном подразделении;
Проверять подразделение инициатора – если в этом поле стоит флаг, условие выполняется, если инициатор процесса находится в данном подразделении;
Проверять подразделение карточки – если в этом поле стоит флаг, условие выполняется, если карточка принадлежит данному поздразделению
-
По состоянию документа
Состояния - в этом поле указываются состояния, по которым будет выполняться данное условие
-
По типу документа
Типы документов - в этом поле указываются типы документов, по которым будет выполняться данное условие
-
По маршруту
Режим работы подсистемы маршрутов - в этом поле указывается режим работы подсистемы маршрутов:
-
Маршруты не используются;
-
Маршруты используются;
-
Маршруты используются и процесс активен;
-
Маршруты используются и процесс не активен.
Разрешена регистрация - условие выполняется, если для типа карточки используется регистрация.
-
Если выставлен флаг в поле “Инвертировать условие”, то условие будет обратное правилу. То есть, если, например, стоит условие по контрагенту и выбран некий контрагент “ООО Альбатрос”, а также стоит флаг “Инвертировать условие”, то условие будет работать для всех контрагентов, кроме указанного.
В одно правило можно добавить несколько условий. В таком случае оно будет выполняться, если все его условия будут выполнены.
Вкладка “Боковые панели”
- “Боковые панели” – настройка вызова правой/левой боковых панелей в веб-клиенте по нажатию левой кнопкой мыши, а не по наведению курсора.
Вкладка “Web клиент”
- “Боковые панели” – настройка вызова правой/левой боковых панелей в веб-клиенте по нажатию левой кнопкой мыши, а не по наведению курсора.
Вкладка “Персонализация”
- “Область заданий” - настройка цвета кубика заданий в зависимости от различных параметров.
Сам для себя изменить настройки Администратор может или в своей карточке сотрудника, или с помощью вызова окна настроек из правой панели системы - кнопка Мои настройки.
В открывшемся окне все настройки аналогичны настройкам в карточке сотрудников.
С помощью кнопки “Мои настройки” → “Настройки новых пользователей” открывается диалог настроек, аналогичный диалогу “Мои настройки”, но применяемый для всех новых сотрудников. Новыми считаются любые сотрудники, создаваемые после установки настроек.
Доступ и безопасность¶
В карточке сотрдника есть блок “Доступ и безопасность”, который по умолчанию свёрнут. Чтобы развернуть его, необходимо нажать на название блока:
В блоке хранится информация о блокировке пользователя, а также дата последней смены пароля:
-
Вход заблокирован - при выставленном флаге пользователь не сможет зайти в систему.
Данный флаг может выставиться автоматически для сотрудника с типом входа
Пользователь TESSA
, если количество неудачных входов пользователя превышает количество, указанное в соответствующих настройках безопасности в карточке настроек сервера.Note
Данный флаг можно выставлять вручную или с помощью расширений и скриптов (например, при завершении процесса увольнения сотрудника).
-
Дата и время окончания блокировки - дата и время, когда флаг “Вход заблокирован” будет снят автоматически. Данное поле заполняется и очищается автоматически при следующих условиях:
-
Выставляется автоматически при установке временной блокировки, которая возможна для сотрудников с типом входа
Пользователь TESSA
, если количество неудачных входов пользователя превышает количество неудачных входов до временной блокировки, указанное в настройках безопасности в карточке настроек сервера. -
По истечении указанной даты и времени, поле очищается (и снимается флаг “Вход запрещён”) сервисом Chronos с периодичностью, указанной в параметре
RolesLockTimeoutSeconds
конфигурационного файла Chronos\app.json (по умолчанию - каждые 5 минут). -
Если количество неудачных входов пользователя превышает количество неудачных входов до постоянной блокировки, указанное в настройках безопасности в карточке настроек сервера, то данное поле очищается, при этом флаг “Вход заблокирован” не снимается и блокировка считается постоянной.
-
-
Дата и время последнего изменения пароля - дата и время, когда последний раз для данного сотрудника была выполнена смена пароля: пользователем самостоятельно с помощью диалога “Мои настройки” (подробней см. Руководство Пользователя), или администратором системы в карточке данного сотрудника. Указанные дата и время используются для корректного подсчета срока окончания действия пароля в случае, если в настройках безопасности в карточке настроек сервера выставлено ограничение срока действия пароля.
За указанное в настройках безопасности количество дней до окончания срока действия пароля, пользователь ежедневно будет получать на электронную почту уведомление о необходимости смены пароля. Если срок действия пароля истечёт, то пользователь уже не сможет зайти в систему, т.к. в карточке сотрудника будет выставлена постоянная блокировка (т.е. флаг “Вход заблокирован” выставится, а поле “Дата и время окончания блокировки” останется пустым), которую снять сможет только администратор системы.
Подразделения¶
Подразделения в системе используются для настройки организационной структуры, а также для настройки прав доступа, рассылки заданий и уведомлений.
Карточка подразделения является одним из типов ролей. Все доступные типы ролей описаны в разделе Роли.
Посмотреть список всех подразделений можно в представлении “Подразделения” на рабочем месте администратора:
При выборе подразделения в нижней части представления отображается список сотрудников выбранного подразделения.
Создать новую карточку Подразделения можно нажав на кнопку с изображением карандаша, расположенную на панели инструментов представления “Подразделения” или с помощью правого меню системы: “Создать карточку → Роли → Подразделение”.
Note
В системе можно настроить доступ на создание карточек сотрудников и подразделений для обычных пользователей, не являющихся администраторами системы (подробней см. Выдача прав на создание и редактирование карточек сотрудников/подразделений). Карточки всех остальных типов ролей создавать и редактировать могут только администраторы системы.
В карточке подразделения следующие поля:
-
Название подразделения - обязательно для заполнения, название данного подразделения. Название должно быть уникально в пределах одного уровня организационной структуры.
-
Родительское подразделение - ссылка на родительское подразделение. Указывается в случае, если текущее подразделение является дочерним по отношению к какому-либо другому подразделению. С помощью данного поля создается древовидная организационная структура.
Note
В типовой поставке TESSA есть агрегатор метаролей, который по каждому подразделению, имеющему дочерние подразделения с сотрудниками, создает метароль, в которую входят все сотрудники текущего подразделения и все сотрудники всех дочерних подразделений. Данные метароли также можно использовать для настройки прав доступа, а также рассылки заданий и уведомлений. Подробней о всех типах ролей в TESSA см. в разделе Роли.
-
Глава подразделения - руководитель текущего подразделения.
-
Внешний ID - используется при импорте подразделений с помощью утилиты tadmin. Поле необходимо для связывания данных с внешней системой и проверки уникальности, заполняется только в случае, если данные сотрудника синхронизируются с какой-то внешней системой.
-
Описание - при необходимости указывается подробное описание подразделения.
-
Скрывать при выборе - флаг выставляется в случае ликвидации подразделения. При выставленном флаге данное подразделение не будет отображаться в представлениях и не будет доступно для выбора при настройке правил доступа или настройке маршрутов. Найти все скрытые карточки подразделений можно в представлении “Подразделения” выполнив поиск по параметру “Показать скрытые = да”.
-
Временная зона - временная зона подразделения. Подробней см. раздел Временные зоны.
-
*Синхронизация с Active Directory/LDAP - блок для настройки и выполнения ручной синхронизации с Active Directory/LDAP. Подробней см. раздел Синхронизация с Active Directory / LDAP.
-
Сотрудники - сотрудники, входящие в данное подразделение.
-
Сотрудники и заместители - не доступно для чтения, высчитывается автоматически на основании указанных сотрудников и заместителей. При расчёте прав доступа или назначении заданий система используется именно этот состав роли подразделения.
-
Заместители - таблица для настройки замещений. Также в ней отображаются заместители, добавленные сотрудникам с помощью вкладки “Мои замещения”.
Note
Не рекомендуется настраивать замещения в данной таблице, т.к. довольно неудобно отслеживать такие замещения. Удобней для настройки замещений использовать вкладку “Мои замещения” карточки сотрудника, где в том числе можно настроить замещение на конкретное подразделение.
Загрузить большое количество подразделений в TESSA можно с помощью синхронизации с Active Directory / LDAP или утилиты tadmin.
Статические роли¶
Статические роли в системе используются для настройки прав доступа, рассылки заданий и уведомлений. Все доступные в TESSA типы ролей описаны в разделе Роли.
Note
Создавать и редактировать карточки статических ролей могут только администраторы системы.
Посмотреть список всех статических ролей можно в представлении “Роли → По типу → Статическая роль” на рабочем месте администратора:
При выборе роли в нижней части представления отображается список сотрудников выбранной роли.
Создать новую карточку статической роли можно нажав на кнопку с изображением карандаша, расположенную на панели инструментов представления или с помощью правого меню системы: “Создать карточку → Роли → Статическая роль”. В карточке статической роли следующие поля:
-
Имя роли - обязательно для заполнения, название данной роли.
-
Родительская роль - ссылка на родительскую роль. Указывается в случае, если текущая роль является дочерней по отношению к какой-либо другой статической роли. С помощью данного поля создается древовидная структура статических ролей.
Note
Древовидная структура настраивается только для удобства и не влияет на работу системы (например, назначив права на родительскую роль, сотрудники дочерней роли не получат данные права).
-
Описание - при необходимости указывается подробное описание роли.
-
Скрывать при выборе - флаг выставляется в случае ликвидации роли. При выставленном флаге данная роль не будет отображаться в представлениях и не будет доступна для выбора при настройке правил доступа или настройке маршрутов. Найти все скрытые карточки подразделений можно в представлении “Подразделения” выполнив поиск по параметру “Показать скрытые = да”.
-
Временная зона - временная зона роли. Подробней см. раздел Временные зоны.
-
*Синхронизация с Active Directory/LDAP - блок для настройки и выполнения ручной синхронизации с Active Directory/LDAP. Подробней см. раздел Синхронизация с Active Directory / LDAP.
-
Сотрудники - сотрудники, входящие в данную роль.
-
Сотрудники и заместители - не доступно для чтения, высчитывается автоматически на основании указанных сотрудников и заместителей. При расчёте прав доступа или назначении заданий система используется именно этот состав роли.
-
Заместители - таблица для настройки замещений. Также в ней отображаются заместители, добавленные сотрудникам с помощью вкладки “Мои замещения”.
Note
Не рекомендуется настраивать замещения в данной таблице, т.к. довольно неудобно отслеживать такие замещения. Удобней для настройки замещений использовать вкладку “Мои замещения” карточки сотрудника, где в том числе можно настроить замещение на конкретные роли.
Загрузить большое количество статических ролей в TESSA можно с помощью синхронизации с Active Directory / LDAP.
Изменение фамилии, увольнение сотрудника/ликвидация подразделения и роли¶
В случае увольнения сотрудников или ликвидации подразделений и ролей, необходимо найти и открыть нужную карточку роли и выставить в ней флаг “Скрывать при выборе”. Данная роль станет недоступна для выбора в карточках системы.
Если увольняется сотрудник, то, помимо скрытия карточки, необходимо выполнить следующие действия:
-
Очистить в карточке сотрудника все статические роли и подразделения - это необходимо, чтобы при отправке каких-то документов на ознакомление на данные роли и подразделения, текущий сотрудник не попал в рассылку и не отображался в списке ознакомителей.
-
Запретить вход сотруднику в систему - выставить тип входа
Вход запрещён
(тогда очистится логин) или выставить флаг “Вход заблокирован” в блоке полей “Доступ и безопасность”. В обоих случаях пользователь не сможет зайти в систему, однако флаг “Вход заблокирован” удобно использовать для временных блокировок. -
Назначить сотруднику заместителей - в случае, если есть необходимость переназначить все незавершенные задания данного сотрудника на других сотрудников.
Чтобы найти скрытые карточки, необходимо в нужном представлении (“Сотрудники”, “Подразделения”, “Роли”) выполнить поиск по параметру “Показать скрытые = да”.
При смене фамилии достаточно найти карточку нужного сотрудника и указать в ней новую фамилию (имя, отчество), при этом во всех старых карточках документов, где указан данный сотрудник, останется старая фамилия, а в новых карточках и во всех справочниках будет отображаться уже новая. При поиске карточек по сотруднику (если это поиск по ссылке), будут находиться все карточки данного сотрудника, как со старой, так и с новой фамилией.
Warning
При увольнении сотрудника не надо пытаться удалить его карточку, а при смене фамилии - не надо создавать новую карточку сотрудника.
Выдача прав на создание и редактирование карточек сотрудников/подразделений¶
Обычным пользователям, не имеющим административного доступа, можно выдать права на создание и редактирование карточек сотрудников. При этом будут следующие ограничения:
-
Пользователь не может создавать сотрудников с административным доступом,
-
Пользователь не может копировать карточки сотрудников,
-
Пользователь не может редактировать карточки сотрудников с административным доступом.
Для назначения доступа на создание/редактирование карточек сотрудников необходимо тип карточки “Сотрудник” добавить в настройки типового решения (правое меню → Настройки → Типовое решение → добавить строку в таблицу “Типы карточек”).
После того, как тип карточки “Сотрудник” добавлен в типовое решение, для него начинают работать типовые правила доступа. Т.е. никто, даже администратор, не сможет создавать/редактировать сотрудников, пока не будут настроены соответствующие правила доступа.
Для корректной работы системы первым делом необходимо создать правило доступа на чтение карточек сотрудников всем сотрудникам:
Далее необходимо создать правило доступа для администраторов, аналогично правилу на изображении выше с дополнительно выставленными флагами на создание, редактирование карточки (и, при необходимости, остальные: добавление файлов и т.п.). При этом вместо роли “Все сотрудники” указать другие роли/других сотрудников.
И теперь можно создать дополнительные правила для предоставление доступа обычным сотрудникам (ролям) на создание/редактирование карточек сотрудников. При получении прав на редактирование карточек сотрудников, указанные пользователи получат права на все вкладки и поля карточек сотрудников, включая настройку замещений и прочее.
Note
Аналогично можно настроить расширенные правила доступа для предоставления прав на редактирование отдельных полей в карточках сотрудников без выдачи прав на редактирование всей карточки.
Note
Права на редактирование карточек сотрудников (или полей в карточках сотрудников) можно также разделить с помощью самостоятельно разработанных типов условий.
Помимо прав на создание/редактирование карточек сотрудников таким же образом можно выдать права на карточки подразделений.
Синхронизация с Active Directory / LDAP¶
Описание модуля¶
Модуль предназначен для синхронизации с Active Directory / LDAP карточек Сотрудников, Подразделений и Статических ролей.
Tip
Модуль не входит в типовую поставку и приобретается отдельно.
Tip
Начиная с версии 3.3 синхронизация совместима с протоколом LDAPv3.
Посмотреть информацию о доступных модулях, включённых в лицензию можно в приложении TessaAdmin, раздел “Информация”:
Данный модуль может выполнять:
-
периодическую синхронизацию данных в указанные моменты времени;
-
синхронизацию данных по запросу пользователя (вручную).
Модуль синхронизирует:
-
Карточки Сотрудников:
-
ФИО,
-
Логин,
-
Email,
-
Телефон,
-
Мобильный телефон,
-
Домашний телефон,
-
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 |
Уникальное имя объекта. |
Фамилия, имя и отчество берутся из указанных выше параметров или на основании параметров cn
, name
, displayName
(если параметры из таблицы пусты).
-
Карточки Подразделений:
-
Название подразделения,
-
Глава подразделения,
-
Сотрудники, входящие в подразделение.
-
Маппинг полей (тип объекта organizationalUnit):
Параметр в Active Directory / LDAP |
Параметр в TESSA ([таблица].[поле]) | Описание |
---|---|---|
managedBy |
DepartmentRoles.HeadUserID |
Руководитель подразделения |
description |
Roles.Description |
Описание объекта. |
whenChanged / modifyTimestamp |
Roles.AdSyncWhenChanged |
Дата изменения объекта. |
distinguishedName |
Roles.AdSyncDistinguishedName |
Уникальное имя объекта. |
-
Карточки Статических ролей:
-
Имя роли,
-
Описание роли,
-
Сотрудники, входящие в статическую роль.
-
Маппинг полей (тип объекта 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.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” (правое меню в TessaClient - “Настройки→Синхронизация AD / LDAP”) и заполнить eё:
-
В поле “Группа синхронизации сотрудников” указывается DN группы, из которой будут синхронизироваться сотрудники. В случае, если поле не заполнено, будут синхронизированы все сотрудники из корневых элементов;
-
Флаг “Не переименовывать статические роли” позволяет не изменять имя роли в соответствии с именем в LDAP для созданных в системе статических ролей;
-
В таблице “Корневые элементы синхронизации (OU)” указываются OU, которые вместе с иерархией дочерних переносятся в карточки Подразделений, а элементы – в карточки Сотрудников/Статических ролей. Задаются в формате DN. Можно выбрать тип объекта для синхронизации;
-
Блок “Периодическая синхронизация” отвечает за периодическую синхронизацию и позволяет отключить синхронизацию конкретных видов карточек;
-
Блок “Ручная синхронизация” позволяет запустить ручную синхронизацию конкретных типов объектов.
Перед синхронизацией каждого сотрудника система также проверяет, входит ли данный сотрудник в группу, указанную в поле “Группа синхронизации сотрудников”. Если сотрудник не входит в эту группу, то он игнорируется и не будет синхронизирован. Если поле “Группа синхронизации сотрудников” не заполнено, то сотрудник будет синхронизирован.
Если необходимо синхронизировать только сотрудников, то флаг “Синхронизировать подразделения” в таблице “Корневые элементы синхронизации (OU)” должен быть отмечен. В противном случае сотрудники обновлены не будут. Объекты для синхронизации выбираются в разделе периодической синхронизации: если необходимо синхронизировать только сотрудников, то остальные флаги в этом разделе необходимо снять.
Warning
Если ни один корневой элемент не задать, синхронизация Сотрудников, Подразделений и Статических ролей работать не будет.
Автоматическая синхронизация будет выполняться сервисом Chronos с периодом, указанным в плагине AdSyncRecurrentPlugin. По умолчанию плагин запускается раз в сутки в полночь.
Ручная синхронизация¶
Синхронизацию можно выполнять по требованию: синхронизировать отдельные карточки Сотрудников, Подразделений, Статических ролей или запустить полную синхронизацию.
Предварительно необходимо выполнить все настройки, описанные в разделе Автоматическая синхронизация (кроме включения плагина AdSyncRecurrentPlugin).
Запустить полную синхронизацию Сотрудников, Подразделений или Статических ролей можно открыв карточку настроек “Синхронизация AD / LDAP” и нажав на соответствующие кнопки в блоке “Ручная синхронизация”:
Синхронизация выполняется асинхронно. После запуска синхронизации будет создана операция, по которой можно отслеживать прогресс синхронизации. Список всех активных операций можно посмотреть на рабочем месте Администратор, представление “Прочее → Активные операции”.
Также, при необходимости, можно выполнить синхронизацию отдельного объекта, т.е. конкретной карточки Сотрудника, Подразделения или Статической роли. Открыв нужную карточку необходимо раскрыть блок “Синхронизация с Active Directory / LDAP”, нажав левой кнопкой мыши на названии блока. По умолчанию во всех карточках он свёрнут.
В раскрывшемся блоке есть следующие поля:
-
Дата последней синхронизации - дата и время последней синхронизации текущей карточки;
-
Дата последнего изменения - дата и время последнего изменения текущего объекта в Active Directory / LDAP;
-
Уникальное имя (DN) - уникальное имя объекта в Active Directory / LDAP;
-
Active Directory / LDAP ID - идентификатор объекта в Active Directory / LDAP;
-
Синхронизация отключена - флаг для отключения синхронизации текущей карточки;
-
Синхронизируется независимо от корневых элементов - флаг для синхронизации, даже если объект не принадлежит к дереву корневых элементов;
-
Кнопка “Запустить ручную синхронизацию” - кнопка для запуска ручной синхронизации текущей карточки.
В случае, если необходимо связать уже созданные в TESSA Подразделения, Сотрудников или Статические роли, то можно заполнить поле “Уникальное имя (DN)” и выполнить ручную синхронизацию. Синхронизация найдет запись в домене по указанному DN и свяжет записи между собой. Связывание выполняется по атрибуту objectGuid.
Note
Сотрудники, добавленные в Подразделение или Статическую роль вручную (у Сотрудника не заполнено поле AdSyncID), а так же Сотрудники с флагом “Синхронизация отключена” не удаляются из состава роли/подразделения при синхронизации Подразделений.
Алгоритм работы синхронизации¶
После того, как операция синхронизации была создана вручную или периодическим плагином Chronos (AdSyncRecurrentPlugin), её подхватывает плагин AdSyncPlugin, который обрабатывает операции раз в 30 секунд (по умолчанию, настраивается в configuration/AdSyncPlugin.xml).
В первую очередь проверяется возможность перерасчёта ролей (раздел Активные операции). Если плагин не смог взять эксклюзивную блокировку (потому что длительное время выполнялась другая операция с ролями, такая как пересчёт замещений), то в лог пишется предупреждение, работа плагина при этом завершается (до следующего запуска).
После взятия блокировки из операции извлекается тип операции: синхронизация отдельной карточки или всех объектов.
-
Если выполняется синхронизация отдельной карточки (например, по кнопке в карточке сотрудника):
-
Для заданного типа проверяются все объекты с заполненным DN, но пустым AdSyncID, и выполняется поиск соответствий для объектов в системе и в Active Directory / LDAP.
-
После этого по AdSyncID синхронизируемой карточки запрашивается объект из Active Directory / LDAP.
-
После получения объекта выполняется синхронизация значений его свойств.
-
-
Если выполняется синхронизация всех объектов:
-
Проверяются все объекты с заполненным DN, но пустым AdSyncID, и выполняется поиск соответствий для объектов в системе и в Active Directory / LDAP.
-
Система получает список ID корней, для которых включена синхронизация. После этого выполняется рекурсивный обход всех дочерних корней и проверяется, принадлежат ли они к списку корней, для которых включена синхронизация.
-
Если принадлежат, то выполняется синхронизация выбранных в настройках объектов.
-
После того, как рекурсивно будет пройден весь лес Active Directory / LDAP, проверяются объекты в системе, у которых выставлен флаг “Синхронизируется независимо от корневых элементов”. Такие объекты синхронизируются как отдельные карточки (см выше).
-
После завершения синхронизации, если не было никаких ошибок, происходит скрытие элементов, которые не были обновлены системой, - такие объекты считаются удалёнными в домене, и поэтому для них устанавливается флаг “Скрывать при выборе”, фактического удаления не происходит.
-
Импорт сотрудников и подразделений из Excel¶
Импорт сотрудников из Excel можно выполнить с помощью команды консольной административной утилиты tadmin. Импорт выполняется по специальным шаблонам, которые можно скачать по ссылкам ниже. Если необходимо выполнить импорт сотрудников с набором каких-то дополнительных полей, то можно воспользоваться универсальным импортом, подготовив данные для импорта самостоятельно.
Для работы с утилитой необходимо в командной строке открыть папку Tools
и выполнить нужную команду.
Note
Для всех параметров команд, описанных ниже, при использовании на Linux системах необходимо символ /
заменить на -
.
Команда для импорта сотрудников:
ImportUsers pathToUserFile [/sd:pathToDepartmentFile] [/a:address] [/i:instanceName] [/u:userName] [/p:password] [/cs:configurationString] [/db:databaseName] [/q] [/nologo]
где pathToUserFile
- путь к файлу xlsx (содержащему список сотрудников и подразделений) или csv (содержащему список пользователей).
pathToDepartmentFile
- путь к файлу csv, содержащему список подразделений. Указывается в дополнение к csv файлу со списком сотрудников, необязательный параметр.
Описание необязательных параметров (указаны в квадратных скобках напротив команды):
-
/a
- Адрес сервиса TESSA. -
/i
- Имя экземпляра сервера. Зарезервировано для будущих нужд, не рекомендуется использовать. -
/u
- Имя пользователя. -
/p
- Пароль. -
/cs
- Имя строки подключения в файле app.json для использования вместо строки по умолчанию. -
/db
- Имя базы данных для использования вместо указанной в строке подключения. -
/q
- На консоль выводятся только ошибки. Если не указать, то все сообщения выводятся на консоль. -
/nologo
- Предотвращает отображение сообщения по авторским правам и номеру версии.
Требования к импортируемым CSV, Excel файлам:
-
При импорте из Excel обязательна книга, на листах которой находятся данные о сотрудниках и подразделениях, а также их связях. Шаблон xslx файла: ImportUsersSample.xlsx.
Note
Лист подразделений может быть пустым, если необходимо импортировать только сотрудников.
Пример импорта:
tadmin ImportUsers ImportUsersSample.xlsx
. -
При импорте из CSV обязателен файл, содержащий сотрудников. Файл с подразделениями передается при необходимости. Шаблоны файлов для импорта сотрудников и подразделений: ImportUsersSample.csv, ImportDepartmentsSample.csv.
Пример импорта:
tadmin ImportUsers ImportUsersSample.csv /sd:ImportDepartmentsSample.csv
.Important
Связывание данных с внешней системой и проверка уникальности производится с помощью поля “Внешний ID”. Если “Внешний ID” не заполнен, то для подразделений производится проверка по названию подразделения, а для сотрудников по логину. Если в какой-то строке списка сотрудников/подразделений не заполнены ни “Внешний ID”, ни логин/название подразделения, то такая строка не будет синхронизирована.
Если какие-то строки из файлов не были импортированы, данная информация отобразится в консоли и добавится в log.txt с указанием номеров строк.
При выполнении импорта/синхронизации необходимо учитывать следующие особенности:
-
Обязательные поля отмечены звездочкой в заголовке шаблонного файла. Если какие-то из обязательных полей не будут указаны, то данная строка из файла не будет загружена, о чем в консоль будет выведена соответствующая информация:
Для подразделения обязательные поля: “№ п/п”, “Родительское подразделение” (если подразделение корневое, то данное поле оставить пустым), “Название организации/подразделения”.
Для сотрудника: “Фамилия”, “Имя”.
-
Для сотрудников с типом входа “Пользователь TESSA” или “Пользователь Windows” помимо указанных выше обязательных полей должен быть указан логин. Если логин не указать - сотрудник не будет загружен, в консоль выведется данная информация:
-
Логин сотрудника должен быть уникален. Если в файле встретится повторяющийся логин или сотрудник с таким логином уже есть в TESSA, то в консоль будет выведена ошибка:
-
Название подразделение должно быть уникально на одном уровне. Два подразделения с одинаковым именем, но имеющие разные родительские подразделения могут быть загружены, например:
Однако если два подразделения имеют одинаковое имя и попытаться их загрузить в одно и тоже родительское подразделение (или если у обоих не указать родительского), например:
Или же, если в TESSA уже есть подразделение с таким же именем и на том же уровне, то в консоль будет выведена соответствующая ошибка:
При этом все корректные строки из файла будут успешно загружены.
-
Если в файле окажется, что для каких-то из подразделений указаны родительские подразделения таким образом, что они “зациклены”, например:
В этом случае в консоль выведется соответствующая ошибка:
При этом все подразделения будут загружены успешно, но для одного из подразделений не пропишется родительское.
-
Временную зону для подразделения или сотрудника можно задать как через “Код зоны”, например “Saratov Standard Time” или “Default”, так и указав смещение в формате (+-H:mm или +-HH:mm), например “+3:00”, или “+03:00”, или -“07:00”. Если указан “Код зоны”, то будет выбрана первая временная зона из справочника временных зон, отсортированного по полю “Идентификатор зоны”, которая содержит в имени искомый текст. Если указано смещение, то будет выбрана первая временная зона из справочника временных зон, отсортированного по полю “Идентификатор зоны”, которая имеет такое же смещение. В обоих случаях, когда указан “Код зоны” или смещение, при установке зоны, для роли будет отключено наследование временной зоны от родителя. Чтобы включить наследование от родителя, то вместо “Кода зоны” или смещения необходимо указать “-1”.
Если временная зона не задана, то поля с временными зонами не будут импортированы, и у новых карточек они будут заполнены временной зоной “По умолчанию”, а в уже имеющихся карточках - останутся без изменений.