后端与接口
需要让脚本/CI/CD/监控程序以机器身份认证进入…
管理 Celigo 入站 API token(PAT 与账户级 API token)的创建、最小权限范围、过期自毁、吊销与删除流程。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
需要让脚本/CI/CD/监控程序以机器身特定
解决思路
- 先确认这是入站认证需求:是外部机器调用进入 Celigo(API token),而不是 Celigo 出站调用外部系统(那是连接的 OAuth token,应改用 configuring-connections 技能)。判断标准是谁向谁证明身份。
- 决定 token 类型:仅自己用的 CLI、脚本或临时调用,用个人访问令牌(PAT),自助生成、无需设计范围、默认 90 天过期;共享或长期自动化(CI/CD、监控、外部调用方)用账户级 API token。
- 审计现有 token:运行 `celigo accesstokens list` 和 `celigo accesstokens get <id>`,检查 name/description 是否清晰、fullAccess 与范围数组、revoked、autoPurgeAt,以及是否为 apim 或连接器自动管理的 token;吊销或清除不再认识的陈旧 token。
- 决定访问范围:默认最小权限,使用一个或多个范围数组 `_connectionIds`、`_exportIds`、`_importIds`、`_apiIds`、`_mcpServerIds`;仅当自动化确实覆盖整个账户(如备份/导出工具、管理员配置)时才用 `fullAccess: true`。两者互斥。
- 范围数组需要真实资源 `_id`:若只有资源名,先用 `celigo account search "<resource-name>"` 解析为 id 再填入;若无法预先解析 id,则先生成 token 再在 UI 中补范围,不要默认留成 fullAccess。
- 每个消费者单独生成一个 token(每条流水线、每个脚本、每个外部客户端一个),这样泄露或下线只影响一个消费者,审计日志也能归属到正确的调用方;共享 token 会让每次吊销变成全体中断。
- 构造 token JSON(name/description,加上 `fullAccess: true` 或范围数组),用 `celigo accesstokens create < token.json` 创建。
- 生成时立即捕获密钥:token 值只在创建时完整显示一次,之后永远被掩码为 `******`;直接复制进消费方的密钥库,绝不放进聊天、工单或提交记录。
- 创建不是幂等的:看似失败的创建可能已经生成了 token,重试前先用 `celigo accesstokens list` 核实,避免产生重复或孤儿凭证。
- 为临时访问设置过期:承包商、一次性迁移或演示场景,设置 `autoPurgeAt`(账户 API token 在 30 天内,PAT 最多 90 天且默认 90 天),做法是 `celigo accesstokens get <id> > token.json`,把 autoPurgeAt 设为未来 30 天内的 ISO 时间戳,再 `celigo accesstokens update <id> < token.json`。
- 长期自动化可用永久 token,但要养成轮换习惯:先生成替代 token,切换消费者,再吊销旧 token。
- 泄露或消费者退役时立即吊销:`celigo accesstokens get <id> > token.json`,将 `revoked` 设为 true,再 `celigo accesstokens update <id> < token.json`;吊销会立即停止认证并保留记录与审计轨迹。
- 删除必须在吊销之后:先确保 `revoked: true`,再执行 `celigo accesstokens delete <id>`;删除是软删除,记录 30 天后永久清除。APIM token(`apim: true`)无法删除,只能吊销。
- 更新时注意 PUT 会整体替换记录:先 GET,只修改目标字段(范围、revoked、autoPurgeAt),再 update;不要把掩码值 `******` 当作真实密钥。
- PAT 只能由所属用户管理:其他用户的 PAT 在列表中可见但只读,编辑/吊销/删除会报 “This personal access token is owned by another user”;团队共管的凭证应使用账户 API token。
- PAT 继承创建者的权限并跟随其 90 天时钟:它立即反映权限变更,成员资格被移除即失效,默认 90 天过期;不要把它埋进 CI,CI 中应使用带范围的账户 API token,或至少为轮换设置日历提醒。
- 提交前核对清单:name/description 说明用途与消费者;只设置一种访问模型(fullAccess 或范围数组,不能同时);fullAccess 有正当理由;范围数组是真实资源 id;临时访问设置了 30 天内的 autoPurgeAt;每个消费者独立 token;已准备好把密钥写入密钥库;删除前已 revoked 且非 apim token。
适用边界 · 注意事项
- 需要的是 Celigo 出站调用外部系统(Salesforce、NetSuite、HTTP API)的认证时——那是连接的 OAuth access token,应使用 configuring-connections 技能。
- 需要认证的是人而不是机器时——用户记录才是人的账户访问,应使用 managing-users 技能。
- 调用方不是 owner/administrator 时无法创建或管理 token(会返回 403 Forbidden)。