You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Service Principal究竟是什么?两类定义的关联该如何理解?

服务主体(Service Principal)的两种认知怎么关联?

其实这两种说法本质是一回事,只是从不同角度描述同一个东西:

1. 先搞懂两个核心对象的关系

  • 应用对象(Application Object):这是你在Azure AD里注册应用时生成的「全局配置模板」,里面存着应用的所有基础信息——比如允许的权限、认证方式、密钥/证书这些。它是应用的"蓝图",只在你创建它的租户里存在。
  • 服务主体(Service Principal):这是应用对象在具体租户里的「实体实例」。当你在自己的租户注册应用时,Azure AD会自动给你创建一个对应的服务主体;如果其他租户要使用你的应用,也得在他们的租户里创建这个应用对象的服务主体(也就是Azure门户里的"企业应用")。

2. 为什么会有两种不同的描述?

  • 当你用它来给脚本/程序做身份验证时,它就是「独立的服务账户」:服务主体是一个可以被分配Azure资源权限的身份实体,和普通用户账户一样,但它属于应用而非个人。你可以精准控制它的权限(比如只让它访问某一个存储账户),然后用它的凭据(密钥/证书)让程序自动完成认证,不用依赖个人用户的账户,这就是文档里说的"安全脚本/程序的最优方式"。
  • 当你从应用注册和OAuth2.0的角度看时,它就是「应用对象的实例」:服务主体是应用在租户里的"落地身份",所有OAuth2.0的授权流程(比如获取访问令牌、刷新令牌)都是通过服务主体和Azure AD交互完成的。应用对象的配置会同步到服务主体上,比如你改了应用的权限,对应的服务主体的权限也会跟着更新。

一句话总结

服务主体就是应用在具体租户里的可操作身份实体——它既是应用注册后的实例化身份(用来完成OAuth授权),也是一个独立的"服务账户"(用来给程序/脚本做权限受控的身份认证)。

内容的提问来源于stack exchange,提问作者YoavKlein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 16:37:45