关于 agent-identity-governance
面向管理 Microsoft 环境中 AI Agent 与非人类身份的治理技能,涵盖所有权、权限、凭据、审查、生命周期、监控和事件响应。
主要功能
- 01身份清点与所有权标记
- 02权限范围控制与凭据卫生
- 03访问审查与生命周期工作流
- 04审计监控与事件响应
适用场景
- 01审查 Copilot Studio 和 Foundry Agent 身份
- 02用联合身份或证书替换长期密钥
- 03建立 Agent 停用与清理工作流
- 04调查疑似 Agent 身份遭入侵事件
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ vinayaklatthe/ microsoft-security-skills --skill agent-identity-governance安装后在 Claude Code 中输入/agent-identity-governance确认已加载。
详细介绍
AI Agent 和非人类身份治理
AI Agent——Microsoft 365 Copilot Studio Agent、Microsoft Foundry Agent、自定义构建的 Agent,以及传统服务主体和托管标识——如今已成为大多数租户中增长最快的身份群体。它们会进行身份验证、持有权限、代表用户(或自身)执行操作,而且通常缺乏足够的治理。
此技能是这些身份的生命周期治理层:所有权、范围界定、凭据卫生、审查、停用和事件响应。
何时使用
为 Agent / NHI 群体建立或完善治理——Copilot Studio Agent、Foundry Agent、自定义大模型 Agent,以及为它们提供支持的服务主体。
请勿将此技能用于仅涉及工作负载身份联合的模式
(entra-workload-identity)、人类身份治理(entra-id-governance)或通用 Agent 构建指南。
Agent 身份清单——了解治理对象
| 类别 | 身份模型 | 管理界面 |
|---|---|---|
| Copilot Studio Agent(M365) | 租户范围的 Agent 身份 + 每用户委派权限 | M365 管理中心 / Copilot Studio |
| Microsoft Foundry Agent | 服务主体 + 托管标识 + 每用户 OBO | Azure 门户 / Foundry |
| 自定义 AI Agent(你的代码) | 应用注册 + 工作负载身份联合 / 托管标识 | Entra 管理中心 |
| 插件 / 连接器 | 服务主体 + 委派 / 应用 Graph 权限 | Entra 管理中心 |
| 旧版自动化服务主体 | 应用注册,通常使用密钥 | Entra 管理中心 |
方法
-
清点并标记。 获取所有应用注册、服务主体以及 Copilot Studio / Foundry Agent。为每个对象标记:
- 负责人(个人 + 群组)。
- 发起人 / 业务负责人。
- 用途(一句话说明)。
- 数据范围(涉及哪些租户 / 站点 / 邮箱 / 资源)。
- 生命周期阶段(试点 / 生产 / 停用)。
- 关键性(第 0 / 1 / 2 级)。 孤立身份 → 冻结;要求负责人重新认领。
-
严格限定权限范围。
- Microsoft Graph:优先使用 Sites.Selected,而非
Sites.Read.All;优先使用通过 Application Access Policy 限定邮箱范围,而非Mail.Send;优先使用自定义安全属性,而非宽泛的目录角色。 - Azure:在资源组或资源级别限定角色分配范围;除非确有需要,否则绝不授予订阅 Owner 角色。
- Copilot Studio Agent 知识源:明确列出站点 / 库,不要选择“所有 SharePoint”。
- Foundry Agent 工具:只保留所需工具;除非必要,否则移除
http插件。
- Microsoft Graph:优先使用 Sites.Selected,而非
-
凭据卫生。 新构建中不使用客户端密钥 — 使用联合凭据(GitHub Actions、Azure DevOps、AKS、外部 OIDC),或使用通过 Key Vault 自动轮换的证书。对于现有密钥:清点、将有效期限制在 180 天以内、通过自动化轮换,并规划迁移到联合身份验证。
-
为工作负载启用条件访问(Workload Identities Premium)。应用于第 0 级 Agent 和可从外部调用的 Agent:
- 限制源 IP 范围。
- 阻止旧版身份验证。
- 要求使用命名位置。 不要尝试应用于租户中的每个 SP — 重点关注影响范围大的身份。
-
通过 Entra ID Governance 对 Agent 进行访问评审。 负责人每季度评审:
- 是否仍然需要?
- 范围是否仍然合适?
- 凭据是否已按时轮换?
- 负责人 / 发起人是否仍在该岗位? 负责人未响应时自动禁用。
-
生命周期工作流。 构建自动化流程,用于:
- 预配:负责人发起请求 → 审批 → 使用模板权限创建 SP、添加标记并指定负责人。
- 修改:更改范围必须重新审批。
- 停用:禁用 30 天后删除;移除角色分配、联合凭据和知识源关联。
-
审计和监控。
- 将
ServicePrincipalSignInLogs和AuditLogs流式传输到 Sentinel。 - 对于 Copilot Studio Agent:通过 Purview Audit 获取交互审计日志。
- 检测项:
- 向 Agent 身份分配新的高权限角色。
- Agent 从意外的 IP / 国家或地区登录。
- 每个 Agent 的 Graph API 调用量突然激增。
- Agent 在工作时间以外访问敏感数据。
- 由非负责人身份向 Agent 添加新凭据。
- 将
-
Agent 遭到入侵时的事件响应。
- 禁用身份(在应用注册 / SP 上阻止登录)。
- 轮换凭据,撤销刷新令牌。
- 追查 Agent 身份在过去 7–30 天内执行的操作 (Graph 审计、资源活动)。
- 通知数据负责人,告知 Agent 曾访问过的资源。
- 查明根本原因(密钥泄露?OAuth 同意钓鱼?供应链问题?)。
- 收紧范围后恢复或停用。
-
结合使用情况信号。 Purview AI Hub / DSPM for AI 显示 Agent 做了什么(敏感数据如何流经提示词)。结合身份审计,获得完整视图。
防护措施
- 每个 Agent 身份都必须有明确的人工负责人。 负责人列表为空 = 孤立身份 = 审计/安全风险。
- 新身份不得使用客户端密钥。 联合身份验证 > 证书 > 密钥。
- 存在 Sites.Selected(及类似机制)时必须使用。 “先用
.All快速启动, 之后再限定范围”最终永远不会限定范围。 - 工作负载的条件访问需要单独的许可证。 设计前确认 SKU。
- 新 Agent 的 OAuth 同意必须经过管理员审核。 让最终用户同意高权限范围, 相当于让 Agent 通过钓鱼式引导入驻。
- 停用 ≠ 1 天后删除。 30 天的停用窗口可以发现“等等,这个好像还有地方在用”。
- Agent 凭据不能供人使用。 不要为了“方便调试”而与团队共享 Agent 的密钥。
- 为 Agent 标记数据范围和层级。 缺少这些信息,事件响应和审查只能靠猜。
常见反模式
- “基于‘All SharePoint’的 Copilot Studio Agent” — 与 Copilot 本身存在相同的过度共享问题, 只是规模更大。请使用限定到特定站点的知识源。
- “Agent SP 获得了租户范围的 Mail.Send 应用程序权限” — 可以冒充任何人发送邮件。 使用应用程序访问策略,将范围限定到特定邮箱。
- “负责人字段设置为已离职人员的帐户” — 身份被孤立,既无人审查,也无人轮换。
- “Agent 代码中包含长期有效的客户端密钥” — Git 历史会永久保留;等检测到泄露时已经太晚。
- “所有 Agent 都属于 tier-0,因为‘它们都很重要’” — 审查和事件响应工作看似统一, 实际上质量一律低下。请进行真实的分级。
- “通过删除应用注册来停用,却留下角色分配” — RBAC 中留下悬空的主体 ID;使用相同 ID 恢复时会有风险。
- “未审计 Copilot Studio Agent 的交互” — 被入侵的 Agent 会在无人察觉的情况下执行操作。
- “将 Agent 身份治理视同人工身份治理” — 生命周期、控制措施和审查方式都不同。
示例提示词
盘点租户中的所有 Copilot Studio Agent、Foundry Agent 和服务主体,并生成包含负责人 + 范围 + 层级的报告。通过 Entra ID Governance,为 600 个 Agent 身份按季度推出访问审查。将 HR 的 Copilot Studio Agent 范围从“All SharePoint”限定到 4 个特定知识站点。构建停用工作流:停用 30 天、通知负责人,并彻底清理 RBAC 和联合凭据。针对 Agent 身份泄露配置 Sentinel 检测:新凭据、异常登录、Graph 调用激增。事件响应手册:遭入侵的 Foundry Agent 连续 48 小时调用 Microsoft Graph —— 遏制、搜寻、通知。将 120 个旧版自动化 SP 中的客户端密钥替换为工作负载身份联合或 Key Vault 证书。对所有 tier-0 Agent 应用工作负载身份的条件访问。
Microsoft Learn
- 工作负载身份概述:https://learn.microsoft.com/entra/workload-id/workload-identities-overview
- Entra ID Governance 概述:https://learn.microsoft.com/entra/id-governance/identity-governance-overview
- 服务主体的访问审查:https://learn.microsoft.com/entra/id-governance/create-access-review
- 工作负载身份的条件访问:https://learn.microsoft.com/entra/identity/conditional-access/workload-identity
- 应用程序访问策略(Graph 邮箱范围限定):https://learn.microsoft.com/graph/auth-limit-mailbox-access
- Sites.Selected:https://learn.microsoft.com/sharepoint/dev/solution-guidance/security-apponly-azuread
- Copilot Studio 安全性和治理:https://learn.microsoft.com/microsoft-copilot-studio/security-and-governance
- Microsoft Foundry Agent 安全性:https://learn.microsoft.com/azure/ai-foundry/concepts/ai-resources
- Copilot 的统一审计:https://learn.microsoft.com/purview/audit-copilot
- 工作负载身份联合:https://learn.microsoft.com/entra/workload-id/workload-identity-federation