Skip to content

Comparison with Casdoor

supdger edited this page Oct 4, 2026 · 1 revision

SandIAM 与 Casdoor 完整对比

文档整理日期为 2026-10-05;Casdoor 官方资料和 SandIAM 能力审计来自本会话 2026-10-04 的核对,本次只复读相关源码、变更日志和证据索引,没有重新部署或执行线上业务验证。本次比较不把本地链接检查当作所有外部文档内容或业务路径的验证。

这页供选型和接入设计使用。比较的是定性能力、实现入口、协议方向和已有证据,不提供未经同环境测试的性能、操作效率或成熟度排名。具体配置操作从管理员指南、业务接入和配置参考进入。

如何读这份比较

  • 源码已查到:有实际控制器、服务、配置或 SDK 入口,不等于安装后可用。
  • 历史运行证据:只适用于其冻结版本、载荷、平台及测试路径,不能自动变成当前全量验收。
  • 官方文档可证:Casdoor 文档说明支持该能力,本轮没有对 Casdoor 部署和互操作实测。
  • 对等流程未核实:本轮未确认同样的治理流程,不表示 Casdoor 没有或不能扩展。

产品定位、架构与接入

项目 SandIAM Casdoor
定位 SandAdmin 的身份与访问管理插件;为平台和接入应用提供身份、策略、数据范围、服务授权和审计 独立身份提供方与 SSO 产品,集中保存用户目录、签发 token 并提供管理控制台
后端与管理端 PHP/Webman 后端、Vue 管理端;独立应用用户门户 Go/Beego 后端、React 管理端;当前官方 README 描述 React 18、shadcn/ui、Tailwind、Vite,旧 Ant Design 前端保留在 web-old
数据库 仅 PostgreSQL 经 XORM 支持 PostgreSQL、MySQL、SQLite、SQL Server 等
安装与部署 SandPackage 消费完整插件 ZIP;依赖已有 SandAdmin/PostgreSQL 宿主,管理端由宿主构建激活 独立二进制、Docker 或 Helm;官方 README 说明多副本需要 Redis
接入方式 PHP、TypeScript、Dart 公共/管理 SDK,应用中间件、CLI、业务及机器调用示例 标准 OIDC 客户端、官方多语言 SDK 和框架集成,包括 PHP
许可 Apache-2.0;第三方依赖许可单独记录 Apache-2.0;不能把托管云套餐声明自动算作开源自部署能力

来源:SandIAM 源码入口、Casdoor README、Casdoor OIDC 接入。Casdoor 当前 README 也包含 Agent/MCP 定位,本轮没有深入核实其业务流程,不据此判定 AI 服务治理的替代关系。

身份、组织、用户与会话

能力 SandIAM 已核实范围 Casdoor 官方可证范围与核对点
组织、应用、环境 客户主体 → 接入应用 → 应用环境;三类对象创建、修改、停用/恢复及范围守卫 Organization 管理用户、应用、身份源;组织与实际业务租户的映射、隔离强度需按项目验证
身份隔离 管理员、人类用户和机器调用身份分开;授权与接口操作核对对象所属范围 用户属于组织;组织管理员限定组织、全局管理员可跨组织;不能只依据“多组织”推导已满足严格隔离要求
登录与会话 注册、登录、锁定、刷新、恢复、改密、撤销/退出 用户认证、SSO、会话与退出管理;接入项目仍须验证应用实际拒绝已撤销会话
MFA 与 Passkey TOTP、恢复码、挑战、WebAuthn 注册/认证及设备管理;限已声明算法与认证器能力 WebAuthn 登录;MFA 包含 TOTP、短信、邮件、RADIUS,支持恢复码;生产 WebAuthn 需要 HTTPS
用户生命周期 邀请、用户组、导入导出、入站目录同步、出站同步扩展、冲突与缺失保护、停用及会话撤销;内置驱动不保证双向同步 用户管理、禁用、软删除,LDAP及其他身份源同步、SCIM User/Group 配置;完整回收、导出和冲突流程需按项目核对
用户自助 独立 portal/;资料、会话、改密、MFA/Passkey及恢复 用户账号页面及安全设置;与 SandIAM 独立门户相同的交付和接入边界需核对

