如何在 Azure API 管理中使用 OAuth 2.0 为开发人员帐户授权

许多 API 支持使用 OAuth 2.0 维护 API 的安全,并确保仅有效用户具有访问权限且只能访问有权访问的资源。 要将 Azure API 管理的交互式开发人员门户与此类 API 配合使用,需通过该服务对服务实例进行配置,使之适用于支持 OAuth 2.0 的 API。

先决条件

本指南了介绍如何配置 API 管理服务实例,以便针对开发人员帐户使用 OAuth 2.0 授权,但不介绍如何配置 OAuth 2.0 提供程序。 每个 OAuth 2.0 提供程序的配置均不相同,虽然步骤类似,不过在 API 管理服务实例中配置 OAuth 2.0 时使用的必需信息是相同的。 本主题介绍的示例使用 Azure Active Directory 作为 OAuth 2.0 提供程序。

Note

有关使用 Azure Active Directory 配置 OAuth 2.0 的详细信息,请参阅 WebApp-GraphAPI-DotNet 示例。

在 API 管理中配置 OAuth 2.0 授权服务器

若要开始,请单击 API 管理服务的 Azure 门户中的“发布者门户”。

发布者门户

Note

如果尚未创建 API 管理服务实例,请参阅 Azure API 管理入门教程中的创建 API 管理服务实例

在左侧的“API 管理”菜单中单击“安全”,并单击“OAuth 2.0”和“添加授权服务器”。

OAuth 2.0

单击“添加授权服务器”后,会显示新的授权服务器窗体。

新建服务器

在“名称”和“说明”字段中输入名称和可选说明。

Note

这些字段用于标识当前 API 管理服务实例中的 OAuth 2.0 授权服务器,其值不来自 OAuth 2.0 服务器。

输入“客户端注册页 URL”。 此页是供用户创建和管理其帐户的地方,因所使用的 OAuth 2.0 提供程序而异。 “客户端注册页 URL”指向供用户针对 OAuth 2.0 提供程序创建和配置自己帐户的页面,这些提供程序支持用户管理帐户。 某些组织不配置或使用此功能,即使 OAuth 2.0 提供程序支持此功能。 如果 OAuth 2.0 提供程序尚未配置用户管理帐户功能,请在此处输入一个占位符 URL,例如公司的 URL,或 https://placeholder.contoso.com 之类的 URL。

此窗体的下一部分包含“授权代码授予类型”、“授权终结点 URL”和“授权请求方法”设置。

新建服务器

可以通过选中所需类型来指定“授权代码授予类型”。 “授权代码”是默认指定的。

输入“授权终结点 URL”。 对于 Azure Active Directory,此 URL 将类似于以下 URL,其中 <client_id> 将替换为客户端 ID,用于向 OAuth 2.0 服务器标识应用程序。

https://login.chinacloudapi.cn/<client_id>/oauth2/authorize

“授权请求方法”指定如何向 OAuth 2.0 服务器发送授权请求。 默认情况下会选择 GET

下一部分指定“令牌终结点 URL”、“客户端身份验证方法”、“访问令牌发送方法”和“默认范围”。

新建服务器

对于 Azure Active Directory OAuth 2.0 服务器,“令牌终结点 URL”将具有如下格式,其中 <APPID> 的格式为 yourapp.onmicrosoft.com

https://login.chinacloudapi.cn/<APPID>/oauth2/token

“客户端身份验证方法”的默认设置为“基本”,“访问令牌发送方法”为“授权标头”。 这些值以及“默认范围”在窗体的此部分配置。

“客户端凭据”部分包含“客户端 ID”和“客户端密钥”,在创建和配置 OAuth 2.0 服务器的过程中获取。 指定“客户端 ID”和“客户端密钥”以后,会生成“授权代码”的“redirect_uri”。 该 URI 用于在 OAuth 2.0 服务器配置中配置回复 URL。

新建服务器

如果“授权代码授予类型”设置为“资源所有者密码”,则可使用“资源所有者密码凭据”部分指定这些凭据;否则可将其留空。

新建服务器

完成窗体的操作后,单击“保存”保存 API 管理 OAuth 2.0 授权服务器配置。 保存服务器配置后,可将 API 配置为使用此配置,如下一部分所示。

配置 API 以使用 OAuth 2.0 用户授权

在左侧的“API 管理”菜单中单击“API”,依次单击所需 API 的名称和“安全”,然后单击“OAuth 2.0”的复选框。

用户授权

从下拉列表中选择所需的“授权服务器”,并单击“保存”。

用户授权

在开发人员门户中测试 OAuth 2.0 用户授权

配置 OAuth 2.0 授权服务器并将 API 配置为使用该服务器以后,即可转到开发人员门户并调用 API 对其进行测试。 单击右上方菜单中的“开发人员门户”。

开发人员门户

单击顶部菜单中的“API”,并选择“Echo API”。

Echo API

Note

如果只配置了一个 API 或者只有一个 API 对你的帐户可见,则单击 API 会直接进入该 API 的操作。

选择“GET 资源”操作,单击“打开控制台”,并从下拉列表中选择“授权代码”。

打开控制台

选中“授权代码”后,会显示一个弹出窗口,其中包含 OAuth 2.0 提供程序的登录窗体。 在此示例中,登录窗体由 Azure Active Directory 提供。

Note

如果已禁用弹出窗口,则浏览器会提示用户启用该功能。 启用该功能后,再次选中“授权代码”,此时就会显示登录窗体。

登录

登录后,“请求标头”中会填充用于对请求授权的 Authorization : Bearer 标头。

请求标头令牌

此时可以配置剩余参数的所需值,并提交请求。

后续步骤

有关如何使用 OAuth 2.0 和 API 管理的详细信息,请参阅此文章