代理标识、服务主体和应用程序

与非代理应用程序服务主体相比,代理应用模型引入了具有不同角色和特征的特定服务主体类型。 本文介绍代理应用程序模型中的服务主体、它们与代理标识蓝图的关系以及它们与非代理应用程序服务主体的不同之处。

代理标识蓝图主体

在租户中实例化代理标识蓝图时,会自动创建代理标识蓝图主体。 这些服务主体提供租户目录中代理标识蓝图的运行时表示,并使代理标识蓝图能够执行创建实例和管理生命周期等操作。

创建过程涉及同意操作,这些操作需要诸如 AgentIdentity.CreateServicePrincipal.Manage.OwnedBy 等权限。 代理标识蓝图的主体使代理标识蓝图可以获取用于Microsoft Graph调用的仅限应用程序的令牌,以创建和管理代理标识。 此过程至关重要,因为代理蓝图本身无法直接获取用于 Microsoft Graph 操作的令牌。

代理标识即服务主体

代理身份被建模为单租户服务主体,并具有“代理”这一新的子类型分类。 此设计使用现有的Microsoft Entra ID 服务主体基础结构,同时添加特定于代理的行为和约束。

代理标识通过 ParentID 关系从其父代理标识蓝图继承其协议属性。 与独立运行的非代理服务主体不同,代理标识需要其父代理的标识蓝图用于模拟和令牌交换操作。

代理身份可以被直接授予权限,并在为其操作颁发令牌时显示在登录日志中。 它们作为客户在管理代理权限和访问时主要考虑的标识。

代理标识蓝图主体使用仅限应用的令牌和适当的角色,通过 Microsoft Graph 调用创建代理标识服务主体。 创建过程会建立父子关系,并为身份模拟配置必要的联合标识凭据 (FIC) 关系。

使用应用程序服务主体生成的代理

在引入Microsoft代理标识平台之前,某些Microsoft应用程序(如 Microsoft Copilot Studio 和 Azure AI Foundry)使用应用代理服务主体,以确保其代理具备受保护的身份。 这些代理标识与您租户中的所有代理标识列表中的其他标识一起显示。

可以通过筛选获取使用代理标识的选项来区分它们。 使用筛选器,可以使用应用程序服务主体显示代理标识对象和代理之一或两者。 请参阅 “所有代理标识 ”列表中的列列表

这些使用服务主体的代理的行为与应用程序服务主体的行为相同,与代理标识或代理标识蓝图主体相比,差异不大。

与非代理服务主体的主要区别

以下部分介绍代理服务主体与非AGENTIC 应用程序服务主体之间的主要区别。

模拟模型

非代理服务主体使用自己的凭据和标识运行。 代理服务主体使用模拟模型,其中代理身份蓝图模拟代理身份,以代表实例执行操作。

此模拟模型使代理标识蓝图能够获取代理标识显示为客户端的令牌,即使代理标识蓝图正在执行实际的令牌交换。 生成的令牌在审核日志中保留代理身份的标识,同时使代理身份蓝图能够协调复杂的令牌流。

多实例关系

非代理应用程序通常与服务主体之间存在一对一关系。 代理应用模型引入了一种一对多关系,其中一个代理标识蓝图可以在多个租户间以及在单个租户内拥有多个代理标识服务主体。

此多实例模型可实现以下方案:为每个 Teams 通道、每个项目或每个组织单位创建多个代理标识,所有方案都从同一父代理标识蓝图中采购其协议属性。

运行时凭据管理

非代理服务主体管理自己的凭据(证书、密钥和托管身份)。 服务主体提供这些凭据来获取自身的令牌或为用户执行代表操作。 代理标识依赖于父代理标识蓝图中的凭据,并且无法独立管理凭据。 代理标识服务主体不执行直接身份验证。

非自主服务主体通过直接分配或管理员批准接收权限。 代理服务主体同时支持直接权限分配和从父应用程序继承。

启用继承委派权限后,代理标识可以从其父代理标识蓝图继承委托的权限,从而减少多实例方案的同意复杂性。 当使用模拟并跨多个实例实现高效的权限管理时,将应用此继承。

权限和角色分配

代理服务主体支持应用权限(仅限于应用的操作)和委派权限(针对用户委托的操作)。 根据方案要求,权限分配可以直接或继承。

直接分配:可以将权限直接分配给代理标识,以满足特定于实例的访问要求。

继承的分配:当在服务主体上启用了InheritDelegatedPermissions时,代理标识会从其父代理标识的蓝图继承委派权限,从而简化多实例方案中的权限管理。

角色分配:可以为代理标识分配 Azure 基于角色的访问控制(RBAC)角色和目录角色,就像非代理服务主体一样,从而启用资源访问和管理操作。 无法将 Azure RBAC 角色分配给代理标识蓝图

审核和日志记录

代理服务主体在审核日志和登录报告中维护独特的标识。 当代理标识执行操作时,日志会将代理标识显示为执行客户端,并指示与父代理标识蓝图的关系。

登录日志区分代理标识蓝图、代理标识和代理用户。 此区别允许根据正在执行的具体操作,明确角色标识(客户端、凭据、主体)。 这将启用代理操作的审计追踪。