Skip to content

用户管理与权限分级

用户体系概述

YunyiRADIUS 的用户分为两大体系:

体系说明管理入口认证方式
RADIUS 用户上网终端用户(租户/访客)用户管理PAP/CHAP/EAP/短信
管理操作员后台管理员/运维操作员管理JWT + bcrypt

RADIUS 用户管理

RADIUS 用户是实际使用网络接入服务的人员。

用户列表

在「用户管理」页面查看、搜索所有 RADIUS 用户,支持按用户名、手机号、状态、MAC 地址、IP 地址等条件筛选。

添加用户

参数说明必填示例
用户名登录名,3-32 位zhangsan
密码认证密码,至少 8 位含字母+数字MyPass@2024
真实姓名用户姓名张三
手机号用于短信验证13800138000
邮箱通知邮箱zhangsan@example.com
所属节点多租户隔离node-hotel-A
关联模板RADIUS 策略模板选择 Profile
状态启用/禁用enabled
过期时间账号有效期2025-12-31
在线数限制并发在线设备数,0=无限制3
上行速率 (Kbps)上传带宽10240 (10M)
下行速率 (Kbps)下载带宽20480 (20M)
地址池IP 地址分配池pool-guest
VLAN 绑定VLAN ID100
MAC 绑定绑定 MAC 地址00:11:22:33:44:55
IP 绑定绑定固定 IP10.0.0.100
域名域名后缀hotel-a.com

密码加密机制

用户密码使用 AES-256-GCM 加密存储,密钥从 Web.Secret 派生:

创建/修改密码 → EncryptField(password, key) → DB 存储 "$aes$..."
RADIUS 认证时 → DecryptField(stored, key) → 还原明文 → PAP/CHAP 验证

整个加密解密过程对 RADIUS 认证透明,不影响任何认证协议。

用户认证方式

方式协议说明适用场景
用户名+密码PAP明文密码(设备与 RADIUS 之间加密)标准 WiFi
用户名+密码CHAP质询-响应,不传输明文设备安全要求高
MS-CHAPv2EAP微软 CHAP 增强版Windows 域环境
EAP-PEAPEAP证书+密码双层保护企业 WPA 网络
EAP-TTLSEAP隧道化 TLS高校/运营商
MAC 认证MAC AuthMAC 地址白名单,无密码IoT/打印机
短信验证码PAP手机号+验证码公共 Wi-Fi / 访客
LDAP/ADCHAP企业域账号统一认证办公网络
TOTPPAP+二次基于时间的二次验证高安全场景

批量导入

支持 Excel/CSV 批量导入用户:

  1. 点击「导入」→ 下载模板
  2. 按模板格式填写(必填:用户名、密码;可选:手机号、MAC、带宽等)
  3. 上传文件 → 系统自动加密密码 → 关联默认 Profile

在线会话管理

「会话管理」页面展示当前在线用户:

操作说明
查看详情连接 IP、MAC、NAS 设备、上线时长、流量统计
强制下线向 NAS 发送 Disconnect/CoA 终止会话
CoA 调速率动态调整用户带宽(向 NAS 发送 CoA-Request)
查看日志认证/计费历史记录

用户组与网络节点

RADIUS 用户可归入用户组,用户组在网络节点的「用户组」管理中维护:

  • 一个网络节点包含若干用户组;
  • 用户未指定用户组时,自动归入该节点的默认用户组(默认组不可删除);
  • 套餐与策略可按用户组过滤,实现精细化授权。

用户创建时的「所属节点」用于多租户隔离;更细粒度的分组与权限请使用节点下的用户组。

管理操作员与权限分级

YunyiRADIUS 使用 RBAC (Role-Based Access Control) 权限模型。

系统预置角色

角色等级权限范围适用人员
super (超级管理员)最高全部功能,包括系统配置、操作员管理系统所有者
admin (管理员)除操作员管理和系统设置外的所有功能运维主管
自定义角色灵活按需配置每个 API 的读/写权限值班/客服/财务

角色权限矩阵

功能模块superadmin自定义(示例)
仪表盘✅ 读写✅ 读✅ 读
用户管理✅ 读写✅ 读写✅ 读写
NAS 设备管理✅ 读写✅ 读写✅ 读
会话管理✅ 读写✅ 读写✅ 读
套餐策略✅ 读写✅ 读写✅ 读
接入策略✅ 读写✅ 读写✅ 读
Portal 模板✅ 读写✅ 读写
财务管理✅ 读写✅ 读写
系统设置✅ 读写
操作员管理✅ 读写
备份恢复✅ 读写

创建自定义角色

进入「系统管理 → 角色管理」→ 新建角色:

  1. 设置角色名称(如"客服"、"财务"、"只读")
  2. 为每个功能模块配置权限:
    • 无权限:模块不可见
    • 只读 (read):只能查看列表和详情
    • 读写 (write):可以创建、编辑、删除
  3. 将该角色分配给操作员

API 端点权限精细控制

每个 API 端点都可以独立控制读/写权限:

go
// 示例:财务端点需要 finance 模块的写权限
webserver.ApiPOST("/finance/recharge", manualRecharge, requireWrite("finance"))
webserver.ApiGET("/finance/payments", listPayments, requireRead("finance"))

操作员账号安全

安全措施说明
bcrypt 密码哈希不可逆加密,原始密码不存储
JWT Token登录后签发,默认 2 小时有效期
HttpOnly Cookieyr_token 仅服务端可读,防 XSS
SameSite=Lax防 CSRF 跨站请求伪造
登录速率限制同一 IP 5 次/3 分钟,防爆破
操作日志所有增删改操作记录到审计日志

操作员管理操作

进入「系统管理 → 操作员管理」:

操作说明权限要求
添加创建新操作员账号super
编辑修改角色、手机号、状态super
禁用/启用临时停用操作员super
重置密码设置新密码(原密码不可见)super
查看日志查看操作员的操作记录super/admin

用户充值退款管理

预付费模式

用户余额扣减,余额不足自动断网:

  1. 管理员充值:「财务管理 → 充值」,输入金额和备注
  2. 用户自助充值:用户门户在线支付(支付宝)
  3. 余额查询:在用户详情页查看余额和流水

退款流程

  1. 「财务管理 → 退款」
  2. 输入退款金额(不能超过余额)
  3. 填写退款原因
  4. 确认后余额扣减并记录流水

套餐变更

  1. 用户详情页 → 「变更套餐」
  2. 选择新套餐计划
  3. 系统自动计算差价
  4. 确认后立即生效

用户状态流转

注册(新建) ──→ 启用(enabled) ──→ 正常使用

                    ├──→ 过期(expired) ──→ 无法认证

                    ├──→ 禁用(disabled) ──→ 无法认证

                    └──→ 余额不足 ──→ 自动断网

YunyiStudio 版权所有