Coding-Dev-Tools/apiauth
GitHub: Coding-Dev-Tools/apiauth
APIAuth是一个通过加密本地存储管理API密钥和JWT生命周期的命令行工具,解决密钥轮换与审计的运维难题。
Stars: 2 | Forks: 0
# APIAuth
**用于API密钥和JWT生命周期管理的命令行工具——使用加密的本地密钥库生成、存储、验证、轮换和撤销密钥。**
[](https://github.com/Coding-Dev-Tools/apiauth/actions/workflows/ci.yml)
[](https://python.org)
[](https://github.com/Coding-Dev-Tools/apiauth/blob/main/LICENSE)
[](https://www.opensourcealternative.to/project/apiauth)
[](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, 令牌生命周期, 加密存储, 安全令牌, 密码学, 密钥审计, 密钥撤销, 密钥生成, 密钥轮换, 开发工具, 手动系统调用, 文档结构分析, 本地密钥库, 环境变量导出, 认证安全, 逆向工具