GitPod 使用 SpiceDB 实现权限管理的核心在于其多租户分层模型和基于关系的权限继承机制,通过精细的 Schema 定义支持复杂的组织结构和资源隔离。 以下从权限建模、多租户支持、关键设计三个方面解析其实现: 一、权限建模与 Schema 设计 SpiceDB 的 Schema 定义了五种核心实体类型,通过关系( relation )和权限( permission 四、总结 GitPod 的 SpiceDB Schema 通过以下设计解决多租户复杂性: ✅ 实体关系嵌套:组织、项目、工作空间形成层级树,权限逐层继承。
zanzibar-googles-consistent-global-authorization-system/(动态细粒度) 基础设施选择 认证组件:Keycloak/Auth0/Okta 权限引擎:Casbin/OPA(Open Policy Agent)/SpiceDB 调试工具链 权限测试框架:OPA Rego Playground/ SpiceDB Playground 登录流诊断:oidc-client-js调试器
SpiceDB SpiceDB 受谷歌 Zanzibar 启发,是一个用于管理应用程序权限的数据库系统。 你可以通过 SpiceDB 创建一个数据模式以对你的权限需求进行建模,并使用客户端库将创建的模式应用到任何一个受支持的数据库中;你也可以向数据库中插入数据,并高效地检索问题的答案,例如查询 "这个用户有权访问某个资源吗 通常,我们提倡将授权策略与代码分离开,但 SpiceDB 更进一步,将数据与策略分离并将其以图的形式进行存储,以高效地应答授权信息的查询。 正因为这种分离,因此你必须确保应用程序的主要数据存储的变更会反映到 SpiceDB 中。 我们发现,在受 Zanzibar 启发的各种实现中, SpiceDB 是一个值得你基于当前授权需求进行评估的有趣框架。
采用者 End users 组织 用例 Details Authzed Uses TimeChaos to fake vDSO time calls to test SpiceDB. How SpiceDB uses Chaos Mesh to verify protection ByteDance 字节跳动自主研发的混沌工程平台主要用于公司自有技术体系。
05spicedbGitHub:https://github.com/authzed/spicedbStar:1553SpiceDB 是一个受 Zanzibar启发的数据库,用于存储、计算和验证应用程序权限