本教程将向您展示如何使用 API 管理器用户界面创建本地 OAuth 提供程序。
准备工作
本教程使用预定义的 FindBranch API。 要为本教程准备环境,请完成以下任务:
- 按照创建和配置目录中的说明,将 DataPower® API Gateway 服务添加到沙盒目录中。
必须配置沙箱目录以使用至少一个网关。 对于本教程,您必须使用 FindBranch API 所使用的相同网关。
- 导入 FindBranch API 并按照教程:导入 API 中的说明激活它。
创建本机 OAuth 提供者
要在 API Manager 中创建本地 OAuth 提供程序,需要设置一个使用外部身份验证 URL 来验证用户的用户注册表,然后创建一个提供程序来验证使用该注册表登录的用户。
- 创建可用于向 OAuth 认证用户的用户注册表:
- 登录 API 管理器。
- 在主页上,单击 " 管理资源 "磁贴。

- 在 " 资源 "页面左侧窗格中选择 " 用户注册 "。
- 在 " 用户注册 "部分,单击 " 创建 "。
- 在创建用户注册页面上,选择身份验证 URL 用户注册磁贴。 在“创建用户注册表”页面上,单击认证 URL 用户注册表作为选中的用户注册表类型。

- 在创建身份验证 URL 用户注册页面,输入以下信息。
- 在标题和显示名称字段中,输入 AuthURL。
在 " 标题 "和 " 显示名称 "字段中输入 AuthURL ,就可以轻松确定该注册表配置了身份验证 URL。
- 在 URL 字段中,输入 https://httpbin.org/basic-auth/user/password。
注: 此处提供的 URL 仅用于测试目的。 该
httpbin.org 端点提供了一个沙盒,通过在授权头中传递与 {user} 和 {password} 路径参数相匹配的凭据,可以在沙盒中模拟使用基本身份验证登录。
- 从 TLS 客户配置文件(可选) 下拉列表中,选择 No TLS profile。
- 单击保存。

这样会显示“资源”页面,其中包含列表中包含的新注册表。
- 要创建 OAuth 提供程序来验证使用 AuthURL 注册表登录的用户,请执行以下任务。
- 在资源页面的导航列表中,单击 OAuth 提供商。

- 在 OAuth 提供程序部分,单击程序。

此时将显示 " 创建本地 OAuth 提供程序 "页面。
- 在本地 OAuth 提供程序部分,输入以下信息。
- 在标题字段中,输入 MyNativeOAuthProvider。
- 在网关类型部分,选择 DataPower API Gateway 单选按钮(与 FindBranch API 使用的网关相同)。
注意: 每个原生 OAuth 提供商适用于一种网关类型。 此处选择的网关类型必须与将使用此新提供程序保护的 API 所使用的网关类型相匹配。
- 单击下一步。

- 在 " 支持的补助金类型 "部分,执行以下任务。
- 选择访问代码复选框,取消选择所有其他补助金类型。
请注意,本教程使用单一授予类型来说明本机 OAuth 提供程序的功能。
- 单击下一步。

- 在 " 作用域 "部分,执行以下任务。
- 单击
删除默认范围。
- 单击添加 ,定义将由本地 OAuth 提供程序保护的 API 的范围。
- 在名称字段中,输入details。
- 在描述字段中,输入 Branch
details
- 单击下一步。

- 在授权端点部分,执行以下任务。
- 在身份验证部分下,从使用下拉列表对应用程序用户进行身份验证 ,选择 AuthURL。
- 单击下一步。

- 在本地 OAuth 提供程序摘要部分,查看设置,然后单击完成。
保存新的提供方后,其信息就可以编辑并显示在信息页面上。
- 在信息页面上执行以下任务。
- 选择启用调试响应头复选框。
当出现问题时,选择此复选框会在响应标头中包含错误详细信息。
- 单击保存。

新的本机 OAuth 提供者现已完成。
- 要配置 AuthURL 注册表,使其作为沙盒目录中的 API 用户注册表运行,请执行以下任务。
- 在导航窗格中,单击管理图标
。
- 在 "管理 "页面,单击沙盒目录磁贴。

