SuperAPI AI 工具集

spacetimedb-auth

安全与审计

查看项目

更新于 10-15 20:32

技能介绍

用途:处理 SpacetimeDB 的身份、JWT 声明、访问控制与授权策略。

主要能力:SpacetimeDB 从 JWT 的 sub 与 iss 声明派生 Identity,可用 identity 做稳定归属,用 JWT 声明做提供方、受众、角色与策略判断;在 client_connected/clientConnected 中拒绝未认证客户端,避免其订阅或调用 reducer;校验 issuer 与 audience 后再信任 subject 或自定义声明;以 senderAuth/SenderAuth/sender_auth() 作为 JWT 详情来源,而非仅信任客户端提供的 identity;在 reducer 内用角色或自定义声明助手做授权检查,并对预期拒绝返回面向调用方的错误。RLS 为实验特性,其规则是 SQL 过滤器,用 :sender 表示调用者身份,返回单表完整行,同一表多规则为 OR,模块所有者可绕过 RLS。

必要用法:TypeScript 中可导入 SenderError,在 clientConnected 回调中检查 ctx.senderAuth.jwt 是否为 null,校验 jwt.issuer 与 jwt.audience 是否匹配部署的 OIDC 客户端 ID 列表,不匹配则抛出 SenderError。

限制:声明名称、issuer 与 audience 因部署而异,不应硬编码示例值,除非项目已有;认证身份校验应与表可见性及行级授权决策分开;HTTP 令牌机制属于 spacetimedb-http 技能范围。具体配置细节与代码示例以项目实际情况为准,资料未提供其他平台、价格或效果信息。