来源:SandIAM 管理员指南、应用用户指南、Casdoor 组织、用户、MFA、WebAuthn。

协议方向与限制

“支持协议”需要分清角色:身份提供方把认证结果交给下游应用;SP/客户端从上游身份源取得认证结果;目录同步和 SCIM 配置用于用户数据,不能代替登录验证。

协议或连接 SandIAM 角色与边界 Casdoor 角色与边界
OAuth 2.0 / OIDC Provider:授权码/PKCE、client credentials、refresh、userinfo、discovery/JWKS、revoke/logout;外部联合身份另由 federation 接入处理 对下游应用提供 OAuth/OIDC;OAuth provider 连接外部身份源;这些是两个方向
SAML 已核实 SP 接入:回调验签、属性映射、绑定解绑及冲突处理;本轮未确认 SAML IdP,不写双向支持 官方分别提供 SAML IdP 和作为 SP 接外部 SAML IdP 的文档
LDAP / LDAPS NativeLdapDirectoryAdapter 服务账号绑定与目录读取,用于同步;本结论不覆盖外部 LDAP 最终用户密码登录,也不证明 LDAP 服务端 可同步 LDAP 用户,登录密码交原 LDAP 校验,不同步密码;Casdoor 用户修改不回写 LDAP。另可充当简单 LDAP 服务端,仅 Simple Authentication、bind/search
SCIM ScimController / ScimService:Users/Groups、token、ETag及停用传播;具体同步方向按连接器配置核对 SCIM 2.0 服务端提供 User/Group CRUD/PATCH;另有读取外部 SCIM 身份源的 syncer。本轮未证实向任意下游的完整双向 provisioning
CAS CAS 服务端入口、已声明服务与票据流程;具体互操作须核对已启用配置和对端 官方文档提供作为 CAS 服务端的接入
Kerberos / SPNEGO KerberosProtocolService 与 PECL GSSAPI 验证器;真实 Realm、TLS上下文及环境配置决定运行条件,不以源码判定对端互操作通过 官方提供 Kerberos/SPNEGO 接入文档;本轮未核实同环境 Realm 互操作
RADIUS Access 为 PAP 密码路径,另有 Accounting/NAS 配置与 worker;不表示完整 EAP、CHAP 或挑战应答覆盖 官方提供 RADIUS 和外部 RADIUS MFA 配置;本轮未核实其各认证方法的等价覆盖

Casdoor 来源:OAuth grant、OIDC、SAML IdP、SAML SP、LDAP 接入、LDAP 服务端、SCIM。CAS、Kerberos、RADIUS 的文档入口见官方应用接入目录。

授权、接口治理与机器调用

SandIAM、Casbin 与 Casdoor 的关系

Casbin 是授权库:根据模型和策略判定主体能否对资源执行动作,不负责验证登录密码或提供用户目录。PHP-Casbin 是它的 PHP 实现;SandIAM 当前 Composer 依赖锁定 casbin/casbin 4.5.0,CasbinPolicyEngine::VERSION也核对该版本。4.5.0是当前发行依赖,不是所有未来版本的固定要求。此处官方说明与本地执行链于2026-10-05补核,未运行新的业务验收。

SandIAM 的应用用户策略实际调用 Casbin\Enforcer,不是只借用 Casbin 名称。PolicyAuthorizer加载可用的应用、身份、资源、动作和已发布快照,PublishedPolicyAdapter将事实映射为策略与角色关系,再由CasbinPolicyEngine调用enforceEx获得决定及命中规则。application-policy.conf包含应用域、资源、动作、主体/角色、属性条件及优先级效果。条件函数适配现有声明的条件语法,不能独自查询身份、选优先级或绕过Enforcer返回授权决定。

