Files
craftlabs-authorization-sdk/docs/bitanswer-authorization-overview.md
2026-04-06 17:42:09 +08:00

147 lines
10 KiB
Markdown
Raw Permalink 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.
# 比特授权云:机制与授权模式梳理
> 依据公开文档站点整理,主要页面入口:[欢迎页](https://doc.bitanswer.cn/docs/welcome/)、[授权模式分类](https://doc.bitanswer.cn/category/docs/license-models/)、[客户端 API](https://doc.bitanswer.cn/category/docs/client-api/)、[授权设计与创建](https://doc.bitanswer.cn/docs/function/licensing-design-creation/)、[基本授权过程](https://doc.bitanswer.cn/docs/application-development/development-process/)、[SDK 概述](https://doc.bitanswer.cn/docs/client-api/sdk-overview/)。
> 整理日期:2026-04-06
---
## 1. 总体机制:控制台与产品模型
比特授权云将「卖什么、怎么控、怎么发到客户端」拆成多层概念:
| 概念 | 作用 |
| ---------------- | -------------------------------------------------------------- |
| **产品(Product** | 对应一套或一组软件;内建 **特征项(功能/加密点)****配置项(小型安全存储,键值字符串)**。 |
| **模版(Template** | 产品特征项的**子集**,常对应一个发行版本(如「简单版 / 专业版」)。 |
| **业务(Business** | 定义**商业模式 + 授权类型**(云、集团、单机浮动、演示、帐号等)及各类**授权属性**(有效期、终端数、离线策略等)。 |
| **授权码 SN** | 16 位全球唯一标识;用户付费后发放;客户端用 SN 做激活、续期、升级。 |
集成侧:**库文件与头文件与产品绑定**,混用会导致 `**Login` 返回 0x105**(文档明确说明)。
典型流程:规划功能与模块 → 控制台建立产品与模版 → 下载对应开发模块 → 建立业务 → 生成并分发授权码 → 客户端激活与运行时校验。
### 1.1 保护方式与平台
- **保护方式**[欢迎页](https://doc.bitanswer.cn/docs/welcome/) 说明提供 **API****外壳** 两种;可组合使用以提高安全性。
- **平台**Windows32/64)、Linux(含 ARM/x86)、macOS、Android、iOS 等;其它语言可通过动态库集成。
---
## 2. SDK 侧:与模式无关的共性(运行时语义)
来源:[SDK 概述](https://doc.bitanswer.cn/docs/client-api/sdk-overview/)
| 名词 | 含义 |
| --------------------- | ----------------------------------------- |
| **资源** | 需要保护或控制的功能或数据单元。 |
| **授权** | 将资源访问权下放给设备或用户。 |
| **激活** | 将设备/用户与权限绑定(典型:在线更新许可,再登录)。 |
| **授权升级** | 增加或减少资源访问权限。 |
| **授权检查** | 检查是否拥有某资源权限。 |
| **授权文件 / License 文件** | **单机类**授权保存在设备本地的许可数据。 |
| **特征项** | 与程序中「加密点 / 功能开关」对应;可有版本;类型包括只读、读写、算法、密钥等。 |
| **内存授权** | 将已有 License 传入 API 校验,**无激活过程**。 |
文档强调:在**集团授权**场景下,**QueryFeature** 与 **ReleaseFeature** 应**成对**调用(占用与释放模块用户数)。
示例主流程(文档 C 示例):`Bit_Login(..., BIT_MODE_AUTO)` → 失败则输入 SN → `Bit_UpdateOnline` 激活 → 再 `Bit_Login` → 结束 `Bit_Logout`
---
## 3. 授权模式分述
文档中「本地授权」与「云授权」的区分要点:[云授权](https://doc.bitanswer.cn/docs/license-models/cloud-license/) 页指出,除云授权外,其它方式通常需向客户端发放与**硬件指纹绑定**的电子许可证,激活后往往**不必**再连授权服务器(云授权则运行时实时连网、授权数据不落客户端)。
### 3.1 云授权
- **文档**[云授权](https://doc.bitanswer.cn/docs/license-models/cloud-license/)
- **许可数据**:始终在云端;客户端不保存完整授权数据。
- **标识**:**授权码 SN**;文档描述为同一 SN 同一时间仅一台计算机使用。验证时上传 **SN + 本机硬件指纹**
- **安全会话**:验证通过后握手,用产品预置密钥派生**会话密钥**,后续通讯加密(文档类比网银并强调更复杂)。
- **心跳**:约 **每 20 分钟**与服务器心跳以保持会话。
- **多进程**:同一客户端同一 SN 最多 **10 个进程**;控制台可管理在线状态。
- **管控**:授权属性变更可对在线客户端快速生效。
- **局限**:运行期通常需联网;文档提及 **云授权 2.0** 改善依赖并支持高优先级登录、短时离线等。
- **业务属性**:使用时间、次数、有效期;可设终端限制等。
### 3.2 单机浮动授权
- **文档**[单机浮动授权](https://doc.bitanswer.cn/docs/license-models/local-license/)
- **运行期**:激活后一般**不连**外部授权服务器即可使用(与云授权对比)。
- **激活**:客户端提交 **SN + 硬件指纹**,服务器验证后下发与本机绑定的**本地许可**;复制到其它机器不可用。
- **许可存放**:本机;对比——集团授权在**集团服务器**,云授权在**云端**。
- **常见业务属性**
- **离线 vs 智能连接**:完全离线,或联网时后台自动校验/升级且不打断用户。
- **强制认证**:最大离线时长,到期必须再连服务器。
- **安装限制**:激活次数上限(多客户端**共享**该次数池)。
- **终端限制**:允许多少台机器激活。
- **失效与恢复**:许可损坏、硬盘问题或硬件变更可致失效;可按规则重新下载许可(可能消耗安装次数或终端名额)。
### 3.3 集团授权
- **文档**[集团授权](https://doc.bitanswer.cn/docs/license-models/group-license/)
- **形态**:开发商**自建授权服务器**,对局域网或互联网用户做**并发**控制。
- **控制台**:创建业务时选择「集团授权」;可配置**用户数(并发上限)**,默认描述为最多 **999** 并发。
- **服务端组件**(需单独下载安装):
- 集团服务安装程序 `bit_service.exe`Windows 服务),默认端口 **8273**(通讯)、**8274**Web 管理)。
- **集团服务扩展模块(.EXT)**:与**产品绑定**,不可混用。
- **集团授权管理中心**:浏览器访问,默认示例 `http://localhost:8274`
- **客户端**:需配置集团服务器地址(API 或配置文件),参见 [部署和配置客户端](https://doc.bitanswer.cn/docs/application-development/application-distribution/) 等文档。
### 3.4 比特 ID 授权
- **文档**[比特 ID 授权](https://doc.bitanswer.cn/docs/license-models/bitid-license/)
- **机制**:在**单机授权**基础上增加 **USB 比特 ID** 绑定;插硬件的机器才能正常使用。
- **场景**:离线环境下便于带硬件换机;控制台可追踪、注销设备。
### 3.5 演示授权
- **文档**[演示授权](https://doc.bitanswer.cn/docs/license-models/demo-license/)
- **特点**:演示码可被**多台客户端重复使用**;有有效期(如 15–180 天);**重装无法**简单延长试用期;可改为正式 SN。
- **数据**:激活需连授权中心,可统计演示用户量、分布等。
- **归类**:文档说明为**本地授权**——激活后使用**不必**再连服务器。
### 3.6 帐号授权
- **文档**[帐号授权](https://doc.bitanswer.cn/docs/license-models/account-license/)
- **对象**:从设备授权扩展到**人/帐号**,常为**订阅**模式。
- **集成路径**
1. **库直连**`Bit_LoginByPassword`(业务 GUID、密钥、帐号、密码等)。
2. **OIDC**(文档更推荐):托管登录页取得 `code``POST /oidc/token`**access_token**`Bit_LoginByToken`
- **实践建议**:认证模块(Launchpad)与主程序分离,token 传入主程序。
---
## 4. 授权设计与特征项、配置项(摘要)
来源:[授权设计与创建](https://doc.bitanswer.cn/docs/function/licensing-design-creation/)
- **业务可配维度**(随授权类型不同而变化)包括:连接类型、强制认证周期、安装限制、有效期、集团用户数、起止日期、使用次数、终端限制等。
- **授权内容更新生效**
- **云授权**:可较快反映到客户端(文档称可无需重启应用)。
- **集团 / 单机**:一般在客户端**下次连服务器**时同步;智能连接、强制认证会影响同步时机。
- **特征项类型**:只读、读写、算法、密钥等;均支持 QueryFeature / ReleaseFeature;集团场景下成对调用尤其重要。
- **配置项(Data)**:存配置与小数据,UTF-8;**不宜**替代特征项做安全控制;客户端可能有缓存,异常断电有丢失风险。
---
## 5. 模式对照表(便于与自研抽象对齐)
| 维度 | 云授权 | 单机 / 演示 / 比特 ID(本地类) | 集团授权 | 帐号授权 |
| ---- | ------------ | -------------------- | ---------- | --------------- |
| 判定位置 | 云端实时 | 本地许可(可选定期/智能连网同步) | 集团服务器(并发) | 云端 + token/密码 |
| 长期联网 | 一般需要 | 通常不强制(依业务属性) | 依部署与策略 | 登录/刷新时需要 |
| 并发模型 | SN + 在线会话/心跳 | 终端数、安装次数等 | 并发用户数 | 订阅/帐号维度 |
| 典型标识 | SN | SN(演示码策略特殊) | SN + 服务器地址 | 帐号 / OIDC token |
---
## 6. 免责声明
本文档为对 **doc.bitanswer.cn** 公开页面的**学习性整理**,不替代原厂文档;产品行为、默认值与 API 以官方网站与最新版本为准。