Microsoft Entra ID 本身具有三种类型的服务帐户:托管身份、服务主体和基于用户的服务帐户。 服务帐户是一种特殊类型的帐户,旨在表示非人类实体,例如应用程序、API 或其他服务。 这些实体在服务帐户提供的安全上下文中运行。
Microsoft Entra 服务帐户的类型
对于在 Azure 上托管的服务,我们建议尽可能使用托管身份,如果无法使用,则选择服务主体。 托管身份不能用于在 Azure 外部托管的服务。 在这种情况下,我们建议使用服务主体。 如果可以使用托管标识或服务主体,请这样做。 建议不要使用 Microsoft Entra 用户帐户作为服务帐户。 有关摘要,请参阅下表。
服务托管 | 托管标识 | 服务主体 | Azure 用户帐户 |
---|---|---|---|
服务托管在 Azure 中。 | 是的。 如果符合条件,建议该服务 支持托管标识。 |
是的。 | 不建议这样做。 |
服务不托管在 Azure 中。 | 否 | 是的。 推荐。 | 不建议这样做。 |
服务是多租户 | 否 | 是的。 推荐。 | 否。 |
托管标识
托管身份是由 Microsoft Entra 创建的安全标识,用于为 Azure 资源提供身份。 有 两种托管身份类型:
系统分配的托管标识可以直接分配给服务的实例。
可以将用户分配的托管标识创建为独立资源。
有关详细信息,请参阅 保护托管标识。 有关托管标识的一般信息,请参阅 什么是 Azure 资源的托管标识?
服务主体
如果不能使用"托管标识"来表示您的应用程序,请使用"服务主体"。 服务主体可与单租户和多租户应用程序一起使用。
服务主体是单个 Microsoft Entra 租户中应用程序对象的本地表示形式。 它充当应用程序实例的标识,定义谁可以访问该应用程序,以及应用程序可以访问哪些资源。 在每个使用应用程序的租户中创建一个服务主体,该主体是本地的,并引用全局唯一的应用程序对象。 租户保护服务主体的登录和对资源的访问。
使用服务主体进行身份验证有两种机制:客户端证书和客户端机密。 证书更安全:尽可能使用客户端证书。 与客户端机密不同,客户端证书不能意外嵌入代码中。
有关保护服务主体的信息,请参阅 保护服务主体。
后续步骤
有关保护 Azure 服务帐户的详细信息,请参阅: