Аутентификация
Помимо использования сертификатов, пользователи KOMRAD как метод аутентификации используют логин и пароль для входа в систему.
Есть несколько способов добавления пользователей и задания им паролей.
Роли
Доступные роли:
-
Администратор - доступ к любым вкладкам системы. Возможность настраивать коллекторы, пользовательские поля, плагины, загружать сертификаты, настраивать уведомления, все действия относительно других пользователей, доступ к настройкам ГосСОПКА.
-
Пользователь - доступ ко всем вкладкам системы, кроме "Администрирование". Разрешены все действия с фильтрами, директивами, активами, виджетами, событиями, инцидентами.
Добавление пользователей в UI
Во вкладке "Администрирование"→"Пользователи" нажатием на +
Заполните обязательные поля:
-
Фамилия
-
Имя
-
Логин
-
Email
-
Пароль
Сложность пароля будет зависеть от значения указанного в конфигурационном файле сервера аутентификации.
MinPasswordEntropyBits: 70
70
является энтропией пароля.
Какое значение энтропии следует использовать?
Вы принимаете решение, какую сложность пароля следует использовать, мы считаем наиболее оптимальным диапазон значений в районе 50-70
.
Таблица энтропии пароля
Энтропия |
Строчные буквы |
Заглавные + строчные + цифры |
заглавные + строчные + цифры + спецсимволы |
120 |
20 |
||
118 |
25 |
18 |
|
116 |
|||
114 |
19 |
||
112 |
24 |
17 |
|
110 |
|||
108 |
23 |
18 |
|
106 |
16 |
||
104 |
22 |
||
102 |
17 |
||
100 |
|||
98 |
21 |
15 |
|
96 |
16 |
||
94 |
20 |
||
92 |
14 |
||
90 |
19 |
15 |
|
88 |
|||
86 |
13 |
||
84 |
18 |
14 |
|
82 |
|||
80 |
17 |
||
78 |
13 |
12 |
|
76 |
16 |
||
74 |
|||
72 |
12 |
11 |
|
70 |
15 |
||
68 |
|||
66 |
14 |
11 |
10 |
64 |
11 |
||
62 |
13 |
||
60 |
10 |
9 |
|
58 |
|||
56 |
12 |
||
54 |
9 |
||
52 |
11 |
8 |
|
50 |
|||
48 |
10 |
8 |
|
46 |
7 |
||
44 |
|||
42 |
9 |
7 |
|
40 |
6 |
При этом мы исключаем возможность использования односложных паролей.
С повторяющимися символами, такими как aaaaaaaaaaaaa
, или 111222`
, мы изменяем длину последовательности, чтобы она считалась не более чем 2.
aaaa
имеет длину 2
111222
имеет длину 4
Общие последовательности
Обычные последовательности длины три или более считаются за длину 2.
-
12345
имеет длину 2 -
765432
имеет длину 2 -
abc
имеет длину 2 -
qwerty
имеет длину 2
Последовательности проверяются по принципу с начала до конца и в обратном порядке. Вот последовательности, которые мы реализовали на данный момент, и они не чувствительны к регистру:
-
0123456789
-
qwertyuiop
-
asdfghjkl
-
zxcvbnm
-
abcdefghijklmnopqrstuvwxyz
Добавление пользователя через консоль
Добавить пользователя через консоль можно следующей командой:
sudo pauthctl user add --email name@domain.com --login admin --roles admin --password admin --conn "postgresql://postgres:pass@localhost:5432/pauth-preferences"
Где:
-
pass – укажите пароль пользователя postgres (PostgreSQL);
-
--e-mail
name@domain.com
– укажите свой e-mail адрес администратора; -
--login
admin
– укажите свой логин администратора; -
--roles
admin
- назначение роли администратора илиuser
для пользователя; -
--password
admin
– укажите свой пароль администратора.
Удалить пользователя полностью нельзя, его "следы" останутся в системе. Например, если пользователь, ответственный за инцидент, был удалён, его имя всё равно останется в графе "Ответственный". |
Добавление пользователей LDAP
Укажите настройки вашего LDAP сервера.
Для редактирования конфигурационного файла выполните команду:
sudo nano /etc/echelon/komrad/pauth-server.yaml
kind: ldap priority: 20 enabled: true #включить (false для отключения) ldap: url: ldap://echelon.lan:389 # адрес подключения к домену; search-dn: search-dn # отличительное имя пользователя, доступное только для чтения, которое будет использовано для аутентификации с LDAP-сервером, чтобы извлечь информацию пользователя; search-password: search-password # пароль пользователя, доступный только для чтения, который будет аутентифицирован с LDAP-сервером для того, чтобы извлечь информацию пользователя; base-dn: dc=echelon,dc=lan # домены первого и второго уровня uid: sAMAccountName # ключ входа для использования в качестве идентификатора пользователя. Если передать null как значение данной опции, тогда по умолчанию будет использоваться sAMAccountName; scope: 2 глубина поиска, возможны три варианта: Base (0) — поиск только по указанному в запросе объекту. В результате поиска возвращается либо один объект, либо ничего. Данная область, как правило, используется для проверки наличия объекта. One level (1) — поиск только по дочерним объектам указанного объекта. Поиск по вложенным объектам не производится, также в результаты поиск не попадает сам базовый объект. Subtree (2) — поиск по всем дочерним объектам, включая вложенные. connection-timeout: 30 # таймаут LDAP соединения, в секундах, по умолчанию 30; tls: enabled: false # включение шифрования передачи данных LDAP протокола true; group-conf: filter: objectclass=Group # фильтр для выбора класса или категории. https://social.technet.microsoft.com/wiki/contents/articles/8077.active-directory-ldap-ru-ru.aspx membership-attribute: memberof # атрибут допустимые значения (Mobile/SN/GivenName/Email/Mail/CN/UID) group-roles: - group-to-org-role: group-dn: cn=dep_development,cn=Groups,dc=echelon,dc=lan # Путь до группы org-role: admin # Роль
Перезапустите pauth-server.
Создание ролей для ClickHouse и PostgreSQL
Здесь описано создание ролей администратора и пользователя.
Действия (каждая отдельная команда пишется в одну строчку):
Создать роль администратора:
sudo pauthctl role add admin --migrate --conn "postgresql://postgres:pass@localhost:5432/pauth-preferences"
Об успешном добавлении роли admin в строке сервиса будет строка:
INFO roles added {"role_names": ["admin"], "status": "success"}
Создать роль пользователя:
sudo pauthctl role add user --conn "postgresql://postgres:pass@localhost:5432/pauth-preferences"
Об успешном добавлении роли user в строке сервиса будет строка:
INFO roles added {"role_names": ["user"], "status": "success"}
Создать учетную запись администратора:
sudo pauthctl user add --email name@domain.com --login admin --roles admin --password admin --conn "postgresql://postgres:pass@localhost:5432/pauth-preferences"
Где вместо:
-
postgres:pass – указать пароль пользователя postgres (PostgreSQL);
-
email name@domain.com – указать e-mail администратора;
-
login admin – указать логин администратора;
-
password admin – указать пароль администратора.
Информация об изменении паролей для ClickHouse и PostgreSQL.