← 文章与指南

给定时任务一个独立身份

创建 Sudomimus Automation、发放受限凭证,并在停用任务时保留个人登录能力。

每晚备份、发布流水线或定时同步,不应直接使用配置者的个人凭证登录。Sudomimus 可以为固定流程创建归属于账户的 Automation 身份。它有独立的名称、凭证和登录记录。暂停或撤销这个身份,不会改变你的个人登录方式。

产品概览见 Agent 与自动化。

如果程序会读取上下文、自己选择工具和下一步,则应使用 Agent。这两类身份都不会自动获得应用内的业务权限。任务登录后可以做什么,仍由你的应用决定。

1. 按任务和环境创建身份

在 With 门户打开程序化访问 → 自动化,选择创建。名称可以写为“生产环境每晚备份”。在说明中记录触发器、运行位置和负责团队。测试环境或另一条流水线应使用另一个 Automation。

Automation 归你的账户所有,不是第二个用户账户。你可以独立管理它的凭证和会话。

2. 选择并限制凭证

最便捷的方式是为该 Automation 和目标应用创建访问密钥。立即将密钥存入受保护的位置;门户只会在创建或同一请求的准确重试中显示秘密部分。凭证应存放在密钥管理服务或受保护的运行环境,不能写进仓库或任务定义。

如果运行环境已有可靠的 Ed25519 私钥存储和签名能力,可改为注册公钥。只有公钥会提交给 Sudomimus。将公钥限制到目标应用或扇区;创建后不能修改覆盖范围。

生产与测试环境分别使用凭证。凭证范围只限制任务能向哪些应用证明身份,不会赋予这些应用中的数据或操作权限。

3. 在目标应用允许 Automation 登录

应用必须在第一层规则中明确允许与凭证相符的 Automation 方法。允许账户使用 AccessKey 的规则,不会自动允许 Automation 使用 AccessKey。

凭证 所需的第一层方法
Automation AccessKey AUTOMATION_ACCESS_KEY_DIRECT
Automation Ed25519 公钥 AUTOMATION_PUBLIC_KEY_DIRECT

还需配置允许所属账户的第二层 realize 规则,以及第三层 DIRECT_ISSUE 返回规则,然后启用应用。这些规则默认拒绝;只有凭证并不足以登录。

4. 使用凭证取得会话

使用 AccessKey 时,任务从受保护的服务端环境调用 Native 直发接口。示例通过环境变量读取秘密,避免把秘密写进源码:

AccessKey 会话交换TypeScript
const response = await fetch(
"https://native-api.sudomimus.com/direct-issue/access-key",
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
applicationAnchor: process.env.SUDOMIMUS_APPLICATION_ANCHOR,
accessKeyIdentifier: process.env.SUDOMIMUS_ACCESS_KEY_ID,
accessKeySecret: process.env.SUDOMIMUS_ACCESS_KEY_SECRET,
}),
},
);
if (!response.ok) {
throw new Error(`Automation sign-in failed (${response.status})`);
}
const { accessToken, refreshToken } = await response.json();

按 Native 和 Session 文档校验令牌并保护 Refresh Token。不要将凭证或令牌写入任务日志。如果缺少必需的信息或用户授权,Native 可能返回需要浏览器处理的 Errand,而不是令牌;任务应报告需要人工处理,不能无限重试。

Automation 的 Access Token 通过扇区范围内的 sub 标识所属账户,并在 act.sub 中携带独立的执行者标识。应用必须校验令牌类型,并自行决定任务的业务权限。

5. 轮换和停用任务

先创建替代凭证、更新运行环境,并确认新凭证能登录,再撤销旧凭证。调查问题时可以暂停 Automation。恢复前,检查调度器是否会补跑旧任务。任务永久停用时可撤销 Automation;该操作无法撤回。

门户操作和生命周期说明见管理自动化。如果每次登录时都有人可以在浏览器中确认,发放长期秘密前可先比较设备授权流程。