应用程序可以自行登录用户或将登录委托给标识提供者。 本文讨论向Microsoft标识平台注册应用程序所需的步骤。
若要使标识提供者知道用户有权访问特定应用,用户和应用程序都必须注册到标识提供者。 向 Microsoft Entra ID 注册应用程序时,将为应用程序提供一个标识配置,以便与Microsoft标识平台集成。 注册应用还允许:
- 在登录对话框中自定义应用程序的品牌。 此品牌非常重要,因为登录是用户使用你的应用的第一次体验。
- 确定是否仅当用户属于你的组织时才能登录。 此体系结构称为单租户应用程序。 或者,您可以允许用户使用任何工作或学校帐户登录,这种方式被称为多租户应用程序。
- 请求范围权限。 例如,可以请求“user.read”范围,该范围授予读取已登录用户的配置文件的权限。
- 定义用来确定 Web API 访问权限的范围。 通常,当应用想要访问 API 时,它需要请求对定义的作用域的权限。
- 与证明应用标识的Microsoft标识平台共享机密。 使用机密适用于应用是机密客户端应用程序的情况。 机密 客户端应用程序 是可以安全地保存凭据的应用程序,例如 Web 客户端。 需要受信任的后端服务器来存储凭据。
注册应用后,它会获得一个唯一标识符,该标识符在请求令牌时与Microsoft标识平台共享。 如果应用是机密客户端应用程序,则它还将共享机密或公钥,具体取决于是否使用了证书或机密。
Microsoft标识平台使用满足两个主要功能的模型来表示应用程序:
- 根据它支持的身份验证协议标识应用。
- 提供进行身份验证所需的所有标识符、URL、机密和相关信息。
Microsoft标识平台:
- 保存在运行时支持身份验证所需的所有数据。
- 保存所有数据,用于确定应用可能需要访问哪些资源,以及应满足给定请求的情况。
- 提供基础结构,用于在应用开发人员的租户中实现应用预配,并向任何其他Microsoft Entra 租户实现应用预配。
- 在令牌请求期间处理用户同意并帮助跨租户动态预配应用。
同意 是资源所有者授权客户端应用程序代表资源所有者访问受保护资源的过程。 Microsoft标识平台提供了功能:
- 用户和管理员可以动态授予或拒绝应用代表其访问资源的同意。
- 管理员最终决定允许哪些应用以及哪些用户可以使用特定应用,以及访问目录资源的方式。
重要
由于每个云中的服务主体权限隔离,导致多租户应用程序(MTA)无法在云服务边界之间运行。 例如,如果应用程序对象托管在商业云中,则关联服务主体会在客户载入期间在本地创建。 在跨越云边界时,此过程失败,因为颁发机构 URL 不同(例如 .com
,与 .us
),导致不兼容。
在Microsoft标识平台中, 应用程序对象 描述应用程序。 在部署时,Microsoft标识平台使用应用程序对象作为蓝图来创建 服务主体,该主体表示目录或租户中应用程序的具体实例。 该服务主体定义应用在特定目标目录中可以实际执行的操作、使用者是谁、以及可以访问哪些资源等。 Microsoft标识平台通过同意从应用程序对象创建服务主体。
下图显示了由许可驱动的简化Microsoft标识平台预配流。 它显示两个租户: A 和 B。
- 租户 A 拥有应用程序。
- 租户 B 正在通过服务主体实例化应用程序。
在此预配流程中:
- 租户 B 中的用户尝试使用应用登录。 授权终结点请求应用程序的令牌。
- 获取并验证用户凭据以进行身份验证。
- 系统会提示用户同意应用获取对租户 B 的访问权限。
- Microsoft标识平台使用租户 A 中的应用程序对象作为在租户 B 中创建服务主体的蓝图。
- 用户会收到请求的令牌。
可以为更多租户重复此过程。 租户 A 保留应用(应用程序对象)的蓝图。 在所有其他授予应用许可的租户中,用户和管理员可通过每个租户中的相应服务主体对象,控制应用程序被允许执行的操作。 有关详细信息,请参阅 Microsoft标识平台中的应用程序和服务主体对象。
有关Microsoft标识平台中的身份验证和授权的详细信息,请参阅以下文章:
- 若要了解身份验证和授权的基本概念,请参阅 身份验证与授权。
- 若要了解如何在身份验证和授权中使用访问令牌、刷新令牌和 ID 令牌,请参阅 安全令牌。
- 若要了解 Web、桌面和移动应用的登录流,请参阅 应用登录流。
- 若要详细了解使用令牌声明的正确授权,请参阅通过验证声明保护应用程序和 API
有关应用程序模型的详细信息,请参阅以下文章:
- 有关Microsoft标识平台中的应用程序对象和服务主体的详细信息,请参阅 如何将应用程序添加到 Microsoft Entra ID。
- 有关单租户应用和多租户应用的详细信息,请参阅 Microsoft Entra ID 中的租户。
- 有关 Microsoft Entra ID 如何提供 Azure Active Directory B2C,以便组织可以使用社交身份让用户(通常为客户)登录的更多信息,请参阅 Azure Active Directory B2C 文档。