SuperAPI AI 工具集

thunder-authentication

安全与审计

查看项目

更新于 10-16 07:18

技能介绍

用途:为平台项目提供终端用户身份与授权。身份委托给 Thunder(平台身份提供方),API 网关将其作为外部 IDP 接入,因此带登录的项目两端读取同一套声明。

主要能力:SPA 使用 OIDC Authorization Code + PKCE 登录,从 ID token 读取声明(user.profile.groups);受保护后端不接触令牌,由网关校验后以请求头注入相同声明(X-User-Groups)。OAuth 客户端由平台拥有,无需自行创建、计算或硬编码。

使用方式:在 react-webapp shim 的 src/env.ts 中加入 <DEP>_* 键(如 USER_AUTH_CLIENT_ID、USER_AUTH_ISSUER、USER_AUTH_JWKS_URL、USER_AUTH_SCOPES,前缀取自依赖名),再配置 src/auth.ts、/callback 路由与 src/api.ts 的 Bearer 头。redirect_uri 需自行计算为 window.location.origin + '/callback'。会话存 localStorage 并开启 automaticSilentRenew,通过 refresh_token 静默续期。后端从 X-User-Groups 解析角色,无匹配角色返回 403(不可返回 401,否则 SPA 会反复重登);按 X-User-Name 查找目录记录,不可用 X-User-Id 作为记录键。

适用场景:需要登录与基于角色授权的 SPA 及其受保护后端。

限制:无 sign-out 端点,signoutRedirect() 会失败,需回退到 removeUser() 并重载;令牌存于 JS 可读存储;开发集群默认管理员为 admin/admin;目录端点、用户名字段与依赖接线由组织内部服务决定,暂未提供统一细节。