SuperAPI AI 工具集

azure-provision

部署与运维

查看项目

更新于 10-16 05:45

技能介绍

用途:在 Azure CLI 被条件访问策略拦截、无法交互式 az login 时完成自动化引导。Azure 门户与 CLI 属于不同的 Entra 应用,策略只针对 CLI(应用 ID 04b07795-8ddb-461a-bbee-02f9e1bf7b46)时门户仍可用,而 az login 没有 --client-id 覆盖参数,因此浏览器会话是唯一入口。

主要能力:人工在可见 Chrome 中完成一次登录(含 MFA),从真实请求中捕获 Graph 与 ARM 令牌,随后全部通过 REST 完成:身份预检、创建应用注册、创建服务主体、创建客户端密钥、分配 Contributor 角色。之后即可用服务主体以 az 无人值守运行。脚本为幂等设计(先 GET 再 POST),重复运行会复用已有资源。

使用方式: cd plugins/web-forge/skills/azure-provision node scripts/mint-sp.mjs specs/example.json node scripts/provision.mjs specs/example.json 第一条命令会打开浏览器,登录后其余走 REST;第二条无人值守创建资源组、资源与密钥并写入 vault。

限制与注意事项:az account list 返回空是拦截的结果,不代表没有订阅;访客账号默认无应用注册权限,需要 Application Developer/Administrator 及目标范围的 RBAC 角色,403 需租户管理员处理。RBAC 最终一致,约 15–60 秒内可能显示未生效。密钥与终结点必须作为整体写入并读取,否则会出现 401。客户端密钥只返回一次,应直接经 vault set --stdin 保存,绝不进入 argv、stdout 或截图;捕获的 ARM/Graph 令牌约 1 小时有效,只记录解码后的声明而非令牌;profile 目录等同凭据。验证需双向:服务主体能认证并看到订阅,且每个资源需通过合成探测确认真实可用,同时用错误订阅确认会明确失败。

适用场景:受条件访问策略限制的租户中,需要一次性人工登录后转为无人值守自动化的 Azure 资源部署与迁移。