Перейти к основному содержимому

Управление пользователями и ролями

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

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

Управление ролями​

В NTA eSensor для разграничения прав пользователей применяется ролевая модель доступа. Права пользователя определяются назначенными ему ролями и входящими в состав этих ролей разрешениями.

Ролевая модель включает два взаимосвязанных набора ролей:

  • роли Pauth определяют права пользователя на выполнение операций, предоставляемых сервером Pauth;

  • роли СУС определяют права пользователя на выполнение операций в СУС.

Роли Pauth и СУС сопоставляются по имени. Если в Pauth и СУС существуют роли с одинаковым именем, пользователю, которому назначена соответствующая роль Pauth, автоматически предоставляются разрешения одноименной роли СУС.

Примечание. Пользователям назначаются только роли Pauth. Роли СУС непосредственно пользователям не назначаются и используются системой при проверке разрешений на выполнение операций в СУС.

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

В веб-интерфейсе Pauth недоступные пользователю операции блокируются либо соответствующие им элементы интерфейса не отображаются.

Роли по умолчанию​

После установки системы в Pauth предусмотрены следующие роли:

  • admin (администратор);

  • user (оператор).

Пользователь с ролью admin обладает всеми разрешениями на выполнение операций в Pauth и СУС.

Роль user предназначена для выполнения основных операций по просмотру и работе с данными системы. Набор доступных операций определяется разрешениями, входящими в состав данной роли.

В СУС по умолчанию создаются следующие роли:

  • user – оператор;

  • demo – техническая роль;

  • sensor-registrator – техническая роль;

  • git-hooks-runner – техническая роль.

Отдельная роль admin в СУС отсутствует.

Для одного пользователя может быть назначено несколько ролей Pauth. Исключением является встроенная учетная запись root.

Управление ролями Pauth​

Для ролей Pauth доступны следующие операции:

  • создание роли;

  • просмотр существующих ролей;

  • настройка разрешений роли;

  • удаление роли;

  • назначение ролей пользователям;

  • снятие ролей с пользователей;

  • настройка роли, назначаемой новым пользователям по умолчанию.

Создание роли Pauth

Создание новой роли Pauth выполняется с использованием API сервера аутентификации и авторизации пользователей.

Для создания роли выполните следующие действия:

  • открыть браузер;

  • в адресной строке ввести путь к сервису https://<Адрес_Pauth>:2020/swagger, где <Адрес_Pauth> – адрес, по которому доступен сервер аутентификации;

  • в разделе «UserService» выбрать метод: POST /roles;

  • в параметрах запроса следует указать имя создаваемой роли;

  • нажать кнопку «Execute» для выполнения запроса.

Настройка разрешений роли Pauth

Создание роли не предоставляет пользователю права на выполнение операций. Для созданной роли необходимо дополнительно определить разрешения на действия в Pauth. Разрешения задаются в конфигурационном файле Pauth в параметре Rules.

Чтобы назначить роли необходимые разрешения, выполните следующие действия:

  • открыть терминал Astra Linux;

  • командой sudo nano /opt/echelon/pauth/config.yaml открыть конфигурационный файл config.yaml;

  • в конфигурационном файле найти параметр Rules;

  • внести данные о назначенных разрешениях для созданной роли;

  • сохранить внесенные изменения;

  • для применения измененной конфигурации следует перезапустить программный компонент Pauth командой:

sudo systemctl restart pauth-server.

В параметре Rules для каждой роли задается перечень разрешенных методов Pauth. Имя роли указывается в качестве отдельного элемента, а ниже приводится список доступных для нее разрешений.

Например, для назначения роли customrole разрешений на просмотр списка пользователей и изменение информации о пользователе добавьте следующие строки:

admin:
- "/.*"
user:
- "/echelon.pauth_server.user.v1.UserService/ChangePassword"
customrole:
- "/echelon.pauth_server.user.v1.UserService/List"
- "/echelon.pauth_server.user.v1.UserService/ChangeInfo".

В данном примере роли customrole назначены следующие разрешения:

  • UserService/List – получение списка пользователей;

  • UserService/ChangeInfo – изменение информации о пользователе.

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

Просмотр ролей Pauth

Просмотр ролей pauth осуществляется через запросы к базе Echelongres.

Для просмотра ролей следует выполнить следующие действия:

  • открыть терминал Astra Linux;

  • выполнить запрос командой: sudo runuser -u postgres -- /opt/echelongres/pg/bin/psql -h /run/echelongres -d pauth-preferences -c "SELECT * FROM preferences.roles";

  • ввести пароль учетной записи для подтверждения операции;

  • список ролей отображается в табличной форме (рис. 9).

Список ролей сервиса Pauth

Рис. 9 – Список ролей сервиса Pauth

Идентификатор роли из столбца id используется при выполнении отдельных операций управления ролями.

Назначение ролей пользователям

Назначение ролей пользователю выполняется с использованием API Pauth.

Для добавления одной или нескольких ролей к уже назначенным используется запрос:

POST /users/{ID}/roles.

При выполнении запроса существующие роли пользователя сохраняются, а указанные роли добавляются к ним.

Для полной замены набора ролей пользователя используется запрос:

POST /users/{ID}/roles:update.

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

