第 2 部分:生成并测试 API 密钥

<ph type="x-smartling-placeholder"></ph> 您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
信息

重构并重定向到“保护 API”的 要求 API 密钥

开发者构建的应用可向您的 API 发出请求, 访问您的后端服务。如需控制对 API 的访问权限,您可以要求开发者执行以下操作: 为每个请求传递 API 密钥如果缺少密钥或密钥无效,请求将失败。

发布是将您的 API 提供给应用开发者 。发布 API 大致可通过以下任务来定义:

  1. 在 Apigee Edge 上创建捆绑您的 API 的 API 产品。
  2. 在 Edge 上注册应用开发者。只有已注册的应用开发者才能注册应用。
  3. 开发者在 Edge 上注册应用以访问 API 产品。作为回应,开发者 会收到 API 密钥。既然开发者拥有 API 密钥,就可以向您的 API。

有关详情,请参阅 发布

下表定义了一些用于注册应用和生成密钥的术语:

术语 定义
API 产品 一组 API 代理与服务计划相结合,该服务计划用于设置 这些 API。API 产品是 Apigee Edge 用于授权的核心机制 以及对 API 的访问权限控制。
开发者 API 使用方。开发者编写向 API 发出请求的应用。
应用广告系列 开发者为访问 API 产品而注册的客户端应用。注册 包含 API 产品的应用会生成 API 密钥,以用于访问该产品中的 API。
API 密钥 一个包含授权信息的字符串,客户端应用用于访问 API 产品公开的资源API 密钥是当已注册的应用程序 与 API 产品相关联

本教程的前提条件

本教程假定您已完成第一个教程,并在这里创建 API 访问 Yahoo 天气 API。如果您尚未学完第一个教程,请参阅 保护 通过要求 API 密钥来 API 访问

第 1 步:创建 API 产品

  1. 在管理界面中,点击发布标签页,然后 商品
  2. 点击 (+) 商品
  3. 在“添加产品”对话框字段中输入或选择以下内容:
    字段
    名称 免费的 API 产品
    显示名称 免费的 API 产品
    说明 免费的 API 产品
    环境 测试
    访问 仅限内部使用
    密钥审批类型 自动
    (API 密钥生成后会自动批准)
    配额 每小时 10 个请求
    (将请求次数限制为每小时 10 次)
    允许的 OAuth 范围 留空

    已填充的对话框应如下所示:

  4. 在“资源”部分,选择: <ph type="x-smartling-placeholder">
      </ph>
    • API 代理weatherapikey
    • 修订版本:1
    • 资源路径:/forecastrss**

      资源路径指定商品允许的资源 URI。 即可访问该应用在此示例中,应用只能访问 /forecastrss weatherapikey 代理上的资源。尝试使用此 访问 weatherapiproxy 代理上或 其他任何代理。

      资源路径允许使用通配符。通配符“/**” 表示包含所有子 URI,即以下形式的资源: /forecastrss/foo/bar.通配符“/”表示只有下一级别的 URI 包括在内。请参阅创建 API 产品了解详情。

      请注意,资源路径下拉列表显示了 流。API 代理的条件流定义了 逻辑或处理步骤。API 产品控制访问权限 资源路径
  5. 点击 Import Resource。添加了资源路径,并且 weatherapikey API 代理会自动添加到 产品部分。
  6. 点击保存。您的新商品会列在“商品”页面上。

了解详情

第 2 步:注册开发者

若要生成 API 密钥,您需要注册一个应用,并将其与一个 API 产品相关联。不过,您 必须先注册应用程序的开发者,然后才能注册应用程序。

  1. 在管理界面中,点击发布标签页,然后 开发者
  2. 点击 (+) 开发者
  3. 在“新建开发者”对话框中,输入以下值: <ph type="x-smartling-placeholder">
      </ph>
    • 名字Jane
    • 姓氏教程
    • 电子邮件地址janetutorial@example.com
    • 用户名jtutorial
  4. 点击保存。新开发者会显示在 开发者页面

了解详情

第 3 步:注册应用

现在,您已经有了 API 产品和开发者,可以使用 API 注册应用了 产品。注册应用后,系统会为与该应用关联的 API 产品生成 API 密钥。 然后,您可以将密钥分发给应用开发者,以便他们使用 API 中的功能 展示商品。

  1. 在 API 平台界面中,依次点击发布标签页和开发者 应用
  2. 点击 (+) 开发者应用
  3. 在“添加应用”对话框中,输入以下值: <ph type="x-smartling-placeholder">
      </ph>
    • 显示名称Weather API Key App
    • 开发者Jane 教程 (janetutorials@example.com)
    • Callback 网址:留空
  4. 将应用与产品相关联: <ph type="x-smartling-placeholder">
      </ph>
    1. 商品部分,点击 + 商品
    2. 选择免费 API 产品
    3. 点击对勾标记图标以接受更改。
  5. 点击保存。新应用即会显示在开发者 “应用”页面。
  6. 选择 Weather API Key App 应用列表中。系统随即会打开该应用的详情页面。
  7. 因为您在创建 API 时选择了密钥审批类型:自动 API 密钥会自动获得批准,您可以立即查看。(如果 审批类型:手动,则需要点击 在“操作”列中为免费 API 产品批准以批准该 API key.)
  8. 在“产品”部分中,点击免费 API 产品条目旁边的 在 Consumer Key(使用方密钥)和 Consumer Secret(使用方密钥)中显示 列以显示生成的密钥。

    使用方密钥是 API 密钥的别名,是应用需要唯一密钥 访问 forecast 资源 通过 API 代理使用方密钥(以及使用方键值)在 通过 OAuth 2.0 保护 API。例如,请参阅 OAuth 2.0: 配置新的 API 代理

了解详情

第 4 步:在请求中使用 API 密钥

为确保 VerifyAPIKey 政策工作正常,您需要 使用有效的 API 密钥对 API 代理进行调用。您可以在浏览器中从以下位置请求 API 代理: API 代理的跟踪页面(通过 Apigee 控制台或使用 c网址)。请求的网址是 表单:

http://{org-name}-test.apigee.net/v1/weatherapikey/forecastrss?w=12797282&apikey=IEYRtW2cb7A5Gs54A1wKElECBL65GVls

将您的 Apigee 组织名称替换成 {org-name}和正确的 apikey 值。

在响应中查找以下内容:

<rss xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" version="2.0"> 
<channel> <title>Yahoo! Weather - Palo Alto, CA</title> 
<link>http://us.rd.yahoo.com/dailynews/rss/weather/Palo_Alto__CA/*http://weather.yahoo.com/forecast/USCA1093_f.html</link> 
<description>Yahoo! Weather for Palo Alto, CA</description> <language>en-us</language>

如果您在请求中省略 API 密钥,或者指定一个 无效的键值对,您将收到以下形式的错误响应

{"fault":{"faultstring":"Failed to resolve API Key variable null","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}

第 5 步:下一步操作

现在,您已经使用查询参数向 API 发出了传递 API 密钥的请求, 修改 API 以将密钥作为标头传递。

继续阅读通过以下方式保护 API: 要求 API 密钥