承担方 实际职责 接入时不能省略的部分
PHP-Casbin 按SandIAM装配的模型、已发布策略与角色关系执行应用用户策略匹配,处理条件、优先级及允许/拒绝效果 安装正确依赖,提供正确模型与事实;引擎不可用时拒绝,不能降级到另一套策略引擎
SandIAM应用用户授权链 身份与应用管理、策略保存/发布、快照加载与映射、范围有效性检查、实体范围复核及审计;模拟使用同一模型与事实 策略保存不等于发布;模拟不产生正式授权审计,也不产生业务副作用
SandIAM机器服务调用链 凭证签发/轮换/撤销、service grant、次数配额、网络/数据等级约束、授权实时重查及调用审计 ServiceInvocationAuthorizer这条链不能统称为Casbin执行;有效签名不替代实时grant与范围复核
接入业务 提供可信身份/实体属性,实施SQL或业务数据过滤,核对业务状态,在副作用前验权,并处理幂等与业务审计 不接受请求方随意声明可信属性;不把allowed=true当成所有数据自动可见或任意状态都可执行
Casdoor 独立身份产品,集成Casbin管理模型、策略与权限API 与SandIAM共享授权引擎生态不等于产品相同;Casdoor的Go服务、SDK及Go Casbin能力不能直接算作PHP-Casbin/SandIAM能力

应用用户策略链为:

策略配置 → 发布快照 → 加载当前可用身份/应用/资源事实 → PHP-Casbin Enforcer/enforceEx → 决定与命中规则 → SandIAM范围校验/审计 → 业务数据过滤与执行前复核 → 业务操作

机器调用另走凭证、服务grant和ServiceInvocationAuthorizer的实时授权/重验链。SandIAM本地源码直接依赖PHP-Casbin并实现SandAdmin插件及SDK;这不是通过调用Casdoor SDK实现应用用户策略。本页不据相似功能或名字推断代码血缘,也不宣称未经审计的绝对原创。

本地核对路径:sand-iam/plugin/sand-iam/app/runtime/CasbinPolicyEngine.php、PolicyAuthorizer.php、PublishedPolicyAdapter.php、ServiceInvocationAuthorizer.php(后三者同属该runtime目录),以及sand-iam/plugin/sand-iam/resources/casbin/application-policy.conf、sand-iam/plugin/sand-iam/composer.json、composer.lock和sand-iam/CHANGELOG.md。这些是仓内审计定位,不构造未经核实的公开源码URL。

能力 SandIAM 已核实范围 Casdoor 官方可证范围与核对点
权限内核 当前应用用户策略使用 PHP-Casbin 4.5.0;身份、角色、组、资源、动作与已发布策略快照适配现有契约 Casbin Model、Policy、Adapter、角色及暴露的权限 API;支持 RBAC/ABAC等模型
策略发布与模拟 保存与发布分开;已发布版本参与裁决,策略模拟与执行需使用正确应用和版本 可管理模型与策略、执行权限 API;同等的发布版本、审批或模拟工作流需按项目核对
数据范围 返回业务可执行的数据范围;ScopeMatcher、EntityScopeGuard和可信实体事实共同落实范围 模型可表达资源条件;不能据 ABAC 支持推导业务数据库已自动过滤
API 与路由治理 业务动作、接口目录、路由绑定、清单预检/确认、冲突及策略模拟;OpenAPI 3.0/3.1 导入映射已有资源与已发布动作 权限 API 可用于业务接口鉴权;同等接口目录、OpenAPI导入、路由清单预检与绑定流程未核实
机器身份与凭证 调用身份、签发/轮换/撤销、服务目录与授权、短期身份上下文 OAuth client credentials 支持无用户的服务间认证;不等同全部服务目录和凭证治理流程
调用约束 调用尝试次数配额、网络策略、数据等级;消费应用提供可信业务事实 resolver 同等配额、网络、数据等级治理流程本轮未核实,需按项目核对
执行前复核 authorizeInvocation / revalidateInvocation 实时重查授权、凭证、范围与约束;撤权后旧上下文不能仅依签名继续执行 token 和权限检查可作为接入入口;撤权传播、业务执行前复核、幂等及双侧审计需实际设计验证

