70 lines
4.6 KiB
Markdown
70 lines
4.6 KiB
Markdown
---
|
||
name: 账号与凭据管理
|
||
description: "通用账号 & 凭据 & 登录流程管理器。管理网页/RPA 账号、API Key/Token;支持 9 种登录策略(账密自动、扫码、2FA、SSO 等);提供加密本地存储(Fernet);提供 rpa_helpers 库供业务 skill 同进程调用 ensure_logged_in 完成多平台自动登录。涵盖物流、LLM、内容、开发、API 五类平台。"
|
||
version: 2.0.1
|
||
author: 深圳匠厂科技有限公司
|
||
metadata:
|
||
openclaw:
|
||
slug: account-manager
|
||
emoji: "🔐"
|
||
category: "通用"
|
||
allowed-tools:
|
||
- bash
|
||
---
|
||
|
||
# 账号与凭据管理(account-manager)
|
||
|
||
通用账号、凭据与浏览器 Profile 管理器。在本地 SQLite 管理平台注册、账号身份、凭据元数据;可选 Fernet 加密密码入库;提供租约(lease)防并发;供其它技能通过 CLI 调用 `scripts/main.py` 或通过 **同进程** [`references/RPA_HELPERS.md`](references/RPA_HELPERS.md) 完成登录流程。
|
||
|
||
## 核心原则
|
||
|
||
1. **account-manager 是唯一账号/凭据管理入口** — 业务 skill 不能自己散落存储账号、密码、API Key、Token。
|
||
2. **SQLite 主要保存元数据** — `secret_ref`、`secret_mask`;非 `local_encrypted` 路径不在库中存明文。
|
||
3. **浏览器登录态** — 使用独立 `profile_dir` 保存 cookie/session。
|
||
4. **业务 skill 优先通过 CLI 获取结构化账号 JSON** — 需要时再组合同进程 rpa_helpers(见集成文档)。
|
||
5. **9 种登录策略统一接口**:`auth_strategy` 标识账号登录方式,业务 skill 可调用 `ensure_logged_in` 自动分派。
|
||
6. **加密 secret 双钥分离**:master key 文件默认与数据库同目录,也可用环境变量覆盖;**数据库密文 + 合法 master key** 才能解密。
|
||
|
||
## 何时使用本技能
|
||
|
||
1. **登记网页/RPA 账号**:`account add-web` — 平台 + 登录标识 + 自动生成 profile_dir;可选 `--auth-strategy` / `--session-persistent` / `--device-fingerprint`。
|
||
2. **登记凭据(API Key / Token / 加密密码)**:`account add-secret` — `none` / `env` / `windows_credential` / `local_encrypted`。
|
||
3. **查看/列出账号**:`account get/list` — JSON 输出。
|
||
4. **为 RPA 挑选账号**:`account pick-web` — 按环境/租户/角色筛选,可带 lease。
|
||
5. **获取 API Key(凭据表)**:`credential pick` — 默认隐藏 secret,`--reveal` 时才返回。
|
||
6. **浏览器打开查看**:`account open <id>`(或兼容别名 `open <id>`)— 仅查看,不做站点侧登录判定。
|
||
7. **管理 lease**:`lease release/list/cleanup` — 防止 RPA 并发。
|
||
8. **初始化加密**:`account init-master-key` — 生成 Fernet master.key。
|
||
9. **加密备份与迁移**:`account export-credentials --plaintext` / `account import-credentials` — 导出明文 JSON、在新环境重新加密写入。
|
||
10. **按 lease 取明文密码**:`account get-credential <id> --reveal --lease-token <token>` — 结合 pick-web 返回的 lease 解密 `local_encrypted` 等路径。
|
||
11. **业务 skill 同进程登录**:`from service.rpa_helpers import ensure_logged_in` — 详见 [`references/RPA_HELPERS.md`](references/RPA_HELPERS.md)。
|
||
|
||
## CLI 调用
|
||
|
||
语法、默认值、错误约定见 **`references/CLI.md`**。
|
||
|
||
## 支持的平台
|
||
|
||
见 [`references/PLATFORMS.md`](references/PLATFORMS.md);代码注册表按业务域分为 logistics / llm / content / dev / sim(实际数量与别名以 `scripts/util/platforms.py` 为准)。
|
||
|
||
## 数据与环境
|
||
|
||
库路径、profile 布局、环境变量见 [`references/RUNTIME.md`](references/RUNTIME.md);表结构见 [`references/SCHEMA.md`](references/SCHEMA.md)。
|
||
|
||
## 跨技能集成
|
||
|
||
stdout 协议与同进程 import 见 [`references/INTEGRATION.md`](references/INTEGRATION.md);登录 helper 细节见 [`references/RPA_HELPERS.md`](references/RPA_HELPERS.md)。
|
||
|
||
## Secret 存储
|
||
|
||
- `none`:无 secret(浏览器 profile 登录态)
|
||
- `env`:SQLite 保存环境变量名,运行时从 `os.environ` 读取
|
||
- `windows_credential`:正式 Windows 部署,真实 secret 存 Windows Credential Manager
|
||
- `local_encrypted`:Fernet 加密后存 SQLite(`secret_ciphertext`),密钥从 `ACCOUNT_MANAGER_MASTER_KEY` 或 `master.key` 读取(须先 `account init-master-key`)
|
||
|
||
详见 [`references/RUNTIME.md`](references/RUNTIME.md)。
|
||
|
||
## v2 升级说明
|
||
|
||
v1→v2 为**平滑迁移**:启动时 `ensure_schema` 幂等执行 `migrate_v1_to_v2` 与 `migrate_v2_to_v2_1`,自动补列与 `_schema_meta.schema_version`(最终为 `"2.1"`)。旧有三种 `secret_storage`(`none` / `env` / `windows_credential`)仍可用;CLI 旧别名(`get` / `pick-web` / `add` 等)保留。
|