显示 " 产品 "页面。
- 在菜单栏上选择目录设置。

- 在左窗格中,单击 API 用户注册。
- 在 " 添加 API 用户注册 "部分,单击 " 编辑 "。

- 在编辑 API 用户注册页面,执行以下任务。
- 选择 AuthURL 复选框。
- 单击保存。

如下图所示,新注册表会显示在 API 用户注册表列表中。

- 要配置本地 OAuth 提供程序并使其在 API 管理器界面中可用,请执行以下任务。
- 选择。
- 在左窗格中,单击 OAuth 提供商。
- 在 " OAuth 提供商 "部分,单击 " 编辑 "。

- 在 " 编辑 OAuth 提供程序 "页面上,执行以下任务。
- 选择 MyNativeOAuthProvider 复选框。
- 单击保存。

MyNativeOAuthProvider 显示在可与 API Manager 一起使用的已配置提供商列表中。
向 API 添加 OAuth 安全性
为 FindBranch API 创建安全性定义并包含本机 OAuth 提供者信息。
- 转到 API 管理器 主页。

- 在主页上 ,单击
Develop 图标。或者,选择 “开发 API 和产品” 图块。
- 在 "开发 "页面的 " 应用程序接口 "下,选择要修改的应用程序接口。 例如 FindBranch.

- 在 FindBranch API 的设计页面上执行以下任务。
- 在左侧导航窗格中,选择安全方案。

- 在 " 安全方案 "部分,单击 " 添加 "。

- 在弹出的添加模式窗口中,执行以下任务。
- 在安全定义名称(密钥) 字段中,输入 FindBranchOA。
- 从类型下拉列表中,选择 oauth2。
- 从 OAuth 提供程序(名称)(可选) 下拉列表中选择 MyNativeOAuthProvider.
- 从流量下拉列表中,选择 Access
Code。
- 保留授权网址和令牌网址字段中的预填值。
- 单击添加。

FindBranchOA 现在显示在安全方案下。

- 在右窗格的 FindBranchOA 部分,单击详细信息链接并验证是否显示了您为本地 OAuth 提供程序定义的范围。

- 在页面右上角,单击保存。
- 在左侧导航窗格中,选择安全。

- 在安全要求部分,执行以下任务。
- 单击添加。
- 在弹出的添加模式窗口中,选择 ClientID 和 FindBranchOA 复选框,然后单击添加。

FindBranchOA 现在显示在 " 安全要求 "部分。
- 在 FindBranchOA 旁边,从作用域下拉列表中选择详细信息。
- 在右上角单击 " 保存 "。

向“沙箱测试应用程序”添加 OAuth 重定向
要在 API 管理器中测试 OAuth 功能,请使用沙盒测试应用程序。 沙盒测试应用程序包含在沙盒目录中,并且会自动订阅您在目录中创建的每个 API 的默认产品,因此它始终可用于在 API 管理器中测试 API。
注意: 在使用应用程序进行 OAuth 测试之前,必须更新应用程序,使其包含 OAuth 重定向 URL。
- 转到 API 管理器 主页。

- 在主页导航窗格中,单击管理
。
- 在 "管理 "页面,单击沙盒目录磁贴。

显示 " 产品 "页面。
- 在菜单栏上单击应用程序。
- 从应用程序列表中,选择沙盒测试应用程序。

显示编辑应用程序页面。
- 在编辑应用程序页面,执行以下任务。
- 在 OAuth 重定向 URL(可选) 部分,单击添加重定向 URL。
- 在 OAuth 重定向 URL(可选) 字段中,输入 https://example.com/redirect
虽然此字段是可选的,但您必须在 OAuth 提供程序中输入授权流的值。 要在 API Manager 中测试 OAuth,URL 可以是格式化为正确 URL 的任何值,但在测试期间提供重定向 URL 时必须使用相同的值。
- 在 OAuth 重定向 URL(可选) 字段中输入值后,单击完成图标保存值。

- 单击保存更新应用程序。

