什么是 API 密钥?
API 密钥是一个字母数字字符串,API 开发人员使用该字符串来控制对其 API 的访问权限。API 是一种通信机制,允许在两个软件模块之间进行数据交换。为模块创建 API 后,其他应用程序开发人员可以调用您的 API,以将您的功能集成到他们的代码中。例如,您可以开发这样一个模块,输入物品列表则会返回能以最优惠价格购买到这些物品的商店的列表。然后,电子商务应用程序可以使用您的 API 为其客户生成每日杂货交易列表。作为 API 创建者,您可以使用 API 密钥来限制和监控您的 API 访问权限。API 密钥可识别经过授权的 API 使用,因此您可以更有效地维护、管理 API 并从中获利。
API 密钥有哪些使用案例?
软件开发人员使用 API 密钥管理所创建 API 的访问方式。API 密钥通过多种方式为现代云应用程序的开发做出贡献。
监控 API 使用情况
API 提供商使用 API 密钥跟踪使用情况和管理 API 用量,特别是对于商业应用程序。这些提供商按照 API 使用的计算资源向用户收费。
作为 API 提供商,您可以使用唯一的 API 密钥限制对 API 服务的访问。通过只允许合法流量通过,可以优化 API 的资源利用率和带宽容量。还可以分析每个密钥的使用情况统计信息,以调整不同计划的配额。
对 API 集成进行故障排除
云应用程序可能会因为使用的 API 而遇到技术问题。软件开发人员使用 API 密钥检测异常的数据模式,并将 API 流量与各自的提供商进行匹配。这样,他们就可以识别和隔离阻止应用程序正常运转的特定 API。
确定项目
软件应用程序通过 API 与外部服务交换敏感数据。API 密钥充当项目授权机制,用于监管所允许项目的使用情况。要使用 API,项目必须提供正确的 API 凭证,才能访问抽象的软件函数。请务必注意,API 密钥不会对特定用户进行身份验证。相反,它们会粗略地标识与特定密钥相关的组织。
API 密钥如何运作?
API 密钥由随机生成的字母和数字字符组成。可以将特定的 API 密钥与特定的 API 客户端相关联。由于 API 的使用本质上是一个软件模块与另一个软件模块通信,因此密钥与想要与 API 通信的不同软件模块或应用程序相关联。
应用程序发送 API 请求时,工作流程如下所示:
- API 服务器使用唯一的 API 密钥验证请求者的真实性
- 如果 API 密钥与任何允许的密钥都不匹配,则服务器会拒绝 API 调用并发送拒绝消息
- 如果 API 密钥匹配,服务器将履行请求并返回预期的响应
这样,API 密钥就允许 API 服务器识别每个 API 调用的来源。然后,服务器可以执行后续验证,以授权访问 API 的数据和服务。
限制 API 调用
API 提供商可以使用 API 密钥监管对其 API 服务的不同程度的访问权限。验证请求后,API 服务器可以检查一些参数,之后再允许进一步访问其服务。
服务范围
服务器决定它可以向请求的应用程序授予的服务范围。例如,某些 API 密钥允许请求者添加、删除和读取 API 数据存储中的信息。其他 API 密钥可能将 API 调用限制为仅读取信息。
功能选择
服务器决定并强制实施 API 调用的范围,以自定义其 API 服务。例如,可以使用 API 密钥将电子商务应用程序限制为在特定国家/地区搜索产品数据。还可以将特定的 API 密钥关联到某些数据库参数筛选条件,例如书籍和服装。
调用次数
API 提供商还使用 API 密钥来严格监管 API 访问权限。一些提供商对其 API 应用时间或请求限制。在这种情况下,客户端应用程序只能在规定的持续时间内使用 API,或者每天最多使用一定的次数。一旦超过这些限制,服务器就会拒绝来自相关 API 密钥的任何请求。
API 密钥和 API 令牌之间有什么区别?
API 密钥是一串唯一标识符,主要用于识别来自 API 客户端的应用程序流量。API 密钥通常与在其上部署调用应用程序的特定服务器相关联。当应用程序发出 API 请求时,服务器会通过 API 密钥识别调用应用程序。
相比之下,API 令牌是一串代码,包含用于识别特定用户的综合性数据。API 令牌还包含授予特定用户的访问权限范围。借助 API 令牌,服务器既可以对调用用户的请求进行身份验证,又可以验证 API 的使用范围。例如,用户可以使用单点登录令牌访问一组 API。
由于其在用户授权中的作用有限,因此 API 密钥的生成较为简单直接。相反,在授予 API 令牌时会有更多的限制和程序,因为 API 令牌包含身份识别和身份验证数据。
在 Amazon Web Services(AWS)上,API 令牌也称为身份验证令牌或安全令牌。开发人员使用 IAM 权限、Lambda 授权命令或 Amazon Cognito 用户池来创建 API 令牌并管理 API 的访问权限。
有哪些 API 密钥最佳实践?
使用 API 密钥时,请记住一些最佳实践。
避免使用 API 密钥进行用户身份验证。API 密钥并非用于控制用户访问权限。同样,不得在 API 密钥中包含机密信息,因为这些信息可能会在传输过程中泄露。
不得将 API 密钥直接嵌入到源代码或存储库中。如果您忘记移除 API 密钥,则它们可能会在您发布应用程序时向公众公开。
当 API 密钥不再使用时,应将其删除。考虑为密钥添加过期时间,以实现更强大的 API 安全性。
AWS 如何帮助您管理 API 密钥?
Amazon Web Services(AWS)针对您的 API 密钥管理需求提供 Amazon API Gateway。
可以使用 API Gateway 创建、发布、维护、监控和保护任意规模的 REST、HTTP 和 WebSocket API。API 开发人员可以创建 API 来访问 AWS 或其他网络服务,以及存储在 AWS Cloud 中的数据。
创建、测试和部署 API 后,可以使用 API Gateway 使用计划将其作为产品提供给客户。可以配置使用计划和 API 密钥,以允许客户访问选定的 API。而且,可以根据定义的限制和配额开始限制对这些 API 的请求。
立即创建账户,开始使用 AWS 上的 API 密钥管理