v1.0 中的应用程序类型

警告

本内容适用于较旧版本的 Azure AD v1.0 终结点。 为新项目使用 Microsoft 标识平台

Azure Active Directory (Azure AD) 支持对各种新式应用体系结构进行身份验证,所有这些体系结构都基于行业标准协议 OAuth 2.0 或 OpenID Connect。

下图演示了方案和应用程序类型,以及如何添加不同的组件:

应用程序类型和方案

以下是 Azure AD 支持的五个主要应用程序方案:

按照链接了解有关每种应用类型的详细信息,并在开始使用代码之前了解高级方案。 还可以了解编写适用于 v1.0 终结点或 v2.0 终结点的特定应用时需要了解的差异。

注释

v2.0 终结点不支持所有 Azure AD 方案和功能。 若要确定是否应使用 v2.0 终结点,请阅读 v2.0 限制

可以使用各种语言和平台开发此处介绍的任何应用和方案。 它们都由代码示例指南中提供的完整代码示例提供支持: 按方案提供的 v1.0 代码示例按方案提供的 v2.0 代码示例。 还可以直接从相应的 GitHub 示例存储库下载代码示例。

此外,如果应用程序需要端到端方案的特定部分或段,则在大多数情况下,可以独立添加该功能。 例如,如果你有一个调用 Web API 的本机应用程序,则可以轻松添加也调用 Web API 的 Web 应用程序。

应用注册

注册使用 Azure AD v1.0 终结点的应用程序

任何将身份验证外包给 Azure AD 的应用程序都必须在目录中注册。 此步骤涉及告知 Azure AD 有关应用程序的信息,包括应用程序所在的 URL、身份验证后发送回复的 URL、用于标识应用程序的 URI 等。 出于以下几个关键原因,需要此信息:

  • 处理登录或交换令牌时,Azure AD 需要与应用程序通信。 Azure AD 与应用程序之间传递的信息包括:

    • 应用程序 ID URI - 应用程序的标识符。 此值在身份验证期间发送到 Azure AD,以指示调用方需要令牌的应用程序。 此外,此值包含在令牌中,以便应用程序知道它是预期目标。
    • 回复 URL重定向 URI - 对于 Web API 或 Web 应用程序,回复 URL 是 Azure AD 将发送身份验证响应的位置,包括身份验证成功时令牌。 对于本机应用程序,重定向 URI 是 Azure AD 将在 OAuth 2.0 请求中重定向用户代理的唯一标识符。
    • 应用程序 ID - 注册应用程序时由 Azure AD 生成的应用程序的 ID。 请求授权代码或令牌时,应用程序 ID 和密钥在身份验证期间会发送到 Azure AD。
    • 密钥 - 在向 Azure AD 进行身份验证以调用 Web API 时,将随应用程序 ID 一起发送的密钥。
  • Azure AD 需要确保应用程序具备访问目录数据、组织内其他应用程序等所需的权限。

有关详细信息,请了解如何注册应用

单租户应用和多租户应用

当你了解可以开发和集成 Azure AD 的两类应用程序时,预配变得更加清晰:

  • 单租户应用程序 - 单个租户应用程序适用于一个组织。 这些应用程序通常是由企业开发人员编写的业务线(LoB)应用程序。 单个租户应用程序只需要由一个目录中的用户访问,因此,它只需要在一个目录中预配。 这些应用程序通常由组织中的开发人员注册。
  • 多租户应用程序 - 多租户应用程序 适用于许多组织,而不仅仅是一个组织。 它们通常是由独立软件供应商 (ISV) 编写的软件即服务 (SaaS) 应用程序。 需要在要使用的每个目录中预配多租户应用程序,这需要用户或管理员同意注册它们。 当在目录中注册应用程序并向其授予对 Graph API 或者另一可能的 Web API 的访问权限时,此许可过程即已开始。 当来自其他组织的用户或管理员注册以使用该应用程序时,他们会显示一个对话框,其中显示了应用程序所需的权限。 然后,用户或管理员可以同意应用程序,从而授予应用程序对所述数据的访问权限,最后在其目录中注册应用程序。 有关详细信息,请参阅 同意框架概述

开发单租户或多租户应用时的其他注意事项

开发多租户应用程序而不是单个租户应用程序时,会出现一些其他注意事项。 例如,如果要使应用程序可供多个目录中的用户使用,则需要一种机制来确定他们所在的租户。 单个租户应用程序只需查找用户自己的目录,而多租户应用程序需要从 Azure AD 中的所有目录中标识特定用户。 为了完成此任务,Azure AD 提供了一个常见的身份验证终结点,其中任何多租户应用程序都可以定向登录请求,而不是特定于租户的终结点。 此终结点适用于 https://login.microsoftonline.com/common Azure AD 中的所有目录,而特定于租户的终结点可能是 https://login.microsoftonline.com/contoso.onmicrosoft.com。 开发应用程序时,需要考虑通用终结点,因为在登录、注销和令牌验证过程中需要必要的逻辑来处理多个租户。

如果当前正在开发单个租户应用程序,但希望将其提供给许多组织,则可以轻松地更改应用程序及其在 Azure AD 中的配置,使其支持多租户。 此外,无论在单个租户还是多租户应用程序中提供身份验证,Azure AD 对所有目录中的所有令牌使用相同的签名密钥。

本文档中列出的每个方案都包含一个描述其预配要求的子部分。 有关在 Azure AD 中预配应用程序的更深入信息以及单租户应用程序与多租户应用程序之间的差异,请参阅 将应用程序与 Azure Active Directory 集成 以获取详细信息。 继续阅读以了解 Azure AD 中的常见应用程序方案。

后续步骤