Доступ и разрешения
Как управлять пользователями, группами и обеспечивать безопасность приложения.
Введение
Безопасность — один из основополагающих столпов любого приложения. Будь то простое внутреннее приложение или сложная система с тысячами внешних пользователей через API.
Netuno изначально предлагает надёжную систему контроля доступа и разрешений, предоставляя необходимые инструменты для централизованного и эффективного управления безопасностью. Это устраняет необходимость разрабатывать такие функции с нуля.
Среди основных механизмов безопасности выделяются:
- Управление пользователями и группами.
- Контроль разрешений на данные и управление данными.
- Подробная история попыток аутентификации.
- Автоматическая блокировка по IP после последовательных неудачных попыток доступа.
- Встроенная аутентификация с LDAP, Google, GitHub, Discord и др.
- Модуль JWT-аутентификации для фронтенда.
- И другие возможности...
Управление пользователями
Речь идёт об администрировании отдельных учётных записей, которые получают доступ к платформе. Каждый пользователь, сервис или интеграция, которым нужно войти в систему, должны иметь уникальную учётную запись пользователя.
В разделе управления пользователями Netuno вы полностью контролируете жизненный цикл этих учётных записей:
- Создание: регистрация новых членов команды или клиентов.
- Сопровождение: обновление адресов электронной почты, изменение паролей и регистрационных данных.
- Контроль доступа: быстрая блокировка учётных записей (деактивация) без необходимости удаления исторических данных.
Для получения подробной информации об управлении пользователями см. Руководство по интерфейсу: Пользователи и группы
Управление группами
Правила авторизации определяются с помощью групп, которые устанавливают, к каким меню, формам, сервисам и данным каждый пользователь имеет право доступа или может их изменять. Вместо индивидуальной настройки разрешений лучше определить правила в группе, а затем связать с ней пользователей. Этот подход гарантирует:
- Масштабируемость: лёгкость управления сотнями пользователей.
- Безопасность: меньший риск случайного предоставления ненадлежащего доступа.
- Организация: чёткое разделение между администраторами, менеджерами, супервизорами и обычными пользователями.
Netuno уже включает нативные группы, такие как dev и admin, и предоставляет полную свободу для создания пользовательских групп, соответствующих бизнес-правилам вашего приложения.
Для получения подробной информации об управлении группами см. Руководство по интерфейсу: Пользователи и группы
Управление разрешениями на данные
Чтобы обеспечить функциональность группы или разрешения пользователя, важно определить, какие данные ему разрешено обрабатывать. В Netuno контроль доступа детализирован и применяется непосредственно к формам (таблицам) вашего приложения.
Система использует матрицу разрешений, которая позволяет определить для каждой функции, имеет ли конкретная группа соответствующее разрешение на:
- Чтение: только просмотр записей.
- Запись: вставка и редактирование записей в базе данных.
- Удаление: безвозвратное удаление записей.
Эта гибкость обеспечивает защиту конфиденциальных данных, так как каждый сотрудник имеет доступ только к информации, необходимой для выполнения его задач.
Для получения подробной информации о настройке разрешений на данные см. Руководство по интерфейсу: Пользователи и группы
История аутентификации
Для обеспечения прозрачности и контроля все попытки доступа (успешные или неудачные) регистрируются и могут быть просмотрены в Истории аутентификации.
Система подробно отслеживает и сохраняет информацию о каждой попытке входа пользователя:
- IP-адрес источника: сетевой адрес, с которого пришёл запрос.
- Время: точный момент действия.
- Доступ: был ли доступ разрешён, отклонён или заблокирован.
Обозначение значков доступа
🟩 Замок/check_mark зелёного цвета: означает успех. Пользователь ввёл правильные учётные данные, и вход был разрешён. Также означает, что IP-адрес источника разблокирован.
🟧 Значок с «X» оранжевого цвета: указывает количество неудачных попыток.
🟥 Замок красного цвета: означает блокировку IP-адреса источника.
Автоматическая блокировка
Netuno имеет активную систему безопасности, предназначенную для защиты вашего приложения от атак и несанкционированного доступа.
Когда обнаруживается подозрительная активность, например несколько последовательных попыток неверного входа, система автоматически блокирует IP-адрес источника.
После блокировки IP не сможет выполнять новые запросы в течение определённого периода или до тех пор, пока блокировка не будет снята вручную.
Настройка правил блокировки
Это правило определяется в файлах конфигурации среды вашего приложения «development.json» или «production.json».
1. Найдите файл конфигурации
В корне вашего проекта перейдите в папку config. Откройте файл, соответствующий среде, которую вы хотите защитить:
-
Для разработки:
_development.json -
Для продакшена:
_production.json
2. Вставьте код защиты
В JSON-файле найдите раздел auth. Если его нет, добавьте блок attempts как в примере ниже:
{
...
"auth": {
"attempts": {
"interval": 60,
"maxFails": 3
}
}
}
3. Понимание параметров
-
interval: временное окно в минутах (например: 60 минут = 1 час). -
maxFails: максимальное число неудач, разрешённых в этом интервале до блокировки.
4. Поведение системы
-
После автоматической блокировки пользователь лишается возможности доступа к приложению.
-
По умолчанию система настроена на три неудачные попытки с блокировкой на один час. После этого периода попытки снова разрешаются.
-
Этот процесс можно настроить в соответствии с потребностями вашего приложения.
Разблокировка через интерфейс
Только пользователь с разрешением «Администратор» может разблокировать доступ напрямую через бэк-офис, не обращаясь к базе данных.
-
Откройте меню приложения в режиме «Просмотр» и нажмите на раздел «Конфигурация > Пользователи».

