4.6 KiB
4.6 KiB
软件授权控制系统使用说明
概述
本系统实现了基于数字签名的软件授权控制功能,支持离线授权验证和多种授权类型。
文件结构
backend/
├── devices/utils/license_manager.py # 授权管理核心模块
├── tools/license_generator.py # 授权文件生成工具
├── license_public_key.pem # 授权验证公钥
├── sample_license.json # 示例授权文件
├── dev_license.json # 开发测试授权文件
├── config.ini # 配置文件(包含[LICENSE]节)
└── LICENSE_README.md # 本说明文档
配置说明
1. 配置文件设置
在 config.ini 中的 [LICENSE] 节配置授权相关参数:
[LICENSE]
# 授权文件路径
path = dev_license.json
# 公钥文件路径
public_key = license_public_key.pem
# 授权过期宽限期(天)
grace_days = 7
# 开发模式(跳过授权检查)
dev_mode = True
2. 开发模式
- 设置
dev_mode = True可跳过授权检查,便于开发调试 - 生产环境必须设置
dev_mode = False
授权类型
1. 试用版 (trial)
- 功能限制:录制时长30分钟,最多10个会话
- 适用于产品试用
2. 标准版 (standard)
- 功能:完整录制和导出功能
- 限制:最多1000个会话,10个用户
- 适用于中小型机构
3. 专业版 (professional)
- 功能:所有功能无限制使用
- 包含高级分析功能
- 适用于大型机构
使用流程
1. 生成密钥对(首次部署)
cd backend
python tools/license_generator.py --generate-keys --private-key private_key.pem --public-key license_public_key.pem
2. 生成授权文件
# 生成标准版授权
python tools/license_generator.py \
--private-key private_key.pem \
--license-id "STANDARD-2025-001" \
--license-type standard \
--company-name "天宏博科技" \
--contact-info "contact@example.com" \
--expires-days 365 \
--output customer_license.json
# 生成试用版授权
python tools/license_generator.py \
--private-key private_key.pem \
--license-id "TRIAL-2024-001" \
--license-type trial \
--company-name "试用客户" \
--expires-days 30 \
--output trial_license.json
3. 部署授权文件
- 将生成的授权文件复制到客户端
- 更新
config.ini中的path参数指向授权文件 - 确保
dev_mode = False - 重启应用
API接口
1. 获取授权信息
GET /api/license/info
响应示例:
{
"success": true,
"data": {
"valid": true,
"message": "授权有效",
"license_type": "standard",
"license_id": "STANDARD-2024-001",
"expires_at": "2025-12-31T23:59:59Z",
"features": {
"recording": true,
"export": true,
"max_sessions": 1000
},
"machine_id": "ABC123..."
}
}
2. 生成激活请求
POST /api/license/activation-request
Content-Type: application/json
{
"company_name": "客户公司",
"contact_info": "contact@customer.com"
}
3. 验证授权文件
POST /api/license/verify
Content-Type: multipart/form-data
license_file: [授权文件]
受保护的API
以下API需要有效授权才能访问:
POST /api/detection/start- 需要recording功能POST /api/detection/{session_id}/stop- 需要recording功能GET /api/detection/data/*- 需要基础授权DELETE /api/detection/data/*- 需要基础授权
安全注意事项
1. 私钥保护
- 私钥文件必须妥善保管,不得泄露
- 建议使用硬件安全模块(HSM)存储私钥
- 定期轮换密钥对
2. 授权文件保护
- 授权文件包含数字签名,不可篡改
- 建议通过安全渠道分发授权文件
- 客户端应定期验证授权有效性
3. 机器绑定
- 可通过
machine_id参数绑定特定机器 - 使用
*表示不限制机器 - 机器指纹基于硬件信息生成
故障排除
1. 授权验证失败
- 检查授权文件格式是否正确
- 确认公钥文件路径配置正确
- 验证授权文件签名是否有效
2. 功能受限
- 检查授权类型和功能权限
- 确认授权是否过期
- 验证机器ID是否匹配
3. 开发调试
- 临时启用
dev_mode = True - 查看日志文件获取详细错误信息
- 使用
dev_license.json进行测试
技术支持
如遇到授权相关问题,请提供以下信息:
- 错误日志
- 授权文件内容(去除签名)
- 机器硬件指纹
- 配置文件相关部分
联系方式:[技术支持邮箱]