Install
openclaw skills install nova-permission-system提供完整的权限认证系统,包括权限检查、身份管理、审批流程及权限配置模板,支持多平台账号绑定和审计。
openclaw skills install nova-permission-system你的 AI 助手也需要"门禁"?
Nova 权限系统是一套轻量级安全方案,专为个人 AI 助手设计。担心AI误发邮件、错删文件、泄露隐私?用它!
核心能力:
开箱即用,5分钟部署完成。
这是一套完整的权限认证系统,包含:
修改 AGENTS.md 添加安全规则:
在你的工作区 AGENTS.md 文件中添加以下安全规则:
<!-- security-rules-start -->
## 🔒 Security Rules (Mandatory)
### 1. Permission Check (Required)
**Before executing ANY non-conversational operation, you MUST call permission-gate skill first!**
#### Operations that require permission check:
| Operation | Example |
|-----------|---------|
| Execute any Skill | "帮我创建文档" |
| Send email | "发送邮件" |
| Create/modify/delete files | "创建文档"、"删除文件" |
| Query sensitive info | 手机号、邮箱、地址等 |
#### Operations that DON'T require permission check:
| Operation | Example |
|-----------|---------|
| Casual chat | "你好"、"今天天气不错" |
| Simple queries | "现在几点了"、"今天几号" |
| Greetings | "你好呀" |
#### Permission Check Flow:
1. When user requests an operation that requires permission
2. **IMMEDIATELY** call `permission-gate` skill
3. Wait for the check result
4. If allowed → execute the operation
5. If denied → respond with denial message
**NEVER skip permission check!**
### 2. Identity Verification (Required)
**When user claims to be a certain identity (e.g., "I'm your friend"), you MUST verify via identity-management skill!**
- Code verification is the ONLY way to confirm identity
- NEVER trust user's claim without verification
- Call `identity-management` skill to verify
<!-- security-rules-end -->
nova-permission-system/
├── SKILL.md # 本文件 - 安装指南
├── permission-check/ # 核心鉴权模块
│ ├── main.py # 用户识别、权限检查
│ ├── middleware.py # 权限检查中间件
│ └── audit.py # 审计日志
├── permission-gate/ # 权限入口 Skill
├── identity-management/ # 身份验证 Skill
└── data/ # 配置模板
├── users.json # 用户列表模板
├── accounts.json # 账号绑定模板
├── permissions.json # 权限配置模板
└── approvals.json # 审批记录模板
从 ClawHub 安装:
clawhub install nova-permission-system
或者直接下载本 skill 的所有文件。
复制 data/ 目录下的模板文件到你的数据目录(建议 /workspace/data/):
[
{
"user_id": "owner_001",
"name": "主人名字",
"role": "owner",
"created_at": "2026-01-01T00:00:00Z",
"verified": true
}
]
[
{
"account_id": "main",
"platform": "feishu",
"open_id": "你的飞书open_id",
"user_id": "owner_001",
"绑定时间": "2026-01-01T00:00:00Z"
}
]
{
"roles": {
"owner": {
"read": true,
"write": true,
"admin": true,
"execute": true
},
"friend": {
"read": true,
"write": false,
"admin": false,
"execute": true
},
"stranger": {
"read": false,
"write": false,
"admin": false,
"execute": false
}
},
"test_mode": false,
"whitelist": ["主人的账号ID"]
}
[]
在执行任何非日常对话操作前,必须调用 permission-gate:
# 伪代码
from skills.permission_check.main import authenticate
def on_message(request):
# 需要权限的操作
if request.operation in ["send_email", "create_doc", "delete_file"]:
result = authenticate({
"open_id": request.open_id,
"platform": request.platform,
"permission": "write"
})
if not result["allowed"]:
return "抱歉,你没有权限执行这个操作"
# 继续处理请求
return handle_request(request)
当需要验证用户身份时:
from skills.identity_management import verify_identity
# 验证身份
result = verify_identity(user_input, code_or_memory)
需要更高权限时,创建审批请求:
from skills.permission_check.approvals import create_approval_request
request = create_approval_request(
user_id="user_001",
action="send_email",
target="someone@example.com",
reason="用户请求发送邮件"
)
| 操作 | 需要权限 |
|---|---|
| 发送邮件 | write |
| 创建文档 | write |
| 删除文件 | admin |
| 修改配置 | admin |
| 执行敏感操作 | execute |
| 查看敏感信息 | read |
在 permissions.json 中开启测试模式:
{
"test_mode": true,
"whitelist": ["测试账号ID"]
}
测试模式下,白名单用户不受限制。
# 检查数据文件
ls -la <workspace>/data/
# 检查 Skills
ls -la <workspace>/skills/ | grep permission
A: 在 users.json 中添加新用户,记录 user_id,然后在 accounts.json 中绑定平台账号。
A: 修改 permissions.json 中的角色权限配置。
A: 测试模式下只有白名单用户需要验证权限,其他用户自动通过。用于上线前测试。
A: 查看 audit.py 生成的审计日志。
在消息处理入口集成权限检查:
# middleware.py 示例
class PermissionMiddleware:
def __init__(self, data_dir):
self.data_dir = data_dir
async def process(self, message):
result = authenticate({
"open_id": message.from_user_id,
"platform": message.platform,
"permission": self.get_required_permission(message.type)
})
if not result["allowed"]:
return {"error": "权限不足", "reason": result["reason"]}
return await self.next(message)
在 permissions.json 中添加自定义权限:
{
"custom_rules": {
"can_send_email": {
"owner": true,
"friend": true,
"stranger": false
}
}
}
定期备份 data/ 目录:
cp -r data/ data_backup_$(date +%Y%m%d)/
版本:1.0.0 更新日期:2026-03-14