探索服务主体
要将标识和访问管理功能委托给 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 Application 实体定义应用程序对象属性的架构。
服务主体对象
要访问受 Microsoft Entra 租户保护的资源,需要访问的实体必须由安全主体表示。 这同时适用于用户(用户主体)和应用程序(服务主体)。
安全主体定义 Microsoft Entra 租户中用户/应用程序的访问策略和权限。 这样便可实现核心功能,如在登录时对用户/应用程序进行身份验证,在访问资源时进行授权。
有三种类型的服务主体:
应用程序 - 这种类型的服务主体是单个租户或目录中某个全局应用程序对象的本地表示形式或应用程序实例。 一个服务主体会在使用该应用程序的每个租户中创建,并且会引用该全局唯一应用对象。 服务主体对象定义应用可在特定租户中实际执行的操作、可访问应用的用户以及应用可访问的资源。
托管标识 - 此服务主体类型用于表示托管标识。 托管标识为应用程序提供一个标识,可以在连接到支持 Microsoft Entra 身份验证的资源时使用。 启用托管标识后,在你的租户中会创建一个表示该托管标识的服务主体。 可以向表示托管标识的服务主体授予访问权限和相关权限,但不能直接更新或修改。
旧式 - 此服务主体类型表示旧式应用,即,在应用注册引入之前创建的应用,或通过旧式体验创建的应用。 旧的服务主体可以具有:
- 凭据
- 服务主体名称
- 回复 URL
- 以及授权用户可编辑的其他属性,但该主体没有关联的应用注册。
应用程序对象与服务主体之间的关系
应用程序对象是应用程序的全局表示形式,可供所有租户使用,而服务主体是本地表示形式,在特定租户中使用 。 应用程序对象用作模板,常见属性和默认属性从其中派生,以便在创建相应服务主体对象时使用。
应用程序对象:
- 与软件应用程序存在一对一的关系,以及
- 与其对应的服务主体对象之间存在一对多的关系。
必须在将使用应用程序的每个租户中创建服务主体,以建立用于登录和/或访问受租户保护的资源的标识。 单租户应用程序只有一个服务主体(在其宿主租户中),在应用程序注册期间创建并被允许使用。 如果租户中有用户同意使用服务主体,则多租户应用程序还具有在这每个租户中创建的该服务主体。