登录做完只是开始:AI 时代最容易被忽视的权限风险

149 阅读7分钟

登录做完只是开始:AI 时代最容易被忽视的权限风险

——身份控制平面落地实践(以 Casdoor 为例)

在 AI Agent 和微服务成为主流之后,很多团队会遇到同一个问题:系统"登录"已经上线,但权限事故、越权调用、审计追踪困难反而越来越多。

这不是登录做错了,而是登录只解决了认证入口,不解决全链路治理。 本文以GitHub万星项目Casdoor为例,展示AI身份控制落地的最佳实践。


1.png

一、先说结论:Agent场景下为什么要先看 Casdoor

Casdoor 不是一个只做登录页的项目,而是一个开源 IAM/IdP 平台(Go + React),具备协议兼容、身份模型、授权联动、Token 管理、审计基础等平台能力。

在工程上,它适合被放在**"统一身份中枢"**的位置,而不是"某个业务系统的附属组件"。

GitHub地址:(github.com/casdoor/cas…)

它的现实价值

  • 统一认证入口:OAuth2/OIDC/SAML/CAS/LDAP 多协议兼容
  • 统一身份语义:组织、用户、应用、角色、策略一体化管理
  • 鉴权抽离:把鉴权从业务代码中抽离,进入可治理的控制层
  • AI 场景底座:给 AI Agent 工具调用场景提供可扩展的身份与权限基础(含 MCP 相关能力基础,适合作为联动起点,复杂策略编排仍需结合网关与业务实现)

二、在AI时代"登录已完成"为何仍会持续出问题

2.jpg 传统架构默认了三个已失效前提:

  • 主体只有"人"
  • 调用链很短
  • 权限边界相对固定

AI 时代这三个前提都变了:

维度传统时代AI 时代
主体人类用户人类 + 服务账号 + AI Agent
调用链用户 → 应用AI Agent → 网关 → 多工具/多服务
风险传播单点泄露横向穿透多系统

真正的问题:你是否具备从身份到执行再到审计的闭环能力。


三、高知识密度拆解:现阶段身份控制平面到底包含什么

3.png 把"认证—授权—审计"做成工程闭环,至少需要四层:

A. 身份层(Identity Plane)

职责:身份事实源、令牌签发、策略语义中心

关键能力

  • 统一主体标识(身份标准化,即把不同来源的身份统一成标准格式)
  • 统一令牌语义(令牌声明约定,即 Token 里携带哪些字段、什么含义)
  • 策略模型(从 RBAC 到 ABAC 的演进接口)

Casdoor 现状:✅ 提供了成熟基础,应用、用户、组织、权限范围、令牌等核心对象可统一管理。

B. 控制层(Enforcement Plane)

职责:执行拦截、工具级准入、上下文注入

关键能力

  • 请求级准入(允许/拒绝)
  • 权限范围与工具映射
  • 缓存与一致性权衡(低延迟 vs 强一致)

Casdoor 现状:🔄 提供策略语义与身份信任,网关做执行点,需与 MCP Gateway 联动。

C. 业务层(Resource Plane)

职责:资源级二次校验(纵深防御)

关键能力

  • 对敏感资源做二次授权
  • 避免"网关单点失守=全局失守"

Casdoor 现状 :⚪ 业务层由应用系统实现,Casdoor 提供身份凭证和策略语义支持,具体资源级鉴权需业务侧集成

D. 观测层(Audit Plane)

职责:证据链与可运营性

关键能力

  • 完整审计字段:主体 / 权限范围 / 工具 / 决策 / 原因 / 追踪 ID
  • 拒绝路径可观测(拒绝是正常行为,不是异常)

Casdoor 现状 :✅ 内置审计日志记录( RecordMessage 过滤器),支持结构化日志输出;与外部 SIEM/可观测平台集成需扩展

由此可见,Casdoor的技术功能特性完美契合现阶段的身份控制需求。


四、Casdoor 能力映射:哪些是"现成可用",哪些是"需扩展"

4.png 这是最关键的**"技术诚实"**部分。

✅ 现成能力(可以直接上手)

能力说明
多协议认证与统一入口OAuth2/OIDC/SAML/CAS/LDAP
核心对象管理应用/用户/组织/角色
令牌机制签发、刷新、校验
策略治理基础与 Casbin 结合
MCP 能力基础可作为网关联动起点

🔄 需要按场景扩展的部分

  • 外部工具生态下的复杂动态授权编排
  • 高并发场景下的策略缓存失效策略
  • 企业级风控联动(风险评分、行为分析)
  • 多区域多租户下的权限传播时延优化

结论:Casdoor 已经是**"可落地底座"**,但不是"替你完成全部业务治理"的黑盒。开发者仍然需要根据实际业务场景做出变化,但毫无疑问Casdoor是现阶段的最好选择。


五、落地方法论:从可用到可治理的 4 阶段路线(基于 Casdoor)

5.png

阶段 1:统一身份入口