测试 OAuth 安全性实施
注意: 由于跨源资源共享 (CORS) 限制,汇编测试工具不能在 macOS Catalina 平台上与 Chrome 或 Safari 浏览器一起使用。
要测试您的 OAuth 实施,请使用沙盒测试应用程序在 API 管理器中运行一个 API。
注意: 在运行应用程序接口之前、
- 您必须发布产品,以确保最新更新在线并可供测试。
- 您必须获得一个授权码,然后用它来获得一个访问令牌,以便执行 API。
- 转到 API 管理器 主页。

- 在主页上 ,单击
Develop 图标。或者,选择 “开发 API 和产品” 图块。
- 在 " 开发 "页面,选择要测试的 API。 例如 FindBranch.
- 在菜单栏上选择测试。
- 在测试页面,执行以下任务。
- 单击。

- 在弹出的授权窗口中执行以下任务。
- 选择 Oauth2 选项卡。
- 在客户 ID 字段中,输入您的客户 ID。
- 在客户密文字段中,输入您的客户密文。
- 在范围下,选择详细信息复选框。
- 在用户名字段中,输入 user。
- 在密码字段中,输入 password。
- 单击 " 获取令牌 "选项卡。
- 在弹出的对话框中输入 API 管理器登录凭证,然后单击登录或按 ENTER 键。

访问令牌将生成并显示在弹出的授权窗口中。
- 在 " 访问令牌 "部分,复制令牌。

- 单击应用。
- 在菜单栏上选择资源管理器。
- 在资源管理器页面左侧窗格中,选择 GET/详细资料。
- 在右窗格的 GET : /details 部分,执行以下任务。
- 选择 " 试用 "选项卡。

- 在 API 秘密字段中,输入您的客户秘密。
- 在授权部分,执行以下任务。
- 选择详细信息复选框。
- 在重定向 URI 字段中,输入 https://example.com/redirect。
- 要获取授权码,请向下滚动并单击 " 授权 "。
- 在弹出的对话框中,在用户 ID 字段中输入 user ,在密码字段中输入 password ,然后单击登录或按 ENTER 键。

成功认证后,浏览器将重定向到显示来自重定向 URL 的页面的窗口。 您的授权代码作为 URL 的参数包含在地址栏中。
您的授权码将作为 URL 的参数包含在地址栏中,如下图所示。 如果 URL 是 https://example.com/redirect?code=AAPl-yX6XVtdROcU4_WJhETLPLjLOJoJIpAYSFf7-4FxcNJ2XfXbMWpu8LnruLtcgmkdjNeDstRi0aO-d8bZX888iQYrtyhfrYSgADZgWy84nw ,您的授权码就是 AAPl-yX6XVtdROcU4_WJhETLPLjLOJoJIpAYSFf7-4FxcNJ2XfXbMWpu8LnruLtcgmkdjNeDstRi0aO-d8bZX888iQYrtyhfrYSgADZgWy84nw。
- 从 URL 复制窗口地址栏中的授权代码,捕捉 "code="之后的所有内容。
例如:
https://example.com/redirect?code= AALMmZCyKnhY1HpZGfpHkFH7wDdsNh9R2hgDfGwMVgdEzBOTlnq5LPZ3x6RFPa3V7CzsGacH8LLGlafnqa3ntbh921n5rJE7W0_jC1cAtzcZEg
- 在 " 授权 "字段中输入授权码。
- 单击 " 获取令牌 "获取访问令牌。
如果授权成功," 获取令牌 "中就会填入访问代码。
提示: 如果访问令牌没有出现,并且看到关于授权码过期的信息,请返回上一步申请一个新的授权码,并用它来生成访问令牌。
- 单击发送。
应用程序接口 FindBranch 应用程序接口的响应会显示状态代码200.您可以查看响应的标题信息和包含各银行分行数据的正文信息。
您可以向下滚动,查看回复部分下的信息。


您在本教程中执行的操作
在本教程中,您完成了以下活动:
- 创建了用于 OAuth 提供者的用户注册表。
- 创建了本机 OAuth 提供者并使其在目录中可用。
- 向 API 添加了 OAuth 安全性。
- 更新了“沙箱测试应用程序”(客户机应用程序)以提供用于测试的 OAuth 重定向。
- 通过获取授权代码、交换访问令牌以及调用安全 API,测试了 OAuth 安全性。