业务系统仍负责业务对象、状态及规则。 两者都需要应用在副作用前执行权限检查,并把数据范围转成查询过滤或实体校验。登录成功、JWT验签成功、路由登记或后台保存配置均不能替代该工作。

SandIAM 的配额是调用尝试次数,不是金额预算或计费额度。网络/IP、资源归属、数据等级不能任由请求方声明;应由受信服务端解析。上下文可验证不代表业务可以重放;幂等键及每次重试前重新验权仍由接入流程负责。

来源:业务接入、OpenAPI 导入、机器调用、机器 provider、Casdoor 权限、Casdoor OAuth。

管理委派、事件、安全与初始化

能力 SandIAM 已核实范围 Casdoor 官方可证范围与核对点
管理委派 组织/应用范围管理委派、范围读写、撤销/恢复及越权门禁;不扩写为未核实的环境委派 全局和组织管理员;同等细粒度委派流程未核实
Webhook outbox、订阅、签名投递、投递记录、重试退避与状态管理 登录、登出、用户及资源变更等 HTTP POST 事件;同等重试退避与投递保障需核对
安全告警 重复失败阈值告警与处理;不是行为风险评分系统或 SIEM 有认证与操作事件、日志接入;同等告警阈值、处理闭环及外部安全平台接入需核对
审计归档保留 认证、授权、调用及管理审计,归档与保留策略;按声明配置运行 Record 记录组织、用户、IP、动作、请求/响应等;日志 provider/Entry 提供日志接入。不可篡改、归档及合规留存需另核对
初始化配置 导出、草稿与修订、预检、确认执行、幂等、漂移拒绝及逆序回滚 同等预检、幂等配置执行及回滚工作流本轮未核实;不是宣称无法扩展
自动处理 worker 默认关闭,目录同步、Webhook、安全保留、RADIUS等按配置与运行依赖启用 对应部署、同步、事件和会话功能按其配置启用;部署方需核对实际运行实例

初始化回滚是配置应用的回滚,不是任意业务系统部署或业务数据回滚。归档保留与清理也不等于默认删除审计;执行权限、备份与运行条件应遵守安全加固、备份恢复及配置参考。

Casdoor 来源:Webhooks、Record 源码、日志 provider、用户管理员范围。

原需求七个领域对账

下表保留原需求的全部领域;“有入口”与“当前版本已完成业务验收”分开记录。

原需求领域 对应能力与实际入口 本次证据层
1. 客户主体、应用、环境和服务调用身份的创建、查看、修改、停用与审计 组织/应用/环境及调用身份控制器、范围守卫与生命周期入口 2026-10-04审计查到实现入口;有历史路径证据,不据此声明当前宿主全部生命周期与界面已验
2. 服务目录、服务动作、服务授权、凭证签发/轮换/撤销和调用审计 服务目录与动作、CredentialIssuanceService、IdentityContextProvider、ServiceInvocationAuthorizer及可信事实 resolver 实现入口及历史运行记录;次数配额、网络/数据等级、执行前复核和双侧审计需绑定目标版本
3. 用户、用户组、邀请、导入导出、目录同步、角色、策略和数据范围 IdentityInvitationService、IdentityImportService、SyncConnectorService、PolicyAuthorizer、PolicyVersionService、ScopeMatcher、EntityScopeGuard 当前源码入口及历史证据;0.8.3 Windows特定策略路径已验,不推导0.8.4或当前全部生命周期通过
4. 注册、登录、会话、MFA和账号恢复 HumanAuthService、MfaService、SelfServiceService和独立门户 源码与历史认证路径证据;当前全部会话、Passkey和自助路径不统一计通过
5. OAuth/OIDC、联合身份、SCIM、CAS、Kerberos/RADIUS协议能力 OAuth/OIDC、Federation、SCIM、CAS、Kerberos和RADIUS服务及对应控制器 源码和历史协议证据;SAML只确认SP、RADIUS Access为PAP,真实外部对端互操作另验
6. 应用业务动作、接口目录、路由绑定、路由清单预检与确认、策略模拟和可追溯审计 ApiGovernanceService、RouteManifestService、OpenApiImportService、路由绑定与授权中间件、策略模拟及AuditWriter 当前源码及历史接入证据;业务显式装配、执行前验权与数据过滤,不据登记或预检成功声明全部接口已保护
7. 管理委派、事件通知、投递重试、安全告警、审计保留和初始化预检 两类grant控制器、AdminOrganizationAccess、WebhookService/worker、SecurityOperationsService、审计保留及InitializationService 源码、离线与历史运行证据;worker默认关闭,当前受限角色及初始化全过程未全验

