Наборы пользователей

Наборы пользователей

Набор пользователей — локальная база учётных записей кластера балансировки. В нём лежат логины, пароли, группы и произвольные атрибуты, а профиль аутентификации сверяет с ними то, что прислал клиент.

Набор — отдельный объект кластера, а не часть профиля. Один набор закрывает сколько угодно профилей, и учётные записи не копируются в каждый из них.

Когда нужен набор

Набор нужен там, где клиент входит по логину и паролю, которые заведены в системе 5А. Это отдельные служебные учётные записи приложений, тестовые и аварийные доступы, небольшой круг сотрудников.

Набор не нужен там, где клиент приходит уже с подписанным токеном от внешнего поставщика идентификации — Keycloak, Azure AD, Okta. Человек вошёл в чужую систему и повторно не авторизуется: пароли в системе 5А не хранятся, балансировщик проверяет только подпись токена модулями jwt.

⚠️

Хеши паролей передаются на узлы тех конфигураций, где сервис работает через профиль со ссылкой на этот набор, и записываются в файл секретов на узле. Набор, на который не ссылается ни один профиль, на узлы не передаётся.

Что задаёт набор

  • Название и Описание — см. Название и описание.
  • Учетные записи — сами логины. В каждой записи задаются Логин, Пароль, Группы и пары «Атрибут → Значение».

Пустой набор сохранить нельзя: система потребует добавить хотя бы одну учётную запись. Логины внутри набора не повторяются, и запись с дублирующим логином не сохранится.

Учётная запись

Все поля, отмеченные звёздочкой, являются обязательными для заполнения.

  • Логин — имя, по которому клиент входит. Уникально в пределах набора.
  • Пароль — пароль учётной записи. Текстом в системе 5А он не хранится: в наборе лежит хеш, и обратно пароль восстановить нельзя. Сменить его можно, задав новый. Если поле оставить пустым при правке существующей записи, пароль останется прежним, а не будет удалён.
  • Атрибут — имя атрибута учётной записи: почта, табельный номер, должность. Внутри одной записи имена атрибутов не повторяются.
  • Значение — значение атрибута. Может быть пустым.

В форме учётной записи поле Пароль закрыто, а в таблице учётных записей его колонка всегда показывает *******.

Смена логина создаёт новую учётную запись. Учётная запись опознаётся по логину, поэтому запись со старым логином исчезает, а с новым появляется вновь — с пустым паролем, если его не задали. Пароль при смене логина обязателен, иначе система потребует его ввести.

Следствие то же: переименование логина отвязывает клиента от групп и атрибутов, заданных прежней записи. Их задают заново.

Значение атрибута само по себе на клиентский сервер не передаётся. Передача задаётся в профиле аутентификации на вкладке Дополнительно — соответствием «имя атрибута → имя заголовка». Заголовок с атрибутом придёт на бэкенд только при полном совпадении обоих имён, поэтому имя атрибута в наборе, в утверждениях токена и в идентификационных заголовках должно совпадать.

Группы

Группы — свободные имена, заданные администратором. По ним привязка профиля решает, кого пускать на сервис: можно открыть доступ всем сотрудникам, а можно только одному отделу.

Списка групп с описаниями в системе нет. Имя группы, указанное прямо в списке, помечается меткой «Новая», пока его не встретили ни в одной учётной записи или в требовании привязки; после этого оно появляется в выпадающих списках везде, где выбирают группу, и метка исчезает.

Отдельного удаления группы в интерфейсе нет. Группа исчезает из выпадающих списков сама, когда её больше нигде не используют: уберите её из всех учётных записей и из поля Разрешенные группы во всех привязках — и имя пропадёт из списков.

Имя группы не длиннее 255 символов, латиница и кириллица равноправны. Пустое имя недопустимо, запятая также запрещена. Группы передаются на бэкенд через запятую в заголовке X-Auth-Groups, поэтому имя группы, содержащее запятую, делает разбор заголовка неоднозначным: строку «Продажи, EMEA» невозможно отличить от двух отдельных групп.

Одна группа может входить в несколько учётных записей — это допустимо, потому что список имён общий для всего кластера. Но внутри одной записи повтор групп невозможен: система потребует убрать его перед сохранением набора.

Как связать набор с профилем

  1. Откройте Главная → <Кластер> → Аутентификация → Наборы пользователей и нажмите Добавить набор.
  2. Задайте Название и внесите учётные записи кнопкой Добавить учетную запись.
  3. Нажмите Сохранить.

Ссылка на набор задаётся в профиле — в модуле local_db блока Проверка. В форме модуля есть ссылки Создать набор и Открыть набор: набор можно создать, не покидая профиль, и сразу посмотреть, сколько в нём учётных записей.

Изменения подхватываются автоматически: профиль ссылается на набор, а не на копию записей. Добавили сотрудника в набор — он сразу может войти на все сервисы, где этот набор выбран. Переименование набора профиля не касается.

Удаление набора

Набор, на который ссылается профиль, удалить нельзя. Сначала необходимо удалить ссылку — замените набор в профиле или удалите сам профиль.

В форме набора есть раздел Используется в профилях: он показывает, какие профили на этот набор ссылаются. Пустой список означает, что набор можно удалять.