统一身份
身份与登录
TokenDance ID 作为统一身份提供方的公开边界。
统一登录目标
TokenDance ID 是 TokenDance 产品族的身份权威。GitHub、Google、Feishu/Lark 等第三方 provider 由 TokenDance ID 统一管理,各产品只消费 TokenDance ID OIDC。
推荐登录流程
- 浏览器产品使用 Authorization Code + PKCE。
- 服务端消费 access token 时必须校验 issuer、audience、signature、expiry 和 JWKS key id。
- 静态官网只保留低风险 profile personalization,不保存 access token、ID token 或 refresh token。
- 产品后端可以签发自己的产品 session,并在本地完成角色、资源和动作授权。
产品侧职责
- 产品可以拥有本地 session 和产品权限判断。
- 产品不直接新增第三方 OAuth app。
- 官网浏览器 session 只用于低风险个性化,不作为后端授权。
- Gateway API key 与 TokenDance ID 登录必须分开描述。
谁可以接入
- TokenDance 产品族内的新应用应优先作为 TokenDance ID OIDC relying party 接入。
- 产品可以拥有自己的 session、角色、资源权限和 API key 边界。
- 第三方 GitHub、Google、Feishu/Lark OAuth app 归 TokenDance ID 管理,业务产品不直接新增一套。
- 静态官网只使用低风险浏览器个性化;高信任 API 授权必须在产品后端验证。
当前不承诺
- TokenDance ID access token 不能当作 TokenDance Gateway API key。
- 官网登录态不能替代 AgentHub Hub Server 或 Gateway 后端授权。
- 公开文档不记录 client secret、admin key、回调错误详情或私有用户数据。
- 管理后台、provider UX 和组织级自助配置仍在持续完善。
产品接入检查
| 检查项 | 要求 |
|---|---|
| Callback | 使用产品自己的 callback,并登记到 TokenDance ID client |
| Token exchange | 浏览器应用使用 PKCE;服务端应用保管 client secret |
| Storage | 静态站不持久化 token;后端 session 只保存必要 claim |
| Authorization | 产品本地判断角色、资源和动作,不把登录等同于授权 |
| Logout | 清理产品本地 session,再跳转 TokenDance ID logout |
| Public docs | 只写端点、流程和占位变量,不写真实 secret、token、callback payload |
OIDC 公开端点
| 端点 | 路径 |
|---|---|
| Discovery | https://id.vectorcontrol.tech/.well-known/openid-configuration |
| Authorize | https://id.vectorcontrol.tech/oidc/authorize |
| Token | https://id.vectorcontrol.tech/oidc/token |
| UserInfo | https://id.vectorcontrol.tech/oidc/userinfo |
| JWKS | https://id.vectorcontrol.tech/oidc/jwks |