Files
license-manager-docs/docs/guide/index.md
T

129 lines
6.7 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.
# 介绍
软件授权管理系统是一个独立的软件授权管理系统,为软件系统提供授权码生成、分发、验证和管理服务。系统同时支持企业级管理后台和用户端自助服务,支持在线和离线两种授权模式,基于硬件绑定的授权机制确保安全性。
## 系统概述
License Manager 是一个企业级的软件授权管理解决方案,提供双端服务模式:
- **企业端**:帮助软件厂商实现从授权生成、分发、验证到全生命周期管理的完整闭环
- **用户端**:为终端用户提供自助购买、激活、管理授权的便捷服务,支持手机号注册、在线支付、设备绑定等功能
系统采用前后端分离架构,提供直观的管理界面和丰富的 API 接口,支持多种部署模式,满足不同场景下的授权管理需求。
## 核心特性
### 🔐 灵活的授权模式
- **在线授权(Cloud)**:本地验证 + 心跳上报,支持远程控制和管理
- **离线授权(Standalone)**:基于硬件指纹绑定,无需联网即可验证
- **混合模式(Hybrid)**:本地验证 + 心跳上报,断网时允许短时间离线运行
### 🛡️ 安全机制
- **硬件绑定**:通过设备指纹(MAC、CPU、HostID等)防止授权复制
- **数字签名**:RSA-PSS-SHA256 签名确保授权数据完整性
- **状态管理**:支持正常、锁定、过期等多种状态,可远程控制授权
- **密钥加密**:授权数据加密存储和传输
### 📊 全生命周期管理
- **客户管理**:客户档案、联系人、授权关系统一维护
- **授权生成**:批量生成、自定义有效期、功能限制配置
- **状态监控**:实时查看授权状态、使用统计
- **操作审计**:完整的操作日志记录,便于追溯和审计
### 👤 用户自助服务
- **自助购买**:用户通过手机号注册登录,选择套餐和设备数量,支付宝在线支付
- **一键激活**:获取授权码后打开软件产品输入授权码,系统自动绑定设备并激活
- **订单管理**:支持查看订单历史、申请开发票等服务
- **设备管理**:支持查看已绑定设备、解绑不需要的设备
- **自动续费**:支持心跳监控和自动续费提醒
### 🚀 易于集成
- **RESTful API**:标准化的 API 接口,易于与现有系统集成
- **客户端 SDK**:提供多种语言的客户端验证库
- **部署包生成**:自动生成包含配置的部署包,简化交付流程
## 系统架构
系统采用现代化的**前后端分离架构**设计,后端基于高性能的 **Go (Golang)** 语言构建。这种架构设计既保证了系统在高并发场景下的稳定性,又极大地简化了企业的部署与运维成本。
### 核心组件
```mermaid
graph TD
UI[💻 前端管理界面<br/>Vue.js 3 + Modern UI]
API[⚙️ 后端核心引擎<br/>Go + Gin + GORM]
DB[(🗄️ MySQL 数据库<br/>授权数据存储)]
UI -->|HTTPS / REST API| API
API -->|TCP / SQL| DB
%% 简单的样式美化
classDef default fill:#fff,stroke:#333,stroke-width:2px;
```
### 架构优势
* **极致性能**:得益于 Go 语言的协程(Goroutine)特性,单节点即可支撑数万级并发验证请求,资源占用极低。
* **部署简便**:后端编译为单一二进制文件(Single Binary),无复杂的运行时依赖(Zero Dependency),完美支持 Docker 容器化部署。
* **安全可靠**:API 接口层采用严格的鉴权机制,核心业务逻辑在服务端闭环,数据库支持事务一致性保障。
* **易于扩展**:模块化的代码结构设计,支持从单机模式平滑升级至集群高可用模式。
### 工作流程
```mermaid
sequenceDiagram
autonumber
participant Admin as 👤 管理员
participant System as ⚙️ 核心引擎
participant Client as 🖥️ 客户端软件
Note over Admin, System: 阶段一:生产与分发
Admin->>System: 1. 创建授权策略 (Web UI)
System-->>Admin: 生成 License 文件/Key
Admin->>Client: 2. 分发授权包 (Email/下载)
Note over Client, System: 阶段二:验证与运行
Client->>Client: 3. 本地验证 (公钥解密验证签名)
opt 在线模式
Client->>System: 4. 上报心跳 (包含授权信息)
System->>System: 检查心跳内容
alt 需要更新授权
System-->>Client: 返回 true (需要更新)
Client->>System: 5. 自动下载新授权
System-->>Client: 返回新授权文件
Client->>Client: 更新本地授权
else 无需更新
System-->>Client: 返回 false (正常)
end
end
```
1. **授权生成 (Issuance)**:管理员通过前端界面配置策略,后端核心引擎结合加密算法生成防篡改的授权许可证(License File/Key)。
2. **授权分发 (Distribution)**:支持在线自动分发或导出离线部署包,通过安全通道交付给最终用户。
3. **端侧验证 (Verification)**:客户端应用集成 SDK,在启动或运行时进行**本地验证**(使用公钥解密验证签名)。无论是在线模式还是离线模式,验证都在本地完成,无需实时联网。
4. **心跳上报与授权更新 (Heartbeat & Update)**:在线模式下,客户端会定期向服务端上报心跳(包含授权信息)。服务端检查心跳内容,判断是否需要更新授权。如需更新,返回 `true` 给客户端,客户端自动下载新授权并更新本地授权文件。
5. **审计与监控 (Audit)**:系统自动记录验证日志与心跳数据,实时反馈授权使用状态与异常告警。
## 适用场景
- **SaaS 软件**:需要按时间、功能、用户数等维度控制访问权限
- **企业软件**:需要硬件绑定,防止授权被非法复制
- **嵌入式系统**:需要离线验证,不依赖网络连接
- **API 服务**:需要控制调用次数、并发数等使用量限制
- **软件试用**:提供试用期授权,到期后自动限制功能
- **个人用户软件**:支持用户自助购买、在线支付、设备绑定激活
- **多设备管理**:支持单个用户在多台设备上使用,支持设备解绑和重新分配
## 下一步
- 如果您是**新用户**,建议从 [快速开始](./getting-started.md) 开始,了解如何部署系统
- 如果您想了解**为什么需要授权系统**,可以查看 [商业价值](./business_value.md)
- 如果您是**开发人员**,需要集成授权验证,请参考 [许可证结构](./license-token-structure.md) 和 [API 文档](./api.md)
- 如果您想**参与贡献**或了解我们的发展理念,可以查看 [社区发展策略](./community_strategy.md)