跳转到内容

yufu

为内网应用提供统一登录、授权与审计。一个 Rust 二进制加 PostgreSQL,按标准 OIDC 接入。

RustOIDC / OAuth 2.0PKCEVue 3PostgreSQLGo SDK

yufu 当前工作台,包含账户中心、开发者控制台和企业管理入口(演示数据)

当前工作台:账户中心、开发者控制台与企业管理入口(演示数据)

查看控制台使用指南与更多界面截图 →

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,生产配置经管理员审批后才能用于真实登录。

按 OIDC 接入

使用 Discovery 自动发现端点,按客户端类型选择服务端兑换或 PKCE,接入后即可获得 SSO 与退出联动。

本机开发只需要 Docker、Rust 与 pnpm。数据库由 compose 提供,服务启动时自动执行版本化迁移。

首次启动后访问 http://127.0.0.1:4000,用配置中的超级管理员账号登录。

完整的配置项、生产部署与接入流程见快速开始。

终端窗口
git clone https://github.com/Bin-hy/cobot-for.git
cd cobot-for
pnpm install --frozen-lockfile
pnpm build:web
docker compose up -d
cp conf/yufu.example.toml conf/yufu.local.toml
cargo 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 端点与能力声明
yufu 当前授权同意页,列出账户身份、用户名与邮箱权限(演示数据)

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

准备好接入第一个应用了吗?

从本机启动到生产部署,文档覆盖配置、协议、SDK 与运维。