应用管理
概述
应用管理模块用于管理接入 Code Bird Cloud 平台的 OIDC/OAuth 2.1 客户端应用。每个应用代表一个需要用户认证服务的客户端程序,系统会为其分配唯一的 Client ID 和 Client Secret。
导航路径: 侧边栏 -> 应用管理
应用类型
Code Bird Cloud 支持以下四种应用类型,对应不同的 OAuth 2.1 使用场景:
| 类型 | 说明 | 典型场景 |
|---|---|---|
| Traditional | 传统 Web 应用 | 具有服务端的 Web 应用,可安全存储 Client Secret |
| SPA | 单页应用 | 前端渲染的单页应用(如 React、Vue),无法安全存储 Secret,使用 PKCE 流程 |
| Native | 原生应用 | 移动端或桌面端原生应用(iOS、Android、Electron 等) |
| MachineToMachine | 机器对机器 | 服务间通信,无用户交互,使用 Client Credentials 授权 |
应用列表
应用列表页面展示所有已创建的应用,支持分页和搜索。
列表字段
| 字段 | 说明 |
|---|---|
| 应用名称 | 应用的显示名称 |
| 应用类型 | Traditional / SPA / Native / MachineToMachine |
| Client ID | 应用的唯一客户端标识 |
| 描述 | 应用的简要说明 |
| 创建时间 | 应用创建时间 |
搜索与筛选
- 关键词搜索 (
search): 模糊匹配应用名称 - 应用名称 (
name): 精确匹配 - 应用 ID (
id): 精确匹配
创建应用
点击 "新建应用" 按钮进入创建页面。
导航路径: 应用管理 -> 新建应用
创建参数
| 字段 | 必填 | 说明 |
|---|---|---|
| 名称 | 是 | 应用的显示名称 |
| 类型 | 是 | 选择应用类型(Traditional / SPA / Native / MachineToMachine) |
| 描述 | 否 | 应用的简要说明 |
| 重定向 URI | 否 | OAuth 回调地址列表(创建时可选,后续编辑配置) |
API 调用:
POST /api/v1/applications请求示例:
json
{
"name": "我的 Web 应用",
"type": "Traditional",
"description": "企业管理后台",
"redirect_uris": ["https://app.example.com/callback"]
}创建成功后,系统会自动生成 Client ID 和 Client Secret。请妥善保管 Client Secret,它仅在创建时完整展示。
编辑应用
点击应用名称或操作列的编辑按钮,进入应用详情编辑页面。
导航路径: 应用管理 -> 编辑应用
基本信息
- 名称: 修改应用显示名称
- 描述: 修改应用说明
- 类型: 查看应用类型(创建后不可更改)
OIDC 客户端元数据
| 字段 | 说明 |
|---|---|
redirect_uris | OAuth 重定向 URI 列表 |
post_logout_redirect_uris | 登出后重定向 URI 列表 |
cors_allowed_origins | CORS 允许的源列表 |
grant_types | 授权类型(如 authorization_code、refresh_token、client_credentials) |
response_types | 响应类型(如 code) |
token_endpoint_auth_method | 令牌端点认证方式 |
logo_uri | 应用 Logo URL |
自定义客户端元数据
| 字段 | 说明 |
|---|---|
always_issue_refresh_token | 是否始终发放 Refresh Token |
rotate_refresh_token | 是否在刷新时轮换 Refresh Token |
refresh_token_ttl_in_days | Refresh Token 有效期(天) |
access_token_ttl_in_seconds | Access Token 有效期(秒) |
id_token_ttl | ID Token 有效期(秒) |
API 调用:
PATCH /api/v1/applications/:id请求示例:
json
{
"name": "更新后的应用名",
"oidc_client_metadata": {
"redirect_uris": ["https://app.example.com/callback"],
"grant_types": ["authorization_code", "refresh_token"]
},
"custom_client_metadata": {
"access_token_ttl_in_seconds": 3600,
"always_issue_refresh_token": true
}
}轮换 Client Secret
当 Client Secret 可能泄露或需要定期更换时,可以执行密钥轮换操作。轮换后,旧的 Client Secret 将立即失效。
操作方式: 在应用编辑页面点击 "轮换密钥" 按钮。
API 调用:
POST /api/v1/applications/:id/secret响应示例:
json
{
"client_id": "app_xxxxxxxxxxxx",
"client_secret": "new_secret_xxxxxxxxxx"
}注意: 轮换密钥后,请立即更新使用该应用凭证的所有服务配置,否则将导致认证失败。
删除应用
删除应用将永久移除该应用及其所有配置。此操作不可逆。
API 调用:
DELETE /api/v1/applications/:id注意: 删除应用前,请确保没有服务仍在使用该应用的 Client ID 和 Client Secret 进行认证。
