oauthcli Vibe 项目

Southclaws 团队开源发布的一款终端工具包

oauthcli 是 Southclaws 团队开源发布的一款终端工具包,全称 Open Authorization Command Line Interface,专门用于检查、测试和验证 OAuth 2.0、OAuth 2.1 以及 OpenID Connect 授权服务器的能力与合规性。项目基于 Go 语言开发,安装方式为一行命令 go install github.com/Southclaws/oauthcli@latest,发布后迅速获得了开发者社区的关注。

OAuth 2.1 是 OAuth 2.0 的最新修订版本,相比原标准做了大量安全加固,包括废弃隐式授权模式、强制要求 PKCE(Proof Key for Code Exchange)、将 refresh token 滑动窗口有效期限制为 30 天等。oauthcli 的核心价值在于帮助开发者快速验证一个授权服务器是否真正实现了这些新规范,以及在接入这些服务器之前确认其功能边界。

从命令体系来看,oauthcli 将功能划分为六个主要区域。发现命令(discover / metadata / jwks / resource)用于探测授权服务器发布了哪些能力和端点;审计命令(check)对服务器进行完整合规性检查,对每条 RFC 规范给出独立判定结果;令牌命令(token get / refresh / inspect / introspect / revoke / expect / status / clear / userinfo)覆盖令牌生命周期的全部操作;流程命令(flow code / device)实现授权码流程和设备授权流程的完整交互;客户端命令(client register / get / update / delete / cimd check / cimd new)管理动态客户端注册;工具命令(reference / pkce / skill / config)提供辅助参考和配置管理。

oauthcli 的技术实现有几个值得关注的细节。首先,所有命令均支持 --format json 输出,输出 schema 完整文档化,这意味着 AI Agent 可以像人类开发者一样直接调用同一个工具做自动化测试和验证,无需额外适配。其次,项目定义了 opencli.yaml 规范文件,这个规范文件既是命令行树的结构定义,也是行为契约,工具实现会针对这个契约进行完整测试。再次,令牌检查(token inspect)能够解码并验证令牌内容,token expect 命令可以根据声明值(如 --sub 1234 --aud my-api)做断言验证,验证失败时以退出码 5 返回,适合在 CI/CD 流水线中做自动化合规检测。

退出码体系是 oauthcli 的一大设计亮点:0 表示成功,1 表示运行时错误,2 表示服务器不可达,3 表示 OAuth 错误(如 invalid_client),4 表示配置文件或令牌不存在,5 表示断言失败或合规性检查不通过,6 表示令牌签名验证失败或已过期。每一种错误状态对应唯一退出码,使得脚本和自动化流程可以根据结果做精确的分支处理。

配置文件采用 YAML 格式,支持多 profile 管理,每个 profile 包含 issuer、client id、client secret、认证方式(支持 client_secret_basic、private_key_jwt、none 等)、scope 列表和回调地址。通过 oauthcli config init 可以交互式创建配置,也可以通过环境变量(OAUTH_ISSUER、OAUTH_CLIENT_ID 等)覆盖文件配置。

oauthcli 适用于以下场景:开发者在接入 Google、GitHub 等 OAuth 提供方之前验证其支持的能力范围;安全工程师对内部授权服务器做合规性审计;AI Agent 在执行需要 OAuth 授权的操作前自动化探测可用权限;CI/CD 流水线中嵌入 OAuth 集成测试,确保每次部署不会破坏授权流程。整个项目采用 MIT 许可证,代码完全开源,文档完善,适合作为 OAuth 学习和生产环境验证的双重工具。

官网链接:https://github.com/Southclaws/oauthcli

团队信息

由 AI 猎手自动发现

评论与建议

0 条评论