Coding-Dev-Tools/apiauth

GitHub: Coding-Dev-Tools/apiauth

APIAuth是一个通过加密本地存储管理API密钥和JWT生命周期的命令行工具,解决密钥轮换与审计的运维难题。

Stars: 2 | Forks: 0

# APIAuth **用于API密钥和JWT生命周期管理的命令行工具——使用加密的本地密钥库生成、存储、验证、轮换和撤销密钥。** [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/003ce2ef89110917.svg)](https://github.com/Coding-Dev-Tools/apiauth/actions/workflows/ci.yml) [![Python](https://img.shields.io/badge/python-3.10%2B-blue)](https://python.org) [![License](https://img.shields.io/badge/license-MIT-green)](https://github.com/Coding-Dev-Tools/apiauth/blob/main/LICENSE) [![Open Source Alternative](https://img.shields.io/badge/Open_Source_Alternative-%E2%87%92-blue?logo=opensourceinitiative)](https://www.opensourcealternative.to/project/apiauth) [![LibHunt](https://img.shields.io/badge/LibHunt-%E2%87%92-blue?logo=codeigniter)](https://www.libhunt.com/r/Coding-Dev-Tools/apiauth) ## 安装 ``` pip install apiauth # 生成 API 密钥 apiauth generate api-key --name "My API Key" --service "api-gateway" --expiry-days 90 # 列出所有密钥及其过期状态 apiauth list # 导出用于 CI/CD apiauth export --format github-actions ``` ## 功能特性 - **生成**:通过单一命令生成API密钥和JWT - **导入**:将现有API密钥导入加密的密钥库 - **验证**:针对存储的哈希值验证API密钥——检查撤销状态和过期时间 - **轮换**:安全轮换密钥和令牌——旧值会被哈希处理 - **撤销**:立即撤销受损密钥 - **列表与搜索**:按服务列出密钥并显示过期状态指示器 - **导出**:导出为环境变量、dotenv、JSON或GitHub Actions格式 - **审计**:审计密钥库中的过期、即将过期和已撤销的密钥 - **加密的本地密钥库**:采用AES-256-GCM加密,主密钥存储于 `~/.apiauth/` - **CI/CD集成**:为GitHub Actions、GitLab CI等导出密钥 ## 命令 ### `apiauth generate` 生成新的API密钥或JWT。 ``` apiauth generate api-key --name "My API Key" --service "api-gateway" --expiry-days 90 apiauth generate jwt --name "My JWT" --service "auth-service" --expiry-days 30 --claim role=admin ``` ### `apiauth list` 列出所有存储的密钥及其过期状态。 ``` apiauth list apiauth list --service "api-gateway" apiauth list --json-output ``` ### `apiauth show` 显示特定密钥的详细信息。 ``` apiauth show ``` ### `apiauth verify` 针对存储的哈希值验证API密钥。 ``` apiauth verify ak_xYz123abc... ``` ### `apiauth import` 将现有密钥导入密钥库。 ``` apiauth import ak_existing_key_value --name "Legacy Key" --service "api" ``` ### `apiauth rotate` 轮换密钥并哈希处理旧值。 ``` apiauth rotate ``` ### `apiauth revoke` 立即撤销密钥。 ``` apiauth revoke ``` ### `apiauth export` 导出密钥供外部使用。 ``` apiauth export --format env --service "api-gateway" apiauth export --format dotenv apiauth export --format github-actions apiauth export --format json ``` ### `apiauth audit` 审计密钥库健康状况。 ``` apiauth audit ``` ### `apiauth stats` 查看密钥库统计信息。 ``` apiauth stats ``` ## 导出格式 | 格式 | 使用场景 | | ------------------ | -------------------------------------- | | `env` | Shell源脚本(`export KEY=value`) | | `dotenv` | `.env`文件(无需 `export` 前缀) | | `github-actions` | `$GITHUB_ENV` 和工作流YAML | | `json` | 程序化使用 | ## 安全性 - 主密钥永不离开 `~/.apiauth/master.key` - 密钥库使用AES-256-GCM加密 - 明文密钥仅在创建时显示一次 - 轮换后的密钥其旧值会被哈希处理 - 导入的密钥仅以SHA-256哈希值存储 - `verify` 命令基于存储的哈希值进行验证——不存储明文 ## 存储 密钥和配置存储在 `~/.apiauth/` 目录下: - `~/.apiauth/master.key` — AES-256-GCM主密钥(永不共享) - `~/.apiauth/keystore.enc` — 加密的键值存储 - `~/.apiauth/config.yaml` — 用户配置 ## CI/CD集成 ``` # 在您的部署管道中 export $(apiauth export --format env --service production) # 发布前进行审计 apiauth audit --exit-on-expired ``` ## 发展路线图 - [ ] 支持Vault的远程密钥库(HashiCorp Vault、AWS Secrets Manager) - [ ] 通过CLI或Webhook发送自动过期通知 - [ ] GPG密钥支持 - [ ] 用于AI辅助密钥管理的MCP服务器 - [ ] 用于团队密钥库管理的Web界面 - [ ] 用于机密配置的Terraform提供程序 ## 许可证 MIT — 详见 [LICENSE](LICENSE) 隶属于 [Revenue Holdings](https://coding-dev-tools.github.io/revenueholdings.dev/) —— 一套由自主AI代理构建的11个开发者CLI工具。另请查看 [API Contract Guardian](https://github.com/Coding-Dev-Tools/api-contract-guardian)(破坏性变更检测)、[DeployDiff](https://github.com/Coding-Dev-Tools/deploydiff)(基础设施差异)、[json2sql](https://github.com/Coding-Dev-Tools/json2sql)(JSON → SQL)、[ConfigDrift](https://github.com/Coding-Dev-Tools/configdrift)(配置漂移检测)、[DeadCode](https://github.com/Coding-Dev-Tools/deadcode)(死代码清理)、[APIGhost](https://github.com/Coding-Dev-Tools/apighost)(模拟API服务器)、[Envault](https://github.com/Coding-Dev-Tools/envault)(环境变量同步)、[SchemaForge](https://github.com/Coding-Dev-Tools/schemaforge)(ORM转换器)和 [click-to-mcp](https://github.com/Coding-Dev-Tools/click-to-mcp)(CLI → MCP服务器)。
标签:API安全, API密钥管理, GitHub Actions集成, JSON输出, JWT管理, SOC Prime, 令牌生命周期, 加密存储, 安全令牌, 密码学, 密钥审计, 密钥撤销, 密钥生成, 密钥轮换, 开发工具, 手动系统调用, 文档结构分析, 本地密钥库, 环境变量导出, 认证安全, 逆向工具