目标:结束"每个系统一套登录"

Casdoor 实践

  • 部署 Casdoor 作为统一 IdP,配置 OAuth2/OIDC 应用
  • 老系统通过 Casdoor SDK 或代理过渡
  • 在 Casdoor 中建立组织、用户、应用映射关系
  • 明确主体主键规范(用户/服务账号/AI Agent),利用 Casdoor 的 User.Type 字段扩展

关键配置

# 创建应用
curl -X POST $CASDOOR/api/add-application \
  -d '{"name": "legacy-system", "organization": "built-in"}'

阶段 2:权限执行前移

目标:把执行点前移到网关

Casdoor 实践

  • 在 API Gateway(如 Kong、APISIX)中集成 Casdoor JWT 验证
  • 配置 Casdoor PermissionRole,建立 deny-by-default 策略
  • 利用 Casdoor Scope 定义能力清单
  • 对高风险工具,在 Gateway 层调用 Casdoor Enforce API 做二次确认

关键配置

# 创建权限策略
curl -X POST $CASDOOR/api/add-permission \
  -d '{"name": "high-risk-tool", "roles": ["admin"], "resources": ["tool:delete"]}'

阶段 3:策略平台化

目标:减少业务侧硬编码授权

Casdoor 实践

  • 将业务代码中的鉴权逻辑迁移到 Casbin 策略
  • 使用 Casdoor Adapter 管理策略规则,支持灰度发布
  • 通过 Casdoor API 动态更新策略,无需重启服务
  • 建立策略变更审计,利用 Casdoor 内置的 Record 机制

关键配置

# 更新策略(灰度)
curl -X POST $CASDOOR/api/update-policy \
  -d '{"adapter": "app-built-in", "rules": [["p", "alice", "data1", "read", "allow"]]}'

阶段 4:审计运营化

目标:从"能拦截"升级到"可运营"

Casdoor 实践

  • 启用 Casdoor RecordMessage 过滤器,记录所有认证/授权事件
  • 将 Casdoor 审计日志导出到 ELK/Loki 进行结构化分析
  • 跟踪误拒绝率:分析 Casdoor Record 表中的 isTriggered 字段
  • 建立 SLO 看板:监控 Casdoor /api/get-prometheus-info 暴露的指标

关键配置

# 获取审计记录
curl $CASDOOR/api/get-records?organization=built-in

六、团队最容易踩的坑(Casdoor 实践)

6.png

常见错误Casdoor 场景规避建议
把 RBAC 当终态只用 Casdoor 的 Role,不扩展 Permission 策略Role 起步,逐步引入 Casbin ABAC 规则
只做放行路径,不做拒绝可观测Casdoor 默认记录成功登录,忽略失败/拒绝启用 RecordMessage 过滤器,确保 403 拒绝也被记录
把所有安全押在网关Gateway 验证 Casdoor Token 后,业务层不再校验业务层敏感操作调用 Casdoor Enforce API 二次校验
Token 生命周期设计过粗Casdoor 默认 ExpireInHours 过长配置短时效访问令牌(1-2小时)+ 轮换刷新令牌
策略改动无灰度直接修改 Casdoor 生产策略利用 Casdoor 多环境(dev/staging/prod)+ 策略版本控制

七、可量化验收指标(Casdoor 监控)

7.png 建议把以下指标作为首批可量化验收基线(示例阈值,具体数值需按业务规模与流量模型校准):

指标Casdoor 数据来源参考基线(示例阈值)说明
鉴权决策 P95 延迟/api/get-prometheus-info< 50ms从请求到返回决策
策略误拒绝率RecordisTriggered=false< 5%正常业务下的误拦截
令牌刷新失败率/api/login/oauth/refresh_token 日志< 1%影响用户体验
高风险调用拦截趋势Enforce API 拒绝次数周统计安全运营核心指标
审计写入成功率Record 表写入状态> 99.9%合规基础保障
权限变更传播时延策略更新到生效时间< 30s策略下发到生效

Casdoor 监控实践

# 获取 Prometheus 指标
curl $CASDOOR/api/get-prometheus-info

# 查询审计记录
curl "$CASDOOR/api/get-records?organization=built-in&startTime=2024-01-01"

核心原则:身份系统上线标准不是"请求能通过",而是**"风险可控、行为可解释、证据可追溯"**。


八、总结

8.png AI 时代新增的大多数权限风险,发生在**"登录通过之后的调用链阶段"**:

  • 谁在调用
  • 凭什么调用
  • 调用了什么
  • 为什么被允许/拒绝
  • 出问题如何回溯

Casdoor 的价值,不是替你做一个登录页,而是提供一个可工程化扩展的 IAM 底座,让你能把认证、授权、审计从业务细节中抽离出来,形成真正可治理的身份控制平面。


参考链接


💬 思考题:你的系统中,权限风险主要发生在哪个环节?登录前、登录后调用链、还是审计盲区?欢迎在评论区讨论!