Fetch Feishu tenant identity from app credentials
This commit is contained in:
1 parent
0528bc4b9a
commit
eb3861bbe8
7 files changed
+316
-11
No files matched your search
@@ -52,3 +52,18 @@
|
||||
线上新增 `/api/system/identity` 后托管 Nginx 仍使用旧白名单,浏览器看到 `ERR_EMPTY_RESPONSE`(Nginx 444);本机管理进程可正常返回 401。已有 `/api/system/tls/domain` 路由在无凭据时返回 401,不能把用户同时报告的域名保存失败归结于同一缺失路由。Vue 侧栏在 `route` 创建前注册 watch,导致初始化时引用尚未声明的变量;WireGuard SVG 含截断的路径数据。
|
||||
|
||||
每次启动且确认当前是有效 Nginx HTTPS 托管站点时,按已注册 Gin 路由重建站点白名单;文件内容相同则不重载,冲突或 `nginx -t` 失败时保留旧站点并记录日志,不阻止本机服务启动。公网只同步已注册 API、固定身份端点与当前单条运行的同域认证组件,未知路径仍 444。验收:新身份管理 API 不再返回空连接,未经认证返回 401;既有域名 PUT 也仍返回 401,授权后的保存需单独实测;设置和编辑页无布局初始化异常;SVG 路径有效;Nginx 测试通过。恢复时使用 `/tmp` 的上一版二进制和原 Nginx 站点快照重新加载,不修改专线或飞书凭据。
|
||||
|
||||
## 7. 自动读取飞书企业标识(2026-10-22,S3)
|
||||
|
||||
当前管理员必须手填 `tenant_key` 才能启用身份服务;用户提供的飞书 SDK `tenant.v2.tenant.query` 可通过应用凭据获取企业信息。新增仅管理员可调用的 `POST /api/system/identity/tenant`:沿用 HTTPS 管理入口限制,使用表单中 App ID/Secret 或同一 App ID 已保存的加密 Secret,向飞书换取 tenant access token 后查询企业名称和 tenant_key。仅返回这两个字段,不保存临时输入的凭据、令牌或查询结果;响应禁止缓存。页面提供「自动获取」并回填可编辑字段;保存启用配置且企业标识为空时也尝试自动获取。更换 App ID 时绝不复用原 App Secret 或旧企业标识;查询失败时不启用或改变已保存的配置。
|
||||
|
||||
接口限定固定飞书域名、短超时、受限响应体和无重定向;错误不回显密钥或 token。飞书授权需要应用具备企业信息读取权限(按飞书后台实际授权提示配置)。管理员仍可手填企业标识以兼容既有配置;真实飞书 API 联调在获得轮换后的凭据时进行。
|
||||
|
||||
| 验收 | 操作与预期 | 验证 |
|
||||
|---|---|---|
|
||||
| AC-07-01 | HTTPS 管理员查询正确凭据,返回企业标识与名称;未保存凭据不落库 | 模拟上游请求/响应 |
|
||||
| AC-07-02 | 同一 App ID 可复用加密 Secret;换 App ID 不复用旧密钥或旧租户 | 管理接口测试 |
|
||||
| AC-07-03 | 飞书拒绝授权、响应异常、无标识或 HTTP 管理请求时,安全失败且不泄露凭据 | 负向测试 |
|
||||
| AC-07-04 | 启用时企业标识留空可自动获取;查询失败不保存;手工输入兼容 | 管理接口测试与前端构建 |
|
||||
|
||||
发布前完成 Go 测试与前端构建;部署后检查新路由被托管 Nginx 白名单接受、未授权返回 401,并在轮换飞书 Secret 后进行真实查询。恢复可回退二进制与前端资源;不需要数据迁移,也不修改已运行专线。
|
||||
Reference in new issue
Block a user