编号逐条对应本地权威仓库 sand-iam/docs/product/sand-iam-product-requirements.md 第4节;实现与历史证据索引为 sand-iam/docs/development/sand-iam-task-board.md,授权细节为 sand-iam/docs/development/sand-iam-authorization-contract.md。这些是本地审计来源及仓内相对路径,未核实对应内容已公开,不为其构造远端URL。SDK、中间件、CLI与独立门户作为前文接入能力保留,不替换原需求编号。

版本与验收证据

版本或证据 可以证明 不可以证明
当前0.8.4(变更日志标正式发布,2026-10-04) 宿主声明由0.1.x修为>=0.1.0;包一致性及SandPackage版本准入;业务代码、锁文件、生命周期SQL保持0.8.3载荷 未重新安装、执行SQL或验收SandAdmin0.2.0业务;版本准入不等同实际业务兼容
0.8.3(2026-10-03) PHP-Casbin4.5.0及首次使用修复;Release记录Windows标准升级、允许/拒绝、保存/发布、撤销与审计特定路径;Mac事务回滚 Mac当前安装、界面和受限角色未实机全验;不能推导所有宿主和全部原需求通过
历史0.7.3冻结候选及2026-09-18账本 看板记录FLOW48/48、七业务链7/7、十门槛10/10及冻结旅程证据 不代表当前0.8.4全量复验,不等同公开发布、生产部署或线上验证;不构成与Casdoor定量优越性结论
本次文档整理 README 说明入口、Wiki 详细比较与导航、源码/官方资料对账、静态链接与差异检查 未安装、启动、执行数据库/协议互操作/浏览器/业务验证;文档发布不等同产品部署或业务验收

版本依据:源码变更日志、0.8.3 Release。历史.artifacts是仓内本地证据,未核实公开可取,不为其编造下载链接;验收时应从任务看板取得冻结版本、平台和原始记录。

选择与组合

  • 多语言、异构应用需要统一用户目录、OIDC/SAML/CAS SSO时,优先核对Casdoor的标准协议、身份源和SDK是否满足对端要求。
  • 已采用SandAdmin,并需要组织/应用范围委派、接口与路由治理、服务授权、执行前复核及数据范围时,SandIAM的业务接入模型值得作为整体评估对象。
  • 二者可设计组合:Casdoor负责外部身份与登录,SandIAM消费经核实的联合身份,再负责业务授权、服务治理和审计。必须先冻结身份映射、发行者/受众、组织与应用绑定、撤销传播、可信业务事实及审计关联,不能把任意外部token直接当SandIAM本地用户token。
  • 如已用Casbin库实施权限,可分别评估本地引擎与远程权限API的可用性、撤权传播和业务数据过滤;本页没有比较两种执行方式的延迟或容量。

Casdoor、Casbin与CasGate应分开:Casdoor是身份产品,Casbin是授权引擎;CasGate自述为Casdoor的独立fork,其新增功能不能计入Casdoor默认能力。

下一步按第一次使用、业务接入和机器调用挑选真实业务路径,验证允许、拒绝、撤销、数据过滤与双侧审计;把版本、宿主、启用配置和结果一起记录。

Clone this wiki locally