You think.
AI does.

Casdoor:带 Web 控制台的开源身份认证与单点登录平台

Casdoor:带 Web 控制台的开源身份认证与单点登录平台

一个完整的身份提供者——自托管、多协议、可托管你自己的用户目录

14.4K Stars
1.8K Forks
Go
Apache-2.0
Agent-first IAM

项目地址:https://github.com/casdoor/casdoor  协议:Apache-2.0  Stars:14,417  最近更新:2026-09-16

AI 摘要

Casdoor 是一个带 Web 控制台的开源单点登录(SSO)与身份认证服务器,定位为「一个完整的身份提供者」,而非认证代理,也非嵌入代码的库。它说 OAuth 2.0、OIDC、SAML 2.0、CAS、LDAP、SCIM 2.0、WebAuthn、TOTP/MFA、MCP 等多种协议,并对接 Google Workspace、Entra ID、GitHub 等身份源。它面向需要自托管用户目录、统一登录与细粒度授权的团队与开发者,后端是 Go + Beego,前端是 React 18。本文将介绍它的产品定位、核心功能、安装方式、技术架构、与同类方案的对比、身份网关的核心机制、实用技巧与常见问题。

一、产品深度介绍

(一)它是什么

Casdoor 是一个带 Web 控制台的单点登录(SSO)与身份认证服务器。它同时「说」多种标准协议:OAuth 2.0、OpenID Connect(OIDC)、SAML 2.0、CAS、LDAP、SCIM 2.0、WebAuthn、TOTP/MFA 以及 MCP,并能对接 Google Workspace、Microsoft Entra ID(Azure AD)、GitHub 等众多身份提供方。

官方在仓库标题里直接把它定义为「一个开源的、以 Agent 为先的身份认证与访问管理(IAM)平台」,既是面向 LLM / MCP 与 Agent 的网关,也是带 UI 的认证服务器。换句话说,它存储你的用户、签发令牌,并提供一个管理控制台来统一打理这一切;你的业务应用可以把登录完全委托给它,自己不再处理任何密码。

与很多「只做登录页」的方案不同,Casdoor 的定位是「一个完整的身份提供者」,而不是认证代理,也不是一个嵌入你代码的库。它拥有独立的用户目录,支持多租户组织、基于 Casbin 的角色与权限(ACL、RBAC、ABAC 等策略模型)以及审计日志,几乎一切配置都能在 Web 控制台里完成,无需改动配置文件,也无需重新部署。

(二)技术栈

Casdoor 采用前后端分离的架构,各层技术选型如下:

  • 后端:Go 语言,基于 Beego 框架,对外暴露 REST API(位于仓库根目录)。
  • 前端:React 18,搭配 shadcn/ui 与 Tailwind CSS,使用 Vite 构建(位于 web/ 目录)。旧的 Ant Design 控制台保留在 web-old/ 仅作参考,已不再构建与提供服务。
  • 数据库:通过 XORM 支持 MySQL、PostgreSQL、SQLite、SQL Server 等多种数据库。
  • 缓存:Redis 为可选项,仅当你运行多个 Casdoor 副本时才需要。
小黑守在身份网关前核验访客令牌
小黑配图:小黑守在身份网关前,逐一核验每一位访客的令牌(token),决定谁能进入你的应用。

二、功能与应用场景

Casdoor 的功能可以归纳为三大板块:认证、组织与访问控制、以及面向开发者与 AI 的能力。

认证方面:完整的 OAuth 2.0 / OIDC 授权服务器与 OpenID Connect 提供方;SAML 2.0 企业级单点登录(同时可作为 IdP 与 SP);CAS 用于遗留系统;LDAP 既可同步目录也可作为目录服务;WebAuthn / passkey 实现无密码登录;TOTP / MFA 多因素认证(含邮件与短信验证码);以及 Face ID 生物特征登录。

组织与访问控制:多租户,每个组织拥有独立用户与品牌;基于 Casbin 的 RBAC 及 ACL、ABAC 等策略模型;SCIM 2.0 实现自动化的用户开通与回收;社交登录(Google、GitHub、Entra ID 等);可插拔的自定义身份、邮件、短信、存储与支付后端;以及记录登录与后台操作的审计日志。

