Files
license-manager/docs/需求说明书.md
T
2025-07-29 23:19:51 +08:00

137 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 软件授权管理平台需求规格说明书
## 1. 项目概述
### 1.1 项目背景
为了保护软件知识产权,规范软件使用权限,需要开发一个独立的软件授权管理平台,为IoT平台等软件系统提供授权码生成、分发、验证和管理服务。
### 1.2 项目目标
- 建立统一的软件授权管理系统
- 实现基于硬件绑定的授权机制
- 提供在线和离线两种授权模式
- 支持授权状态实时监控和管理
- 提供完整的客户管理功能
### 1.3 系统定位
本系统作为独立的授权管理平台,通过Web管理界面和RESTful API为其他软件系统提供授权服务。
## 2. 系统功能需求
### 2.1 客户管理模块
- 支持客户基本信息的增删改查(姓名、公司、联系人、邮箱、电话、地址、状态、描述)
- 支持客户状态管理(激活/停用)
- 提供客户列表查看、详情查看和JSON API接口
### 2.2 授权生成模块
#### 2.2.1 授权类型支持
- **在线授权码模式**:生成授权码,客户端激活时绑定硬件信息
- **离线许可证模式**:直接生成绑定硬件信息的软件许可证
#### 2.2.2 授权生成功能
- 支持为指定客户生成授权码或软件许可证
- 硬件指纹基于机器序列号、MAC地址、CPU ID生成
- 支持自定义有效期(1-36500天,预设选项:30天、90天、365天、永久)
- 支持功能列表配置和部署模式选择(在线/离线)
- 使用HMAC-SHA256签名和Base64编码保证安全性
- 可扩展额外功能,软件系统可以从生成的license里解析出来,比如{"device_number":20}
### 2.3 授权管理模块
- 显示所有授权记录列表,支持按客户筛选
- 授权状态监控(激活、过期、吊销),支持手动吊销和删除
- 提供授权详细信息查看(客户信息、硬件信息、过期时间、最后心跳时间)
- 实时显示授权过期和激活状态
### 2.4 部署包生成模块
- 为每个授权自动生成ZIP格式部署包
- 包含配置文件(config.yaml)、安装脚本(install.sh)、部署文档等
- 根据客户和授权信息自动命名
### 2.5 在线验证模块
- **授权验证API**:验证授权码和软件许可证,支持硬件指纹验证
- **授权激活API**:支持授权码激活为软件许可证,防止重复激活
- **心跳监控API**:记录客户端活跃时间,提供在线状态统计
- **授权信息查询API**:返回脱敏的授权信息,支持状态和过期检查
### 2.6 系统管理模块
- **用户认证**:管理员登录、状态保持、安全退出
- **权限控制**:Web界面需要认证,API接口独立于管理界面
- **系统监控**:运行状态仪表盘、授权统计信息、资源监控
### 2.7 工具支持模块
- 提供Windows和Linux平台的硬件信息获取工具
- 支持获取机器序列号、MAC地址、CPU ID
- 提供工具下载接口
## 3. 系统非功能性需求
### 3.1 性能需求
- 支持并发用户数不少于100个
- API响应时间不超过2秒
- 数据库连接池管理和查询性能优化
### 3.2 安全需求
- 授权码和软件许可证使用HMAC-SHA256签名
- 硬件指纹绑定防止盗用
- 敏感信息保护和HTTPS传输加密
### 3.3 可靠性需求
- 系统可用性达到99.9%
- 数据备份恢复、异常优雅降级
- 完善的错误处理和日志记录
### 3.4 可扩展性需求
- 支持水平扩展和模块化设计
- 支持多种数据库(当前使用PostgreSQL)
- RESTful API设计便于集成
### 3.5 兼容性需求
- 支持Windows、Linux、macOS操作系统
- 支持主流浏览器和跨平台客户端工具
## 4. 系统架构需求
### 4.1 技术架构
- **架构模式**:B/S架构
- **后端技术**:Go 1.23+,Gorilla Mux路由,Logrus日志
- **数据库**:PostgreSQL 12+,mysql12+
- **前端**:x
- **配置**:YAML格式配置文件
### 4.2 部署要求
- 支持单机部署、Docker容器化部署
- 支持系统服务形式运行
- 提供启动脚本和配置模板
## 5. 数据需求
### 5.1 数据模型
- **客户数据表**:基本信息、状态、创建时间,支持软删除和审计
- **授权数据表**:授权码/许可证信息、客户关联、硬件信息、状态时间、功能列表
### 5.2 数据管理
- 支持定期数据备份和导入导出功能
- 提供数据迁移工具
## 6. 接口需求
### 6.1 Web管理界面
- 客户管理、授权生成、授权列表和详情页面
- 系统仪表盘、用户登录页面
### 6.2 RESTful API接口
- `POST /api/validate` - 授权验证
- `POST /api/activate` - 授权激活
- `POST /api/heartbeat` - 心跳上报
- `GET /api/license/{code}` - 授权信息查询
- `GET /api/customers` - 客户列表API
- `GET /tools/{tool}` - 工具下载
### 6.3 数据格式
- 统一JSON格式数据交换
- 统一错误响应格式
- 支持数据分页和筛选