dsh-oidc
简体中文 | English
一次机构登录,直接使用获授权的模型。
当前源码提供 LiteLLM native OAuth 和显式启用的 oidc-llm 0.1 实验接入。两者共用浏览器/loopback、PKCE、Host 会话、刷新、退出与 DSH Provider;模型请求使用当前 Access Token,客户端不再申请或保存机构模型 API Key。个人 API Key 设置独立保留。
版本 @eduwork/[email protected] 面向 Node.js 24.18+ 和 DSH 0.2.1-rc.2,可独立安装到本机 DSH Web Profile;Web 后端不依赖 EduWork 桌面桥接。机构模型接入需要部署者提供兼容网关和公开 Profile 配置。
dsh plugin --profile web add @eduwork/[email protected]
启动 DSH 前,将 EDUWORK_OIDC_PROFILE 设为 Profile JSON 文件的绝对路径。默认 bundle 使用 Web 后端;EduWork 桌面用户继续使用发行配置。旧 Key Binding 配置需要先迁移。
开始接入
- 根据服务端选择 LiteLLM 接入指南 或 oidc-llm 实验接入。
- 复制对应的LiteLLM 示例或OIDC Token 示例,填写完整发现地址与所需公开配置。
- 在桌面 Host 使用 backend: desktop,本机 Web 使用 backend: web。仅身份登录仍可使用纯身份示例;该模式不提供企业模型。
- 登录后自动读取当前授权的模型目录。账户刷新不应覆盖用户后来选择的个人模型。
当前源码按模型 type 注册,仅 llm 进入对话。服务器只返回 ID 时,升级前须按实际模型 ID 补充 provider.models[].type;服务端类型优先,专用及类型未知的模型不进入对话。仅返回 ID 的服务端需同时补齐配置中的模型类型。详见模型说明。
从源码验证:
cd packages/dsh-oidc
npm ci
npm run check
配置加载、Host 组合和服务端要求见接入指南。发行装配需使用经过审查、已发布并锁定的包;源码修改不会自动进入现有安装包。
功能与边界
- OIDC 模式验证 ID Token 签名、issuer、audience、nonce 与 UserInfo subject。LiteLLM native 按其自身契约处理,不猜测 Token 类型或降级协议。
- 请求前检查 Token 有效期;临近到期自动刷新,并发刷新合并为一次。
- 退出清理本地授权并取消在途模型请求,尽力撤销 Refresh Token。已签发 Access Token 的服务端有效期由服务端管理。
- 模型目录、JSON/SSE、推理档位和附件处理复用 DSH Provider。机构配额由可选扩展通过共享 Host 传输读取。
- 品牌配置只接受受限数据,不加载远程代码。插件面向单机客户端,Web 仅监听本机。
进一步阅读:Profile 配置、桌面 Host、架构、安全边界、开发。
关于 @eduwork/dsh-oidc 的常见问题
@eduwork/dsh-oidc 是什么?
基于标准的 OIDC 身份, 授权的 模式访问, 声明品牌, 和 OpenAI 兼容的 模式集成 为 DeepSeek Harness
如何安装 @eduwork/dsh-oidc?
在项目目录运行 npm install @eduwork/dsh-oidc,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^18.2.0)、react-dom(^18.2.0)、@deepseek-ai/cordis(>=4.0.5 <4.1.0 || 4.1.0)、@deepseek-ai/dsh-fs(>=0.2.1-rc.2 <0.3.0-0 || 0.2.2-rc.1)、@deepseek-ai/dsh-llm(>=0.2.1-rc.2 <0.3.0-0 || 0.2.2-rc.1)、@earendil-works/pi-ai(^1.1.0)、@deepseek-ai/dsh-brand(>=0.2.1-rc.2 <0.3.0-0 || 0.2.2-rc.1)、@deepseek-ai/dsh-scope(>=0.2.1-rc.2 <0.3.0-0 || 0.2.2-rc.1)、@deepseek-ai/dsh-sandbox(>=0.2.1-rc.2 <0.3.0-0 || 0.2.2-rc.1)、@deepseek-ai/dsh-session(>=0.2.1-rc.2 <0.3.0-0 || 0.2.2-rc.1)、@deepseek-ai/dsh-timeout(>=0.2.1-rc.2 <0.3.0-0 || 0.2.2-rc.1)、@deepseek-ai/dsh-settings(>=0.2.1-rc.2 <0.3.0-0 || 0.2.2-rc.1)、@deepseek-ai/dsh-llm-pi-ai(>=0.2.1-rc.2 <0.3.0-0 || 0.2.2-rc.1)、@deepseek-ai/dsh-attachment(>=0.2.1-rc.2 <0.3.0-0 || 0.2.2-rc.1)、@deepseek-ai/dsh-api-remotes(>=0.2.1-rc.2 <0.3.0-0 || 0.2.2-rc.1)、@deepseek-ai/dsh-credentials(>=0.2.1-rc.2 <0.3.0-0 || 0.2.2-rc.1)、@deepseek-ai/dsh-authorization(>=0.2.1-rc.2 <0.3.0-0 || 0.2.2-rc.1)、@deepseek-ai/dsh-host-webserver(>=0.2.1-rc.2 <0.3.0-0 || 0.2.2-rc.1)、@deepseek-ai/dsh-client-ui-theme(>=0.2.1-rc.2 <0.3.0-0 || 0.2.2-rc.1)、@deepseek-ai/dsh-typert-protocol(>=0.2.1-rc.2 <0.3.0-0 || 0.2.2-rc.1)、@deepseek-ai/dsh-client-ui-sidebar(>=0.2.1-rc.2 <0.3.0-0 || 0.2.2-rc.1)、@deepseek-ai/dsh-client-ui-renderer(>=0.2.1-rc.2 <0.3.0-0 || 0.2.2-rc.1)、@deepseek-ai/dsh-client-ui-settings(>=0.2.1-rc.2 <0.3.0-0 || 0.2.2-rc.1)、@deepseek-ai/dsh-launch-environment(>=0.2.1-rc.2 <0.3.0-0 || 0.2.2-rc.1)、@deepseek-ai/dsh-client-ui-conversation(>=0.2.1-rc.2 <0.3.0-0 || 0.2.2-rc.1)、@deepseek-ai/dsh-client-ui-settings-models(>=0.2.1-rc.2 <0.3.0-0 || 0.2.2-rc.1)、@deepseek-ai/dsh-client-ui-settings-general(>=0.2.1-rc.2 <0.3.0-0 || 0.2.2-rc.1)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。
@eduwork/dsh-oidc 支持 TypeScript 吗?
该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/eduwork__dsh-oidc 是否存在。
@eduwork/dsh-oidc 支持 ESM 还是 CommonJS?
以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。
@eduwork/dsh-oidc 需要什么版本的 Node.js?
package.json 的 engines 字段要求 Node.js >=24.18.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。
@eduwork/dsh-oidc 可以商用吗?
@eduwork/dsh-oidc 使用 MulanPSL-2.0 AND MIT 许可。声明的许可为 MulanPSL-2.0 AND MIT,请阅读许可原文确认使用条件。以上为概括,不构成法律意见,请以许可原文为准。
@eduwork/dsh-oidc 的下载量有多少?
根据 npm 官方下载统计,@eduwork/dsh-oidc 在 2026/10/13 – 2026/11/11 这 30 天内被下载 3,610 次,日均约 120 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。
@eduwork/dsh-oidc 还在维护吗?
最新版本 0.3.3 发布于 2026/11/05(8 天前);至今共发布 13 个版本,其中过去 12 个月发布了 13 个;首次发布于 2026/09/05。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。