AI 与 Agent:内置 MCP 网关,用于暴露 Model Context Protocol 服务器并控制其访问;同时支持 A2A(agent-to-agent)通信。

开发者体验:每个控制台操作都对应一个 REST API;提供 Go、Java、Python、Node.js、.NET、PHP、Rust 等语言的 SDK;内置 Swagger UI 实时调试;通过 Webhook 把用户与登录事件推送到你的系统;登录页面与控制台可按组织自定义主题。

典型应用场景包括:企业内部的统一登录门户;为多个自有应用提供集中式 SSO;让遗留 CAS 系统与现代 SPA 共享同一套账户;为 LLM / MCP Agent 提供受控的身份与访问网关;以及面向多租户 SaaS 的按组织品牌化登录。

三、如何安装与使用

最快的试用方式(官方称 30 秒)是 all-in-one 镜像,无需数据库与配置文件,使用 SQLite 与示例数据即可运行:

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

启动后打开 http://localhost:8000,使用组织 built-in、用户名 admin、密码 123 登录(注意:登录表单的「组织」与「用户名」是分开的字段,文档有时会写作 built-in/admin,这是同一种写法,并非用户名里真的含有斜杠)。

如果不想本地安装,也可以使用官方托管演示:可写的 demo.casdoor.com(数据约每 5 分钟重置)与只读的 door.casdoor.net(稳定全局演示)。两者都接受同样的 built-in / admin / 123 凭据。

生产部署推荐 Docker Compose(Casdoor + MySQL 8),或源码编译(需要 Go 1.25+、Node.js 20 LTS、Yarn 1.x 以及受支持的数据库)。源码方式需先在 conf/app.conf 中设置 driverName、dataSourceName、dbName,再构建前端并运行服务端。

四、官方地址与获取方式

五、与同类方案对比

在自托管身份赛道上,Casdoor 常与 Keycloak、Authentik、SuperTokens 等放在一起比较。它们的差异主要体现在定位与配置方式上。

对比维度 Casdoor 常见替代方案
产品定位 完整身份提供者 + Web 控制台 + Agent 网关 多为协议服务器或嵌入式 SDK
协议覆盖 OAuth2 / OIDC / SAML / CAS / LDAP / SCIM / WebAuthn / MFA / MCP 覆盖不一,MCP / Agent 支持较少
配置方式 几乎全部在 UI 完成,免改文件、免重部署 常需编辑配置文件或写代码
授权模型 Casbin 策略(ACL / RBAC / ABAC) 各有固定或插件式权限模型
部署形态 单个 Go 二进制 + 数据库,无 JVM、无集群要求 部分依赖 Java / 应用服务器
多租户 原生多租户,按组织独立品牌 支持程度不一

如果你只需要在反向代理前加一个登录框,更轻量的工具可能更合适;但当你想「拥有自己的用户目录」本身时,Casdoor 是一个完整且务实的选择。

六、核心机制深度解析

Casdoor 的核心,是把「用户目录 + 协议端点 + 授权策略 + 管理控制台」收敛到一个可自托管的服务里。一次典型的登录与授权流程如下:

用户访问应用应用把未登录请求重定向到 Casdoor
→
身份校验密码 / WebAuthn / MFA / 社交登录
→
Casbin 策略判定该用户能访问什么
→
签发令牌OAuth / OIDC / SAML 令牌
→
应用放行凭令牌访问受保护资源

这个设计的价值在于:现代 SPA 与遗留的 CAS-only 应用可以共享同一套账户,因为同一个用户目录可同时被 OAuth 2.0、OIDC、SAML 2.0、CAS、LDAP、SCIM 访问。权限判定交由 Casbin 完成,而非写死的权限逻辑,因此 ACL、RBAC、ABAC 乃至自定义模型都能表达。

七、实用技巧

  • 尽量在 UI 里配置:组织、应用、提供方、登录方式与品牌都通过 Web 控制台设置,避免改文件后重部署。
  • 多租户品牌化:为每个组织配置独立主题与登录页,非常适合 SaaS 场景。
  • 协议互通:同一用户目录同时被 OAuth、OIDC、SAML、CAS、LDAP 访问,遗留系统与新应用共享账户。
  • 自定义后端:把自有身份、邮件、短信、存储、支付接入自定义 provider,扩展登录与通知能力。
  • 缓存策略:运行多个副本时启用 Redis,单副本可忽略。
  • 加固安全:启用 MFA / WebAuthn,开启审计日志,定期审查 Casbin 策略。

