ym88659208ym87991671
Автоматическое управление лицензиями | Документация для разработчиков

Автоматическое управление лицензиями

Обновлено 20 февраля 2026

Если в проекте много пользователей, то управлять лицензиями вручную неудобно.

В SaluteJazz можно настроить автоматическое управление лицензиями. Лицензии будут назначены или отнимутся в зависимости от заранее заданных условий, которые зависят от атрибутов пользователей.

Основные настройки

Для того, чтобы настроить автоматическое назначение лицензий нужно:

  1. Добавить передачу нужных атрибутов:
  • в access_token, если пользователи создаются через SSO или через интеграцию с каталогом пользователей;
  • в правила синхронизации, если пользователи создаются через Jazz Sync Tool.
  1. Сообщить в службу поддержки SaluteJazz названия атрибутов, на которые завязывается логика управления лицензиями.
  2. Передать в службу поддержки SaluteJazz описание логики, в соответствии с которой будет происходить управление лицензиями.

Атрибуты пользователей

Пользователи могут быть созданы различными путями:

  • вручную через кабинет администратора SaluteJazz;
  • частично через SSO;
  • через интеграцию с каталогом пользователей, например, AD (только для OnPrem инсталляций);
  • через Jazz Sync Tool (только для Cloud инсталляций).

Если пользователь создается через кабинет администратора SaluteJazz, то у пользователя будет ограниченный набор атрибутов:

  • фамилия;
  • имя;
  • отчество;
  • email;
  • роль;
  • тип — пользователь (user) или переговорная комната (room).

Если пользователь заводится через SSO, синхронизируется из каталога пользователей организации или посредством Jazz Sync Tool, то у такого пользователя могут быть дополнительные атрибуты, в зависимости от соответствующих настроек:

Передача групп пользователя

Кроме пользовательских атрибутов у пользователя могут быть еще группы, которые также можно передать в access token и SaluteJazz будет их обрабатывать так же, как и пользовательские атрибуты.

В AD есть несколько способов передать группы в токен. Мы рекомендуем использовать следующий вариант:

  1. Запустите AD FS Management на сервере AD FS.
  2. В разделе AD FS > Application Groups выберите нужную группу, щелкнув дважды левой кнопкой мыши (или правая кнопка мыши > Properties).
  3. В открывшемся окне выберите ADFS из раздела Web API.
  4. В открывшемся окне выберите правило или нажмите Add Rule (если ранее еще не настраивали передачу пользовательских атрибутов).
  5. Выберите в левом столбце атрибутов Token-Groups > Unqualified Names.
  6. Выберите в правом столбце утверждений Group.
  7. Нажмите Apply и OK.

Пример описания правил

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

Допустим есть пользователь со следующими атрибутами:

  • role (роль): ["speaker"];
  • department (отдел): "hr";
  • position (должность): "HR Manager";
  • group (группа): "SaluteJazz".

Логика применения правил:

  1. SaluteJazz перед началом применения правил считает, что у пользователя не должно быть никаких лицензий.
  2. SaluteJazz просматривает все правила сверху вниз. Если правило применимо к пользователю, то SaluteJazz добавляет к текущему состоянию пользователя соответствующую запись или удаляет ее в соответствии с правилами.
  3. После прохода по всем правилам в текущем состоянии остаются те лицензии, которые должны быть у пользователя.
  4. Далее SaluteJazz выравнивает реальное состояние пользователя с текущим, которое должно быть:
  • Если у пользователя не должно быть каких-то лицензий, но они были назначены ранее в автоматическом режиме, то такие лицензии отнимаются у пользователя.
  • Если у пользователя должны быть какие-то лицензии, но ранее автоматически не были назначены, то такая лицензия назначится пользователю.

Пример

Текущее состояние лицензий пользователя: []

Правило 1. Добавить премиум

IF group == "SaluteJazz", THEN
должна быть лицензия "Премиум" (правило применимо к пользователю → текущее состояние лицензий: ["Премиум"])

Правило 2. Добавить вебинар500

IF department == "hr" AND (position == "head_of_hr" OR role == "speaker"),THEN
должна быть лицензия "Вебинар500" (правило применимо к пользователю → текущее состояние лицензий: ["Премиум", "Вебинар500"])

Правило 3. Добавить вебинар1000

IF department == "hr" AND (position == "head_of_hr" OR role == "speaker"),THEN
должна отсутствовать лицензия "Премиум" (правило НЕ применимо к пользователю → текущее состояние лицензий не меняется: ["Премиум", "Вебинар500"])

Правило 4. Убрать премиум

IF department == "hr" AND (position == "head_of_hr" OR role == "speaker"), THEN
должна отсутствовать лицензия "Премиум" (правило применимо к пользователю → текущее состояние лицензий: ["Вебинар500"])

После применения всех подходящих пользователю правил у пользователя должна быть только лицензия "Вебинар500":

  • SaluteJazz проверяет, какие лицензии ранее были назначены пользователю автоматически.
  • Если у пользователя есть автоматически назначенные лицензии, которых быть не должно (например, у пользователя ранее не было роли speaker и ему в прошлый раз в соответствии с правилами, назначился премиум), то все такие лицензии отнимаются у пользователя.
  • После отнятия всех лишних лицензий SaluteJazz назначает требуемые лицензии пользователю, таким образом выравнивая реальное состояние пользователя с требуемым правилами

Допустимые правила сравнения

ОператорОписаниеПрименение
к скалярным полям
Применение
к массивам
Особенности
==РавенствоПоле точно равно значениюЛюбой элемент массива точно равен значениюРаботает со строками, числами, булевыми значениями
<>НеравенствоПоле не равно значениюНи один элемент массива не равен значениюВозвращает false только если хотя бы один элемент совпадает
ANDЛогическое ИN/AN/AОбъединяет несколько условий; все должны быть истинны
ORЛогическое ИЛИN/AN/AОбъединяет несколько условий; хотя бы одно должно быть истинно
INВходит в массивДля строк: регистронезависимое сравнение подстрокДля строк: точное регистронезависимое сравнениеРаботает как со скалярными полями, так и с массивами
NOT INНе входит в массивПоле не равно ни одному из значений в спискеНи один элемент массива не равен ни одному из значений в спискеОбратная операция к IN
REGEXРегулярное выражениеПоле соответствует шаблонуСрабатывает если в массиве есть хоть один соответствующий элементТолько для строковых полей
EXISTSСуществование атрибутаПроверяет наличие поля в документеПроверяет наличие поля в документеПрименяется к наличию атрибутов.
С помощью оператора можно отобрать пользователей,
у которых, например, нет ни одной группы или наоборот, отобрать пользователей,
у которых указан отдел

Ограничения и особенности

Ниже описаны принципы работы автоматического назначения лицензий пользователям в SaluteJazz, ограничения системы и порядок применения правил.

Приоритет правил

  1. Учитываются все подходящие правила для каждого пользователя.
  2. Очередность правил важна: если пользователь подходит под несколько правил, то учтутся все подходящие правила в указанном порядке.

Применение правил

Правила применяются после создания пользователя в SaluteJazz или редактировании информации о нем.

Ограничения

Лицензии, измененные вручную, игнорируются автоматическими правилами:

  1. Удаление лицензий в автоматическом режиме возможно только в том случае, если эти лицензии ранее были добавлены также в автоматическом режиме.
  2. Если пользователь получил лицензию в автоматическом режиме, а потом эту лицензию отобрали в ручном режиме через кабинет администратора SaluteJazz, то повторно такая лицензия назначаться не будет, даже если пользователь подходит под соответствующее правило.

Включение автоназначения уже созданным пользователям

Если автоматическое управление лицензиями включили после того, как на проекте завели пользователей, то для того, чтобы пользователям стали назначаться лицензии нужно, чтобы с этими пользователями произошли какие-то изменения.

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней

ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей. Вы можете запретить сохранение cookie в настройках своего браузера.