注册应用程序

Microsoft 标识平台应用注册门户是使用该平台解决其身份验证和相关需求的应用程序的主要入口点。 作为开发人员,在注册和配置应用时,所做的选择会促使应用程序满足零信任原则并影响其方式。 有效的应用注册特别考虑使用最低特权访问假定违规的原则。 本文可帮助你了解应用程序注册流程及其要求,以确保应用遵循零信任安全方法。

Microsoft Entra ID 中的应用程序管理 (Microsoft Entra ID) 是在云中创建、配置、管理和监视应用程序的过程。 在 Microsoft Entra 租户中注册应用程序时,需配置安全用户访问权限。

Microsoft Entra ID 通过应用程序对象服务主体表示应用程序。 除了一些例外情况之外,应用程序都是应用程序对象。 服务主体可视为引用应用程序对象的应用程序的实例。 跨目录的多个服务主体可以引用单个应用程序对象。

可以将应用程序配置为通过三种方法使用 Microsoft Entra ID:在 Visual Studio 中、使用 Microsoft Graph API 或使用 PowerShell。 开发人员中心提供了在 Azure 和 API 资源管理器环境中的开发人员体验。 参考开发人员和 IT 专业人员角色所需的决策和任务,以便在 Microsoft 标识平台中生成和部署安全应用程序。

谁可以添加和注册应用程序

管理员,如果租户允许,用户和开发人员可以通过在 Azure 门户中注册应用程序来创建应用程序对象。 默认情况下,目录中的所有用户都可以注册自己开发的应用程序对象。 应用程序对象开发人员通过同意决定哪些应用程序共享并授予对组织数据的访问权限。

当目录中的第一个用户登录到应用程序并授予同意时,系统会在存储所有用户同意信息的租户中创建一个服务主体。 在进行用户身份验证之前,Microsoft Entra ID 会自动为租户中新注册的应用创建服务主体。

只有 Microsoft Entra 全局管理员才能执行特定的应用程序任务(例如,从应用库添加应用程序和配置应用程序以使用应用程序代理)。

注册应用程序对象

作为开发人员,注册使用 Microsoft 标识平台的应用。 在 Azure 门户中或通过调用 Microsoft Graph 应用程序 API 注册应用。 注册应用后,它将通过向终结点发送请求来与 Microsoft 标识平台通信。

你可能无权创建或修改应用程序注册。 当管理员未授予注册应用程序的权限时,请询问他们如何向其传达必要的应用注册信息。

应用程序注册属性可能包括以下组件。

  • 名称、徽标和发布者
  • 重定向 URI
  • 机密(用于对应用程序进行身份验证的对称和/或非对称密钥)
  • API 依赖关系 (OAuth)
  • 发布的 API/资源/范围 (OAuth)
  • 基于角色的访问控制所需的应用角色
  • 单一登录 (SSO)、用户预配和代理的元数据和配置

应用注册的必需部分是选择支持的帐户类型,以根据用户的帐户类型定义谁可以使用你的应用。 Microsoft Entra 管理员采用应用模型,通过应用注册体验来管理 Azure 门户中的应用程序对象,并定义应用程序设置以告知服务如何向应用程序颁发令牌。

在注册期间,你会收到应用程序的标识:应用程序(客户端)ID。 每次通过 Microsoft 标识平台执行事务时,应用都会使用其客户端 ID

应用注册最佳做法

在 Microsoft Entra ID 中将应用程序注册为其业务使用的关键部分时,请遵循应用程序属性的安全最佳做法。 目标是为了防止可能影响整个组织的停机或入侵。 下列建议可帮助你围绕零信任原则开发安全应用程序。

  • 使用 Microsoft 标识平台集成清单来确保高质量和安全集成。 维护应用的质量和安全性。
  • 正确定义重定向 URL。 参考重定向 URI(回复 URL)约束和限制,以避免兼容性和安全问题。
  • 检查应用注册中的重定向 URI 以了解所有权,从而避免域接管。 重定向 URL 应位于你知道和拥有的域中。 定期审查和移除不需要和未使用的 URI。 切勿在生产应用中使用非 https URI。
  • 始终为租户中注册的应用定义并维护应用和服务主体所有者。 避免孤立应用(未分配所有者的应用和服务主体)。 确保 IT 管理员在紧急情况下可以轻松快速地识别应用所有者。 保持较少的应用所有者数量。 使遭受入侵的用户帐户难以影响多个应用程序。
  • 避免为多个应用使用同一个应用注册。 分隔应用注册有助于实现最低权限访问,并降低违规期间的影响。
    • 对登录用户的应用和通过 API 公开数据和操作的应用使用单独的应用注册(除非紧密耦合)。 此方法允许获得对更高特权 API(如 Microsoft Graph)和凭据(如机密和证书)的权限,与已登录并与用户交互的应用保持距离。
    • 对 Web 应用和 API 使用单独的应用注册。 这种方法有助于确保当 Web API 具有更高的权限集时,客户端应用不会继承它们。
  • 仅在必要时将应用程序定义为多租户应用多租户应用允许在不属于你的租户中进行预配。 它们需要更多的管理开销来筛选不需要的访问。 除非打算将应用开发为多租户应用,否则请从 AzureADMyOrg 的 SignInAudience 值开始。

后续步骤