八、最新更新动态

从公开信息看,Casdoor 目前仍处于活跃开发状态,最近一次代码推送在 2026-09-16。几个值得关注的方向:

  • 定位升级为 Agent-first IAM:在原有 SSO 能力之上,新增 MCP 网关与 A2A 支持,把身份能力延伸到 LLM / MCP Agent 场景。
  • 前端迁移到 React 18 + shadcn/ui:新控制台基于 Tailwind CSS 与 Vite 构建,旧的 Ant Design 控制台保留在 web-old/ 仅作参考,已不再提供服务。
  • 更现代的工具链:源码编译要求 Go 1.25+ 与 Node.js 20 LTS,前端走 Yarn 1.x。

这些变动说明项目正从「UI 驱动的 SSO」向「面向 Agent 与开发者的统一身份平台」演进,具体版本号与变更请以官方文档与仓库 releases 为准。

九、常见问题 FAQ

Q1:Casdoor 是认证库还是独立服务?

它是一个独立的身份提供者 / 服务,不是嵌入你代码的库,也不是反向代理。它自托管、存储用户、签发令牌,并自带管理控制台。

Q2:支持哪些协议?

OAuth 2.0、OIDC、SAML 2.0、CAS、LDAP、SCIM 2.0、WebAuthn、TOTP/MFA 以及 MCP,并可对接 Google Workspace、Entra ID、GitHub 等身份源。

Q3:一定要用 MySQL 吗?

不一定。通过 XORM 支持 MySQL、PostgreSQL、SQLite、SQL Server 等;all-in-one 镜像使用 SQLite,开箱即用,无需额外的数据库服务器。

Q4:必须懂 Casbin 才能用吗?

不是必须的。默认权限模型开箱可用;只有在需要细粒度 ACL / RBAC / ABAC 时才深入编写 Casbin 策略。

Q5:能对接现有身份源吗?

能。可对接 Google Workspace、Entra ID、GitHub 等,也支持 LDAP 同步与自定义 provider,便于渐进式迁移。

Q6:适合多租户 SaaS 吗?

适合。Casdoor 原生支持多租户,每个组织拥有独立用户、角色与品牌,可按组织定制登录页主题。

十、总结

Casdoor 的价值在于把分散的身份工作——用户存储、多协议端点、授权策略、审计、MFA、社交登录、乃至 MCP 网关——收敛到一个可自托管、可 UI 配置的服务里。它用单个 Go 二进制加一个数据库就能跑起来,没有 JVM,也没有集群要求。对于想要「拥有自己的用户目录」、而非只在反向代理前加个登录框的团队,这是一个完整且务实的选择;而对于正在探索把身份能力接入 LLM / MCP Agent 的开发者,它的 MCP 网关也提供了新的想象空间。

⚠️ 安全运营提示
自托管身份服务涉及密钥、令牌与用户数据,请妥善保管 conf/app.conf,启用 HTTPS 与 MFA,开启审计日志并定期审查 Casbin 策略;同时遵守所在地的数据与隐私相关法规,以及第三方身份提供方的服务条款。

在撰写本文的过程中,我主要参考了 Casdoor 的 GitHub 仓库(casdoor/casdoor)README.md 与 GitHub API 公开元数据(Stars、Forks、语言、协议、最近更新时间)。文中数据以官方公开信息为准,可能随版本更新而变化。

# 开源IAM
# 单点登录
# Casdoor
# OAuthOIDC
# 自托管
# MCP网关

本文由 AI 辅助整理,基于 Casdoor 的公开文档撰写;配图由 小黑 IP 生成。内容仅用于技术介绍,不构成商业使用授权建议。

未经允许不得转载:AI智汇具 - AI工具推荐与技能教程_好用的AI工具大全 » Casdoor:带 Web 控制台的开源身份认证与单点登录平台

评论 抢沙发

登录

找回密码

注册