Примечание. Через веб-интерфейс Pauth для назначения доступны стандартные роли admin и user. Пользовательские роли, созданные дополнительно, при назначении через веб-интерфейс могут не отображаться. Для назначения таких ролей следует использовать API Pauth.

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

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

Для удаления роли необходимо выполнить команду:

sudo runuser -u postgres -- /opt/echelongres/pg/bin/psql \-h /run/echelongres \-d pauth-preferences \-c "DELETE FROM preferences.roles WHERE id = <ID>".

где <ID> – идентификатор удаляемой роли.

При успешном выполнении операции выводится сообщение:

DELETE 1

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

Управление ролями СУС​

Управление ролями и разрешениями СУС выполняется посредством GraphQL API.

Для ролей СУС доступны следующие операции:

  • просмотр списка ролей;

  • просмотр разрешений роли;

  • создание роли;

  • добавление разрешений роли;

  • удаление разрешений роли;

  • удаление роли.

Для разрешений СУС доступны:

  • просмотр существующих разрешений;

  • добавление новых разрешений.

Примечание. После установки в СУС могут отсутствовать разрешения, которые не используются ролями по умолчанию. Перед назначением такого разрешения пользовательской роли его необходимо создать в СУС.

Просмотр разрешений СУС

Для просмотра существующих разрешений следует выполнить GraphQL запрос:

query permissions {
permissions(first: 500, orderBy: {field: OBJECT, direction: ASC}) {
edges { node { id object action } }
}
}.

Для каждого разрешения отображаются:

  • id – идентификатор разрешения;

  • object – объект системы, к которому относится разрешение;

  • action – разрешенное действие.

Добавление разрешения СУС

Создание разрешения выполняется запросом:

mutation addPermission { addPermission( object: <object>, action: <action> ) { id object action } }.

Для каждого разрешения отображаются:

  • <object> – объект системы;

  • <action> – действие, например CREATE, GET или UPDATE.

Просмотр списка ролей СУС и их разрешений

Для просмотра списка ролей и назначенных им разрешений следует выполнить запрос:

query roles{roles(first: 50, orderBy: {field: NAME, direction: ASC}, search: "") { edges { node { id name description permissions { id object action } } }
pageInfo { hasNextPage endCursor }}}.

Для просмотра информации о роли с конкретным id следует выполнить запрос:

query role{ role(id: "<role_id>") { id name description permissions { id object action } } }.

Добавление ролей СУС

Для создания роли следует выполнить запрос:

mutation addRole { addRole(
input: { name: "<role_name>",
description: "<descr>", permissionIDs: [<perm_IDs>]
} ) { id name description permissions {
id object action } }}.

где:

  • <role_name> – имя создаваемой роли;

  • <descr> – описание роли;

  • <perm_IDs> – идентификаторы разрешений, назначаемых ролей.

Для автоматического предоставления пользователю разрешений СУС имя роли должно совпадать с именем соответствующей роли Pauth.

Добавление разрешений для существующей роли

Для добавления разрешений существующей роли следует выполнить запрос:

mutation addPermissionsToRole{ addPermissionsToRole(roleID: "<role_id>", permissionIDs: [<perm_IDs>]) { id name permissions { id object action } } }.

Удаление разрешений для существующей роли

Для удаления разрешений существующей роли следует выполнить запрос:

mutation { deletePermissionsFromRole(roleID: "<role_id>", permissionIDs: [<perm_IDs>]) { id name permissions { id object action } } }.

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

Для удаления существующей роли следует выполнить запрос:

mutation deleteRole{ deleteRole(id: "<role_id>") }.

Изменение пароля пользователя «root» и его разблокирование​

Для изменения пароля пользователя «root» необходимо с помощью терминала машины, с которой производилась установка eSensor, выполнить следующие действия:

  1. Выполнить команду:
htpasswd -nBC 10 "" <Новый пароль> | tr -d ':'

где <Новый пароль> – это новый пароль пользователя «root». В консоли терминала появится строка с хэш-последовательностью;

  1. Выполнить на машине с сервером аутентификации следующую команду:
sudo runuser -u postgres -- /opt/echelongres/pg/bin/psql -h /run/echelongres -d pauth-preferences -c "UPDATE preferences.users SET password_hash = '"'<Хэш>'"' WHERE login = 'root'"

где <Хэш> – хэш-последовательность, полученная на предыдущем шаге;

  1. В результате выполнения команды должна вернуться строка: UPDATE 1;

Примечание. Если в результате выполнения последней команды также вернется предупреждение вида could not change directory to "<Директория>": Отказано в доступе, следует проигнорировать его, так как на результат выполнения команды это не влияет.

  1. Пароль пользователя «root» успешно изменен.

По умолчанию минимально допустимая длина пароля составляет восемь символов. Изменение данного ограничения выполняется в конфигурационном файле classification.config в соответствии с «Конфигурационные файлы».

Как и в случае с другими учетными записями, при превышении максимального количества неудачных попыток входа из-под «root», система заблокирует данную учетную запись. Для ее разблокирования необходимо выполнить следующую команду на машине с Echelongres:

sudo runuser -u postgres -- /opt/echelongres/pg/bin/psql -h /run/echelongres -d pauth-preferences -c "UPDATE preferences.users SET state = 'STATE_ACTIVE' WHERE login = 'root'".