本文提供了使用 Microsoft Entra 智能体 ID 设计、保护和治理 AI 代理标识的操作最佳做法。 这些建议有助于在规划代理部署、管理凭据、强制实施访问策略和监视代理活动时做出明智的决策。
有关基础概念,请参阅 什么是 Microsoft Entra 智能体 ID? 和 关键概念。
设计代理标识蓝图
代理标识蓝图 是定义常见类型的所有代理实例的安全状况的模板。 深思熟虑的蓝图设计是管理良好的代理部署的基础。
在部署代理之前规划蓝图。 在蓝图中提前定义所需的设置、权限和元数据,而不是创建即席服务主体。 这可确保在所有实例之间实现一致的受控发布。 有关构建标识模型的指南,请参阅 规划代理标识体系结构。
为每个代理实例预配唯一标识。 避免在不同代理之间共享标识。 不同的标识可提高可跟踪性,让你禁用或更新一个代理,而不会影响其他代理。 蓝图模型使通过唯一标识进行扩展变得容易管理,因为凭据存储在蓝图上,而不是每个实例上。 有关说明,请参阅 创建和删除代理标识。
在创建时分配发起人和所有者。 每个蓝图和代理身份都必须有发起人,即负责代理目的的人员或群组。 请同时分配一位所有者(技术管理员)。 定期验证这些工作分配是否是最新的,尤其是在人员更改发生时。
提供描述性元数据。 在每个蓝图上填写描述、标签和已验证的发布者字段,以清晰地记录代理的用途、范围和所属团队。 良好的元数据可改进发现,并帮助同事一目了然地了解代理的角色。 有关蓝图设置详细信息,请参阅 “创建代理标识蓝图”。
在蓝图级别应用策略。 将条件访问规则、API 权限和治理控件与蓝图相关联,以便所有当前和将来的代理实例都自动继承它们。 禁用蓝图会立即阻止其所有代理标识。 此选项在需要时提供快速终止开关。 有关详细信息,请参阅 代理的条件访问。
对所有代理使用代理 ID 框架。 请勿在代理 ID 框架外部将 AI 代理创建为纯应用注册或服务主体。 始终使用支持的 创建渠道 ,以便通过内置的发起人责任和生命周期控制将代理跟踪为代理标识。
仅在必要时创建代理的用户帐户。应仅针对真正需要用户对象的方案(例如需要邮箱或 Teams 状态的代理)创建代理的用户帐户。 如果您的代理可以仅凭应用凭证运行,那么建议避免使用代理的用户帐户,因为用户帐户会增加许可证、组成员身份和用户级别策略的复杂性。
AI 编码助手的防护措施
当系统要求生成代理时,AI 编码助手通常默认创建标准应用注册,因为这是传统的工作负荷标识模式。 将以下内容添加到存储库 .github/copilot-instructions.md 或 AGENTS.md 文件,以便 AI 编码助手正确使用代理标识:
## Microsoft Entra Agent ID
- To give an AI agent its own identity in Microsoft Entra, create an agent identity blueprint, then create agent identities from it.
- Don't create or reuse a standard app registration or service principal to represent an agent. Never use `az ad app create`, `New-MgApplication`, `New-AzADApplication`, or `POST /applications` to create an agent identity.
- In .NET, use the Microsoft.Identity.Web.AgentIdentities package: call builder.Services.AddAgentIdentities(), then acquire tokens with WithAgentIdentity(agentIdentity) (app-only) or WithAgentUserIdentity(agentIdentity, user) (on behalf of a user).
- Requires the Agent ID Developer or Agent ID Administrator role and the AgentIdentityBlueprint.Create permission.
- Reference: /entra/agent-id/how-to-plan-agent-identity-architecture
安全地管理凭据
凭据管理对于防止通过代理标识进行未经授权的访问至关重要。 有关详细步骤,请参阅 创建代理标识蓝图。
在生产环境中使用托管标识或证书。 对于生产代理,首选 联合标识凭据 (托管标识)或证书而不是客户端机密。 托管标识完全消除了存储的机密。 仅对初始开发或测试使用客户端机密,并在上线之前轮换它们。
隔离每个蓝图的凭据。 不要在不相关的蓝图中重复使用相同的凭据。 如果你有单独的环境(开发、测试、生产),请使用单独的蓝图或特定于环境的联合凭据,以便一个环境中的入侵不会影响其他环境。 有关设置说明,请参阅 创建代理标识蓝图。
安全地存储凭据。 将证书私钥存储在 Azure 密钥保管库 或 HSM 中。 如果使用绑定到托管标识的联合凭据,请限制托管标识的范围。 建立一个轮换计划,以至少每年轮换证书,尽管蓝图允许长期使用凭证。
将 OAuth 流与代理方案保持一致。 为代理的操作模型使用适当的OAuth 流。
- 对于没有用户上下文的自治代理,请仅使用具有所需应用权限的客户端凭据流。
- 对于代表用户操作的交互式代理,请使用代表用户(OBO)流,以便确保用户访问策略和用户同意生效。
- 避免在委派的权限足够时授予应用权限。
在部署后监视令牌使用情况。 查看 登录日志 以确认代理正在使用预期的身份验证方法和凭据类型。 定期审核每个蓝图上同意的 API 权限,以防止特权爬行。
强制实施访问控制
对代理标识应用与用户标识相同的零信任原则。 有关详细配置,请参阅 代理的条件访问。
使用自定义安全属性来划分代理。 定义组织范围的属性,例如
Environment,Department或DataSensitivity将它们分配给代理标识。 在条件访问策略条件中使用这些属性可大规模应用精细的控制,例如,阻止非生产代理访问生产资源。 有关详细信息,请参阅 “分配自定义安全属性”。创建特定于代理的条件访问策略。 不要依赖针对代理的用户目标策略。 代理不能满足 MFA 等交互式控件,因此创建单独的策略,这些策略使用标识筛选器、风险信号和命名位置作为控制点。 在强制实施策略之前,使用仅报告模式测试策略。 如需分步指南,请参阅 代理条件访问。
查看现有策略,了解代理影响。 审核广泛的策略(如“所有用户必须使用 MFA”)以确保他们不会无意中阻止代理流。 重构以排除代理标识,并创建具有适当控制措施的专用代理策略。
权限最小化原则 使用 授权指南 仅授予每个代理所需的权限。 不要将广泛的权限授予为方便。 限制对特定范围、API 资源或站点的权限。 定期查看和调整权限大小。
管理代理生命周期
有效的治理可防止代理蔓延,并确保代理在整个生命周期内保持负责。 有关治理工具,请参阅 代理标识的标识治理 和 代理标识的访问包。
在 Microsoft Entra 中注册所有代理。 通过 Microsoft Entra 的代理 ID 框架注册每个代理,无论是在 Copilot Studio、Azure,还是外部平台构建的。 集中式注册消除了影子 AI,并提供了 IT 完全可见性。 有关支持的方法,请参阅 代理创建通道。
让命名约定标准化。 定义并强制实施代理标识的命名约定,例如,使用部门或函数(例如,
Agent-HROnboardingBot)为显示名称添加前缀。 一致的命名使代理可以在日志和管理中心中识别。在访问评审中包含代理。 配置包括代理身份的定期 访问评审。 让赞助商每 6-12 个月确认每个代理是否仍然需要并且配置正确。 如果发起人未确认,请评估是否应停用代理。
监视孤立的代理。 制定季度评审过程,以识别缺少赞助商、过时元数据或没有最近活动的代理。 重新分配赞助或解除未使用的代理。 有关集中式视图,请参阅 “查看和筛选代理标识”。
使用访问包进行标准化访问。 对于具有常见访问模式(例如客户支持代理群)的代理,请使用 访问包 通过审批工作流(而不是直接权限分配)授予具有时间限制的可审核访问权限。
监视和审核代理活动
持续监视可确保代理在预期边界内运行。 有关日志详细信息,请参阅 代理的登录和审核日志。
监视登录日志中的异常情况。 针对异常模式(例如令牌请求突然激增、对意外 API 的访问或来自不熟悉 IP 范围的登录)设置警报。 代理登录日志显示每次令牌获取,其中包含有关资源、凭据类型和结果的详细信息。
跟踪审核日志中的配置更改。 监视 审核日志 ,以更改代理蓝图、凭据添加、权限授予和角色分配。 针对在正常部署管道外发生的更改发出警报。
在事件响应中纳入代理。 分析安全事件时,检查任何代理是否有权访问受影响的资源,并在事件窗口中查看其活动。 将代理身份核查整合到现有的事后分析流程中。
设置主动警报以进行:
- 凭据过期(接近到期的证书或机密)
- 代理被条件访问阻止
- 过度失败的令牌获取尝试
- 意外的权限或角色更改
保留日志以遵循合规要求。 确保您的日志保留策略在组织合规框架所需时长内包含代理程序的活动记录。 根据需要将大容量代理日志导出到安全存档。 有关配置选项,请参阅 “配置诊断设置”。
协调开发和 IT 工作流
平滑代理部署需要在构建代理的开发人员与管理代理的 IT 管理员之间保持一致。
使用支持的创建通道。 通过 Copilot Studio、Graph API 或 Agent 365 CLI 来构建代理,而不是依赖可能漏掉所需属性的手动Graph调用。 这些工具会自动处理蓝图创建、凭据绑定和实例设置。
建立生产握手过程。 当新代理迁移到生产环境时,让标识管理员验证其Microsoft Entra 智能体 ID设置:确认蓝图和发起人正确、同意所需的权限、条件访问策略适用,并且代理位于适当的组或管理单元中。
在非生产环境中进行测试。 在部署到生产环境之前,使用单独的开发租户或沙盒来验证代理身份验证流、条件访问策略和权限配置。
将代理配置视为代码。 将蓝图定义、权限配置和设置脚本提交到源代码管理中。 这可以防止配置偏移,启用对等评审,并为代理如何与Microsoft Entra ID集成提供机构内存。