ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Casdoor核心概念扫盲:组织、应用、用户与令牌,10分钟吃透身份管理骨架

Casdoor核心概念扫盲:组织、应用、用户与令牌,10分钟吃透身份管理骨架 Casdoor核心概念扫盲组织、应用、用户与令牌10分钟吃透身份管理骨架【免费下载链接】casdoorAn open-source Agent-first Identity and Access Management (IAM) /LLM MCP agent gateway and auth server with web UI supporting OpenClaw, MCP, OAuth, OIDC, SAML, CAS, LDAP, SCIM, WebAuthn, TOTP, MFA, Face ID, Google Workspace, Azure AD项目地址: https://gitcode.com/gh_mirrors/ca/casdoor如果你听说过 Casdoor 却觉得它很庞大、概念太多这篇文章就是为你准备的。Casdoor是一个开源的、可自托管的身份与访问管理IAM平台支持 OAuth、OIDC、SAML、CAS、LDAP、SCIM、WebAuthn、TOTP/MFA 等主流协议并提供 Web 管理控制台。本文用 10 分钟带你扫盲它的四大核心概念——组织Organization、应用Application、用户User、令牌Token帮你快速吃透这套身份管理系统的骨架。一张图看懂四个概念的分工先建立整体认知。Casdoor 里的所有资源都围绕一个简单的主线运转概念一句话理解源码位置 组织用户目录的容器隔离不同企业/团队的数据object/organization.go 应用委托登录给 Casdoor 的业务系统一个 OAuth 客户端object/application.go 用户组织里的账户即是谁object/user.go 令牌登录成功后签发的凭证即允许访问的证明object/token.go一句话串联用户归属于某个组织在某个应用里登录Casdoor 验证身份后签发令牌应用拿令牌放行请求。这就是整个身份管理的骨架。组织Organization用户目录的边界组织是 Casdoor 中数据隔离的基本单位——不同组织的用户、应用、权限彼此独立。你可以把它想象成一家公司密码策略密码类型bcrypt、argon2 等、密码强度要求、有效期、历史密码检查都在组织级别配置PasswordType、PasswordOptions等字段登录页品牌Logo、网站地址、默认头像、语言等都按组织定制每个组织可以有自己的登录门面默认应用DefaultApplication决定了用户不指定应用时走哪套登录流程安全策略IP 白名单、MFA 配置项、令牌保留天数TokenRetentionDays等都挂在组织上。内置演示环境的built-in组织就是这样一个完整的示例。组织的完整字段定义可以从 object/organization.go 看到。 新手记忆点先建组织再谈其他。用户名是组织内唯一而非全局唯一——所以built-in/admin指的是built-in组织的admin用户而不是一个带斜杠的用户名。应用Application登录委托的客户端应用 一个把登录工作委托给 Casdoor 的业务系统本质上就是一个 OAuth 2.0 客户端。它的关键字段见 object/application.go可以分成三组接入身份ClientId、ClientSecret、RedirectUris——应用接入协议的核心三元组登录方式SigninMethods和Providers决定这个应用允许用户用什么登录——密码、验证码、WebAuthn、Face ID还是微信、GitHub、Google 等第三方身份源令牌策略ExpireInHours、RefreshExpireInHours、TokenFormatJWT 等、GrantTypes控制该应用签发的令牌长什么样、活多久。应用还决定登录体验细节是否开启注册EnableSignUp、是否支持访客登录EnableGuestSignin、SAML 属性映射SamlAttributes等。 新手记忆点一个组织下可以挂多个应用比如同一个企业可以同时有一个 Web 后台和一个移动端 App各自拥有独立的 ClientId 和登录策略但共享同一套用户。用户User组织里的是谁用户是身份管理的最终主角。Casdoor 的用户模型object/user.go非常丰富基础身份用户名、显示名、头像、邮箱、手机邮箱/手机号是否验证EmailVerified单独记录组织内状态IsAdmin是否管理员、IsForbidden是否禁用、IsDeleted软删除标记、Affiliation部门、Tag标签——这些是权限与分组的抓手密码存储Casdoor 支持多种密码哈希算法实现分布在 cred/ 目录下如 cred/argon2id.go、cred/bcrypt.go第三方账号绑定GitHub、Google、WeChat、AzureAD 等字段登录第三方身份源后会自动绑定到本组织用户上实现一个账户多种登录方式。用户还记录CreatedIp、LastSigninTime等审计字段方便安全团队追查异常登录。令牌Token登录成功的电子通行证用户验证通过后Casdoor 签发令牌。Token 结构定义在 object/token.go核心字段字段含义Application/Organization/User令牌属于哪个应用的哪个用户Code授权码授权码模式下先给 Code再换 TokenAccessToken/RefreshToken访问令牌与刷新令牌ExpiresIn有效期秒Scope权限范围如read:userGrantType签发方式授权码、密码、刷新令牌等令牌签发的具体实现按协议拆分JWT 格式见 object/token_jwt.go、OAuth 流程见 object/token_oauth.go、标准 JWT 与签名密钥见 object/token_standard_jwt.go 和 object/token_jwt_key.go。令牌过期后系统还会自动清理object/token_cleanup.go。 新手记忆点AccessToken 短命、RefreshToken 长命是通用惯例。应用拿 Access Token 访问 Casdoor 接口换取用户信息过期后用 Refresh Token 静默续期不打扰用户。概念之外的两兄弟权限与会话骨架之外还有两个高频概念10 秒了解权限Permission谁Users/Groups/Roles可以对什么资源做什么操作规则用 Casbin 模型表达支持 RBAC/ACL/ABAC定义见 object/permission.go。会话Session一次登录在浏览器端的会话记录可在控制台实时查看并强制下线。快速上手30 秒跑起来验证概念不想读文档直接跑一个自带示例数据的容器docker run -p 8000:8000 casbin/casdoor-all-in-one打开http://localhost:8000用组织built-in、用户admin、密码123登录。登录后你会在 Web 控制台里看到组织、应用、用户、令牌、权限的完整管理页面——把本文的概念和界面对照一遍骨架就真正吃透了。示例数据的初始结构可以参考 init_data.json.template其中按organizations、applications、users分组列出了内置数据是很好的活教材。小结一张关系图收尾组织圈出边界密码策略、登录品牌、安全规则都在这里配置应用是入口每个接入系统一个应用拥有独立的 ClientId 和登录方式用户是主体归属于组织可绑定多种第三方身份令牌是凭证登录成功后签发应用凭它放行请求权限管访问基于 Casbin 规则决定谁能做什么。掌握这五块拼图你就能看懂 Casdoor 控制台里的每一个页面也能顺畅地把自己业务的登录接入到这套开源 IAM 骨架之上。输出文章【免费下载链接】casdoorAn open-source Agent-first Identity and Access Management (IAM) /LLM MCP agent gateway and auth server with web UI supporting OpenClaw, MCP, OAuth, OIDC, SAML, CAS, LDAP, SCIM, WebAuthn, TOTP, MFA, Face ID, Google Workspace, Azure AD项目地址: https://gitcode.com/gh_mirrors/ca/casdoor创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表