Casdoor v4 发布:进了 CNCF 全景图的开源 IAM,现在也给 MCP Server 和 AI Agent 发身份

6 小时 25 分钟前
 Casbin

Casdoor 是我们社区在做的开源身份认证平台( IAM / SSO ),Go + React ,Apache 2.0 ,14.4k star 。这两周连发了 v4.0 到 v4.3 ,顺便说一下今年 2 月它进了 CNCF 云原生全景图,在 Provisioning 板块的 Security & Compliance 那一格。

先说它是什么:一个完整的身份提供方,不是挡在应用前面的登录代理,也不是 import 进代码的库。用户存在它这里,token 它签,管理界面自带。同一份用户目录,OAuth 2.0 、OIDC 、SAML 2.0 、CAS 、LDAP 、SCIM 2.0 都能访问到——新写的 SPA 和只认 CAS 的十年老系统共用一批账号,这是它在国内企业环境里最实用的地方。一个 Go 二进制加一个数据库,没有 JVM ,没有 operator 。

想看看长什么样:

docker run -p 8000:8000 casbin/casdoor-all-in-one

打开 http://localhost:8000 ,组织 built-in ,用户名 admin ,密码 123 。里面带了 SQLite 和示例数据,看看就行,别拿去当生产。

v4 换了前端

v4.0 只有一个 feature:用了好几年的 Ant Design 控制台整个换成了 shadcn/ui ,React 18 + Tailwind ,Vite 构建。旧的留在 web-old/ 给人对照,不再构建也不再提供服务。

有个地方升级时要动手:产物路径从 CRA 的 build/static/{js,css} 变成了 Vite 的 build/assets/。通过 CDN 或反向代理分发 Casdoor 静态文件的,得把路径改掉。

后面三个小版本一边补窟窿一边加东西。控制台加了命令面板、批量选中、行内校验,表单两栏,列表能隐藏列;登录注册找回三个页面重做了,暗色模式修好,手机上终于能正常用。企业目录这边新增了 OIDC 身份源类型,LDAP 能按服务器单独开密码重置、内置 LDAP 服务端支持了 sambaSamAccount 、自动同步改成只在一个节点上跑且连接 panic 之后不会把整个同步弄死,企业微信能同步部门了。还有个小改动我觉得挺值:用户的角色和权限现在会标出各自是哪个组、哪个角色给的,排查「这人凭什么有这个权限」不用再靠猜。

运维方面支持了 Redis Cluster ,过期 token 改成分批清理不会把内存撑爆,可以对非管理员关掉控制台,删除登录会话会连带吊销它的 OAuth token ,resource 和 invoice-payment 两组 API 补上了之前漏掉的权限校验。

AI 这块做了什么

分三层,说具体的。

Casdoor 自己是个 MCP Server 。 代码在 mcpself/,暴露 15 个工具,user / application / permission 三类对象各一套 CRUD 。Claude Code 、Cursor 、Windsurf 这些客户端接上去,直接说「给这个组织加个用户」就行,不用点控制台也不用手写 API 。

给别人的 MCP Server 当授权服务器。 MCP 规范要求远程 Server 用 OAuth 2.1 鉴权,但 Agent 客户端事先根本不知道自己要向谁注册,所以动态客户端注册绕不过去。Casdoor 把这套备齐了:OAuth 2.1 + PKCE ,RFC 7591 的动态客户端注册(注册端点在 .well-known/openid-configuration 里公布,客户端自己能发现),今年 6 月又补了 RFC 7592 的客户端管理。DCR 注册出来的应用会继承默认应用的配置,品牌化字段、密码登录、身份源都带过来,不至于每个自动注册进来的客户端都是一张白纸。你只要把自己 MCP Server 的 Protected Resource Metadata 指向 Casdoor ,认证、同意、发 token 、验 token 都不用自己写。

OpenClaw 接入,管 Agent 到底干了什么。 OpenClaw 采集 LLM 应用的 trace / metric / log ,按 OTLP 推给后端,Casdoor 可以直接当这个后端,三个端点 /api/v1/traces 、/api/v1/metrics 、/api/v1/logs ,都收 application/x-protobuf 。在 Casdoor 里建一个类型为 Agent (OpenClaw) 的 Log provider ,里面的 Host 字段当 IP 白名单用。每个 payload 落成一条 Entry ,带来源 IP 和 UA ,控制台里按 span 树展开看。agent 在 Agents 里登记过的话,遥测还能跟身份对上。

三块连起来是一条链路:Agent 通过 DCR 拿身份,按权限调 MCP 工具,运行时每一步以 OTLP 落成可查的 Entry 。

链接

Apache 2.0 ,自托管。用着顺手的话给个 star 。

270 次点击
所在节点    分享创造
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1241806

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX