API 密钥

您正在查看 Apigee Edge 文档。
前往 Apigee X 文档
信息

API 密钥(在 Apigee Edge 中称为“使用方密钥”)是客户端应用传递给 API 代理的字符串值。该密钥唯一标识客户端应用。

API 密钥验证是一种最简单的基于应用的安全形式,您可以为 API 配置密钥验证。客户端应用只需随其请求提供 API 密钥,然后 Apigee Edge 会检查该 API 密钥对于所请求的资源而言是否处于已批准状态。在内部,您的代理会使用政策来验证 API 密钥的真实性。

为支持这种简化,您需要进行一些设置。为支持 API 密钥,您需要执行以下操作:

  • 创建 Apigee Edge API 产品,其中打包了您要使用 API 密钥保护的 API 代理。
  • 创建 Apigee Edge 开发者应用,其代表您要对其应用进行身份验证的客户端应用开发者。

    创建开发者应用时,您需要指定开发者应用有权访问的 API 产品,要访问 API 产品,它需要提供 API 密钥。

  • 在您的代理(您在 API 产品中添加的代理)中添加政策,以验证传入的 API 密钥是否有效。

通过要求使用 API 密钥保护 API教程,您可以快速了解如何使用 API 密钥控制对 API 代理的访问。

API 密钥的工作原理

在 Apigee Edge 中,API 密钥被称为使用方密钥。当您注册开发者应用时,Apigee Edge 会生成使用方密钥和密文。Apigee Edge 会存储使用方密钥以供日后验证。每个使用方密钥在组织中都是独一无二的。应用开发者将使用方密钥嵌入到客户端应用中。客户端应用必须为每个请求都指定使用方密钥。API 服务会先验证使用方密钥,然后再允许应用的请求。

简要步骤

以下步骤介绍了 Apigee Edge 如何使用 API 密钥。这些步骤也可能会介绍 OAuth 安全性,因为它通常与 API 密钥一起使用。

  1. 创建 API 产品,其中包含应使用 API 密钥进行保护的 API 代理。
  2. 您可以在组织中注册开发者应用。当您注册开发者应用时,Apigee Edge 会生成使用方密钥和使用方密文。
  3. 将开发者应用与至少一个 API 产品相关联。该产品会将资源路径和 API 代理与密钥审批关联起来。
  4. 在运行时,当客户端应用向您的 API 发出请求时,客户端应用在发出请求时会发送使用方密钥。在实际操作中,使用方密钥可能会显式传递,也可能通过 OAuth 令牌隐式引用:
    • 当 API 使用 API 密钥验证(例如通过实现 VerifyAPIKey 政策)时,客户端应用就必须明确传递使用方密钥。
    • 当 API 使用 OAuth 令牌验证(例如通过实现 OAuthV2 政策)时,客户端应用就必须传递从使用方密钥派生的令牌。
  5. API 代理验证请求凭据的方法是通过 VerifyAPIKey 政策或带有 VerifyAccessToken 操作的 OAuthV2 政策。如果您没有在 API 代理中添加凭据强制执行政策,则任何调用者都可以成功调用您的 API。如需了解详情,请参阅验证 API 密钥政策

验证请求凭据

此为概览。如需了解详情并查看代码示例,请务必设置 API 密钥验证

  1. 如果您使用的是 OAuth 令牌验证,则表示已采用 OAuth 政策来验证,且客户端应用已传递 OAuth 令牌:
    • Apigee Edge 会验证令牌是否过期,然后查找用于生成令牌的使用方密钥。
  2. 如果您使用的是 API 密钥,则表示已实现 VerifyAPIKey 政策,并且客户端应用已传递其使用方密钥:
    1. Apigee Edge 会检查与使用方密钥关联的 API 产品列表。
    2. Edge 会检查每个 API 产品,以了解 API 产品是否包含当前的 API 代理,以及 API 产品是否已启用当前的资源路径(网址路径)。
    3. 此外,Edge 还会验证使用方密钥是否已过期或已被撤消,检查应用未被撤消,并检查开发者未处于非活跃状态。
    4. 如果满足上述所有条件,亦即令牌未过期(如果适用)、使用方密钥有效且已获批准、应用已获批准、开发者处于活跃状态、产品中提供了代理和资源,则凭据验证将会成功。