跳转到主要内容

访问与权限

如何管理用户、用户组并保障应用程序安全。

简介​

安全是任何应用的基础支柱之一。无论是简单的内部应用,还是拥有成千上万外部 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. 系统行为​

  • 自动封锁后,用户将无法访问应用。

  • 默认情况下,系统配置为三次无效尝试后封锁一小时。此时间段过后,尝试将再次放开。

  • 可根据应用需要配置此过程。

通过界面解除封锁​

只有拥有“管理员”权限的用户才能直接从后台解除访问,而无需访问数据库。

  1. 以“查看”模式进入应用菜单,点击 “配置 > 用户” 部分。 用户配置部分

  2. 在 “编辑现有用户” 字段中,选择目标用户。 选择现有用户

  3. 在 “认证历史” 部分,检查“访问”状态是否显示绿色“挂锁”图标; 认证历史部分

  4. 点击 时钟 图标查看用户完整访问列表。 认证历史

  5. 在 “访问” 列中点击绿色挂锁以解除用户封锁。执行此操作后,会显示成功消息。

解除立即生效,允许用户再次尝试登录。

集成认证​

你的应用可能需要更复杂的登录方式,特别是在构建移动应用或集成企业网络时。

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 中的系统:

  • 安全: 保护敏感信息免遭未经授权的访问。

  • 有序: 建立清晰的层级和职责。

  • 可扩展: 准备好通过现代集成实现增长。

保持良好的实践: 定期审查用户组权限并检查访问历史,以保持环境健康。