Управление пользователями и ролями
Управление пользователями включает создание и настройку учетных записей, назначение ролей и прав доступа, а также блокировку и удаление учетных записей. Для каждого администратора рекомендуется создать персональную учетную запись – это позволяет разграничить полномочия пользователей и обеспечить корректное ведение журнала аудита.
Доступные пользователю функции определяются назначенной ему ролью. Учетная запись 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).

Рис. 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, выполнить следующие действия:
- Выполнить команду:
htpasswd -nBC 10 "" <Новый пароль> | tr -d ':'
где <Новый пароль> – это новый пароль пользователя «root». В консоли терминала появится строка с хэш-последовательностью;
- Выполнить на машине с сервером аутентификации следующую команду:
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'"
где <Хэш> – хэш-последовательность, полученная на предыдущем шаге;
- В результате выполнения команды должна вернуться строка: UPDATE 1;
Примечание. Если в результате выполнения последней команды также вернется предупреждение вида could not change directory to "<Директория>": Отказано в доступе, следует проигнорировать его, так как на результат выполнения команды это не влияет.
- Пароль пользователя «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'".