0014-admin-claude-login.md 1.7 KB

ADR-0014 在后台完成 Claude 登录

  • 状态:Accepted · 日期:2026-10-23

背景

服务以 agentsvc 运行(ADR-0012),每次登录都要在服务器终端执行 agent-claude auth login,不够方便。实测确认官方 CLI 在非 TTY 下也支持登录:先输出授权网址,再从标准输入读取授权码。

决策

  • 后台"概览"页提供登录、重新登录、退出登录。服务端以 agentsvc 身份启动官方的 claude auth login(可选 --sso、--email),把授权网址交给后台;管理员在 Claude 官方页面登录后,把页面显示的一次性授权码粘贴回后台,服务端写入 CLI 的标准输入
  • 同一时间只允许一个登录流程,10 分钟超时,关闭对话框即取消;授权码无效时可以重新输入
  • 授权码只在内存中转交:不写入日志、数据库和审计详情(审计只记录"发起 / 成功 / 失败 / 取消"),有测试覆盖
  • 终端方式 agent-claude auth login 继续保留

合规考虑

Anthropic 条款要求登录在其官方流程中完成,开发者不得收集、保存或中转 Claude.ai 的凭证或会话令牌。本方案中:登录在官方页面完成,凭证的交换和保存由官方 CLI 负责,AgentServer 接触不到密码和令牌;但它会转交一次性授权码,这一步条款没有明确规定。考虑到是账号所有者登录自己服务器上的官方 CLI,效果等同于通过 SSH 把授权码粘贴进终端,判断为低风险;希望完全避开时使用终端方式。不构成法律意见。

安全

  • 接口只对后台管理员开放;后台开放到本机以外时必须使用 HTTPS(授权码会经过网络)