-
В поле «Редактировать существующего пользователя» выберите нужного пользователя.

-
В разделе «История аутентификации» проверьте, отображается ли в статусе «Доступ» значок «Замок» зелёного цвета;

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

-
Нажмите на зелёный замок в столбце «Доступ», чтобы разблокировать пользователя. После этого действия отображается сообщение об успехе.
Разблокировка выполняется сразу, позволяя пользователю снова попытаться войти.
Интегрированная аутентификация
Ваше приложение может требовать более сложных методов входа, особенно если вы создаёте мобильное приложение или интегрируетесь с корпоративной сетью.
Netuno спроектирован так, чтобы быть гибким и интегрироваться с экосистемой вашей организации. Помимо стандартного входа (пользователь и пароль), платформа поддерживает различные рыночные протоколы аутентификации.
Это позволяет реализовать стратегии Single Sign-On (единого входа), при которых пользователи получают доступ к системе с помощью уже имеющихся учётных данных, централизуя управление доступами.
Корпоративные среды: совместимость с каталогами пользователей (например, LDAP и Active Directory), идеально подходит для интранета и внутренних систем.
Социальный вход (OAuth): возможность интеграции с такими провайдерами, как Google, Microsoft, GitHub и другими, что упрощает регистрацию и доступ в публичных приложениях.
Аутентификация по токену (JWT)
В проектах с выделенным фронтендом (например, сайты на React, Vue.js или мобильные приложения) традиционный экран входа Netuno не используется. В таких сценариях применяется стандарт JWT (JSON Web Token).
Netuno предоставляет нативный сервис, который автоматически генерирует и проверяет эти токены, обеспечивая безопасность и эффективность взаимодействия через API.
Для получения дополнительной информации о том, как реализовать и настроить JWT в файлах конфигурации, см. Руководство по JWT-аутентификации
Заключение
Освоение функций безопасности Netuno имеет основополагающее значение для успеха вашего проекта. Правильно используя инструменты управления пользователями, группами и мониторинга истории, вы создаёте среду, которая сочетает защиту данных с удобством использования.
Таким образом, вы гарантируете, что ваша система на Netuno будет:
-
Безопасной: защита конфиденциальной информации от несанкционированного доступа.
-
Организованной: установление чётких иерархий и обязанностей.
-
Масштабируемой: готовой к росту вместе с современными интеграциями.
Соблюдайте лучшие практики: периодически пересматривайте разрешения групп и проверяйте историю доступов, чтобы поддерживать вашу среду в хорошем состоянии.