探索服务主体

已完成

要将标识和访问管理功能委托给 Microsoft Entra ID,必须将应用程序注册到 Microsoft Entra 租户。 使用 Microsoft Entra ID 注册应用程序时,将为应用程序创建标识配置,以便与 Microsoft Entra ID 集成。 在 Azure 门户中注册应用时,请选择它是否是以下一项:

  • 单租户:仅可在租户中访问
  • 多租户:可在其他租户中访问

如果在门户中注册应用程序,则会在主租户中自动创建应用程序对象(应用的全局唯一实例)和服务主体对象。 你也有应用的全局唯一 ID(应用或客户端 ID)。 然后,在门户中,你便可以添加机密或证书和作用域以使应用正常工作,在登录对话框中自定义应用的品牌等等。

注意

也可以使用 Azure PowerShell、Azure CLI、Microsoft Graph 和其他工具在租户中创建服务主体对象。

应用程序对象

Microsoft Entra 应用程序由范围是唯一的应用程序对象。 应用程序对象位于注册应用程序的 Microsoft Entra 租户中(称为应用程序的“主”租户)。 应用程序对象用作模板或蓝图来创建一个或多个服务主体对象。 服务主体是在使用应用程序的每个租户中创建的。 与面向对象的编程中的类相类似,应用程序对象具有一些应用于所有创建的服务主体(或应用程序实例)的静态属性。

应用程序对象描述了应用程序的三个方面:

  • 服务如何颁发令牌以访问应用程序。
  • 应用程序可能需要访问的资源。
  • 应用程序可以执行的操作。

Microsoft Graph 应用程序实体 定义应用程序对象的属性的架构。

服务主体对象

要访问受 Microsoft Entra 租户保护的资源,需要访问的实体必须由安全主体表示。 这一点对于用户(用户主体)和应用程序(服务主体)来说都是如此。

安全主体定义 Microsoft Entra 租户中用户/应用程序的访问策略和权限。 通过此方式,可实现核心功能,如在登录期间对用户/应用程序进行身份验证,以及在访问资源时进行授权。

可以使用三种类型的服务主体:

  • 应用程序 - 这种类型的服务主体是单个租户或目录中全局应用程序对象的本地表示形式或应用程序实例。 一个服务主体会在使用该应用程序的每个租户中创建,并且会引用该全局唯一应用对象。 服务主体对象定义应用可在特定租户中实际执行的操作、可访问应用的人员以及应用可访问的资源。

  • 托管标识 - 此类型的服务主体用于表示 托管标识。 托管标识为应用程序提供连接到支持 Microsoft Entra 身份验证的资源时要使用的标识。 启用托管标识后,将在你的租户中会创建表示该托管标识的服务主体。 可以向表示托管标识的服务主体授予访问权限和相关权限,但不能直接更新或修改。

  • 旧式 - 此服务主体类型表示旧式应用,即在引入应用注册之前创建的应用,或通过旧式体验创建的应用。 旧的服务主体可以具有:

    • 凭据
    • 服务主体名称
    • 回复 URL
    • 以及授权用户可编辑的其他属性,但没有关联的应用注册。

应用程序对象与服务主体之间的关系

应用程序对象是跨所有租户使用的应用程序的全局表示形式,服务主体则是在特定租户中使用的本地表示形式。 应用程序对象用作 从中派生 公共属性和默认属性的模板,用于创建相应的服务主体对象。

应用程序对象具有:

  • 与软件应用程序存在一对一的关系,以及
  • 与其对应的服务主体对象之间存在一对多的关系。

必须在将使用应用程序的每个租户中创建服务主体,以建立用于登录和/或访问受租户保护的资源的标识。 单租户应用程序只有一个服务主体(在其主租户中),它是在应用程序注册期间创建并同意使用的。 如果租户中有用户同意使用服务主体,多租户应用程序还会在每个这样的租户中创建一个服务主体。