标准 OIDC / OAuth 2.0
Discovery、Authorization Code + PKCE、UserInfo、Introspection、Revocation、RP 发起退出与后通道退出。
RustOIDC / OAuth 2.0PKCEVue 3PostgreSQLGo SDK

当前工作台:账户中心、开发者控制台与企业管理入口(演示数据)
yufu 是单企业独立部署的统一身份与 SSO 平台。账户中心、开发者控制台和企业管理控制台属于同一个产品, 应用接入采用企业邀约与审批制,不提供公开应用市场。
标准 OIDC / OAuth 2.0
Discovery、Authorization Code + PKCE、UserInfo、Introspection、Revocation、RP 发起退出与后通道退出。
单企业 SSO
一个 issuer 服务全部内部应用。登录一次,在授权范围内跨应用免登录,退出按会话联动。
细粒度授权
角色、URI 权限、应用权限与 PDP 策略判断。应用访问必须显式分配,不会默认放行。
会话与撤销
刷新令牌轮换、撤销代次、设备与会话管理,所有管理写入进入审计。
自托管
单个 Rust 二进制加 PostgreSQL。Docker Compose 起步,systemd 或容器长期运行。
参考实现
Go Runtime SDK、机密 Web 示例与公共 SPA 示例,覆盖登录、保护 API 与退出联动。
yufu 是鱼符的拼音。唐代官员随身佩带鱼形的身份凭证,剖分为二:一半留在内廷, 一半带在身上,两半合上才算数。金、银、铜三品,对应不同的权级。
这个器物就是认证这个动作本身——持有一半不算身份,两半对上才算。标志因此是一条被中缝劈开的鱼: 分开是凭证,合起来才是身份。「三品」则提醒我们:认出你是谁还不够,还要知道你被允许走多远。
一个身份,不是一堆账号
固定 issuer,一次登录进入所有被授权的应用。内部应用不必各自维护一套密码。
访问显式授予,默认拒绝
应用接入走企业邀约与审批,用户能进哪些应用必须被明确分配,不存在「注册即可见」; 不受支持的执行凭据配置直接 fail closed。
凭证可撤回,行为留痕
刷新令牌轮换、会话按中心或按应用分别终止、退出按应用能力投递后通道通知, 每一次授权与撤销都进入审计。
自托管,密钥在自己手里
单个 Rust 二进制加 PostgreSQL,管理前端可嵌入交付。签名私钥、数据库与审计记录都由部署方掌握。
启动 PostgreSQL,配置 issuer 与 RSA 签名密钥,运行 yufu 并完成首次管理员登录。
开发者在控制台登记回调地址与 scope,生产配置经管理员审批后才能用于真实登录。
使用 Discovery 自动发现端点,按客户端类型选择服务端兑换或 PKCE,接入后即可获得 SSO 与退出联动。
本机开发只需要 Docker、Rust 与 pnpm。数据库由 compose 提供,服务启动时自动执行版本化迁移。
首次启动后访问 http://127.0.0.1:4000,用配置中的超级管理员账号登录。
完整的配置项、生产部署与接入流程见快速开始。
git clone https://github.com/Bin-hy/cobot-for.gitcd cobot-for
pnpm install --frozen-lockfilepnpm build:webdocker compose up -d
cp conf/yufu.example.toml conf/yufu.local.tomlcargo run --bin yufu --features webui -- \ --config conf/yufu.local.toml \ --allow-insecure-loopback-cookies只实现经过验证的协议子集:授权码、PKCE S256、刷新令牌轮换与标准退出。不提供多租户、 外部 IdP 联邦、SAML/LDAP/SCIM 或 MFA。
| 端点 | 路径 | 说明 |
|---|---|---|
| Authorization | /oidc/authorize |
仅 response_type=code、PKCE S256 |
| Token | /oidc/token |
authorization_code 与 refresh_token |
| UserInfo | /oidc/userinfo |
Bearer access token |
| Introspection | /oidc/introspect |
Reader 凭据 |
| Revocation | /oidc/revoke |
access / refresh token |
| End session | /oidc/end-session |
RP 发起退出,RS256 时发布 |
| Discovery | /.well-known/openid-configuration |
端点与能力声明 |

当前授权同意页:账户身份、用户名与邮箱权限逐项披露(演示数据)