Аутентификация

Помимо использования сертификатов, пользователи 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"

Где:

  1. pass – укажите пароль пользователя postgres (PostgreSQL);

  2. --e-mail name@domain.com – укажите свой e-mail адрес администратора;

  3. --login admin – укажите свой логин администратора;

  4. --roles admin - назначение роли администратора или user для пользователя;

  5. --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 # Роль

Создание ролей для 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"

Где вместо:

  1. postgres:pass – указать пароль пользователя postgres (PostgreSQL);

  2. email name@domain.com – указать e-mail администратора;

  3. login admin – указать логин администратора;

  4. password admin – указать пароль администратора.

Информация об изменении паролей для ClickHouse и PostgreSQL.