本页面适用于 Apigee 和 Apigee Hybrid。
查看 Apigee Edge 文档。
API 密钥(在 Apigee 中称为“使用方密钥”)是客户端应用传递给 API 代理的字符串值。该密钥唯一标识客户端应用。
API 密钥验证是一种最简单的基于应用的安全形式,您可以为 API 配置密钥验证。客户端应用只需随其请求提供 API 密钥,然后 Apigee 会检查该 API 密钥对于所请求的资源而言是否处于已批准状态。在内部,您的代理会使用政策来验证 API 密钥的真实性。
为支持这种简化,您需要进行一些设置。为支持 API 密钥,您需要执行以下操作:
- 创建 Apigee API 产品,其中打包了您要使用 API 密钥保护的 API 代理。
- 创建 Apigee 开发者应用,其代表您要对其应用进行身份验证的客户端应用开发者。
创建开发者应用时,您需要指定开发者应用有权访问的 API 产品,要访问 API 产品,它需要提供 API 密钥。
- 在您的代理(您在 API 产品中添加的代理)中添加政策,以验证传入的 API 密钥是否有效。
通过要求使用 API 密钥保护 API教程,您可以快速了解如何使用 API 密钥控制对 API 代理的访问。
API 密钥的工作原理
在 Apigee 中,API 密钥被称为使用方密钥。当您注册开发者应用时,Apigee 会生成使用方密钥和密文。Apigee 会存储使用方密钥以供日后验证。每个使用方密钥在组织中都是独一无二的。应用开发者将使用方密钥嵌入到客户端应用中。客户端应用必须为每个请求都指定使用方密钥。API 服务会先验证使用方密钥,然后再允许应用的请求。
简要步骤
以下步骤介绍了 Apigee 如何使用 API 密钥。这些步骤也可能会介绍 OAuth 安全性,因为它通常与 API 密钥一起使用。
- 创建 API 产品,其中包含应使用 API 密钥进行保护的 API 代理。
- 您可以在组织中注册开发者应用。当您注册开发者应用时,Apigee 会生成使用方密钥和使用方密文。
- 将开发者应用与至少一个 API 产品相关联。该产品会将资源路径和 API 代理与密钥审批关联起来。
- 在运行时,当客户端应用向您的 API 发出请求时,客户端应用在发出请求时会发送使用方密钥。在实际操作中,使用方密钥可能会显式传递,也可能通过 OAuth 令牌隐式引用:
- 当 API 使用 API 密钥验证(例如通过实现 VerifyAPIKey 政策)时,客户端应用就必须明确传递使用方密钥。
- 当 API 使用 OAuth 令牌验证(例如通过实现 OAuthV2 政策)时,客户端应用就必须传递从使用方密钥派生的令牌。
- API 代理验证请求凭据的方法是通过 VerifyAPIKey 政策或带有 VerifyAccessToken 操作的 OAuthV2 政策。如果您没有在 API 代理中添加凭据强制执行政策,则任何调用者都可以成功调用您的 API。如需了解详情,请参阅验证 API 密钥政策。
验证请求凭据
此为概览。如需了解详情并查看代码示例,请务必设置 API 密钥验证。
- 如果您使用的是 OAuth 令牌验证,则表示已采用 OAuth 政策来验证,且客户端应用已传递 OAuth 令牌:
- Apigee 会验证令牌是否过期,然后查找用于生成令牌的使用方密钥。
- 如果您使用的是 API 密钥,则表示已实现 VerifyAPIKey 政策,并且客户端应用已传递其使用方密钥:
- Apigee 会检查与使用方密钥关联的 API 产品列表。
- Apigee 会检查每个 API 产品,以了解 API 产品是否包含当前的 API 代理,以及 API 产品是否已启用当前的资源路径(网址路径)。
- 此外,Apigee 还会验证使用方密钥是否已过期或已被撤消,检查应用未被撤消,并检查开发者未处于非活跃状态。
- 如果满足上述所有条件,亦即令牌未过期(如果适用)、使用方密钥有效且已获批准、应用已获批准、开发者处于活跃状态、产品中提供了代理和资源,则凭据验证将会成功。