为什么我应该使用服务主体而不是 AAD 用户进行机器身份验证?

Why should I use a service principal for machine authentication and not an AAD user?

我知道当我需要连接到 Azure 资源的应用程序的标识时,我必须创建一个服务主体。但是,如果有人问我“为什么不直接创建一个 AAD 用户并以该用户身份进行身份验证?”老实说,除了“你不是那样做的”之外,我无法回答。

有人能给我一个正确的解释,说明为什么使用 AAD 服务用户而不是应用程序注册是个坏主意吗?

服务主体 是一个应用程序,其令牌可用于在组织处于使用 Azure Active Directory

通过使用服务主体,我们可以避免在需要访问 Azure 资源时在 Azure AD 中创建“假用户”(类似于本地 Active Directory 中的服务帐户)来管理身份验证

可以通过分配 Azure RBAC 角色来限制服务主体的访问权限,以便他们只能访问特定的 Azure 资源集

因此,为了更好的安全目的,我们可以使用服务主体而不是 Azure AD 用户来验证和访问 Azure 资源。