什么是API密钥?

时间:2009-09-21 06:14:36

标签: api security terminology api-key

这些天我几乎在每个跨服务应用程序中都看到了这个词。

API密钥究竟是什么?它的用途是什么?

此外,公钥和私钥API密钥之间有什么区别。

6 个答案:

答案 0 :(得分:97)

使用什么“确切”的API密钥在很大程度上取决于谁发布它,以及它用于什么服务。然而,总的来说,API密钥是给予某种形式的秘密令牌的名称,该秘密令牌与Web服务(或类似)请求一起提交以便识别请求的来源。密钥可以包含在请求内容的某些摘要中,以进一步验证来源并防止篡改值。

通常情况下,如果您可以积极地识别请求的来源,它将作为一种身份验证形式,这可以导致访问控制。例如,您可以根据执行请求的人限制对某些API操作的访问。对于通过销售此类服务赚钱的公司而言,它也是一种跟踪谁将该东西用于计费目的的方式。此外,通过阻止密钥,您可以在请求量过高的情况下部分防止滥用。

通常,如果您同时拥有公钥和私钥API,则表明密钥本身是传统的公钥/私钥对,用于某种形式的asymmetric cryptography或相关的数字签名。这些是用于肯定地识别请求源的更安全的技术,另外,用于保护请求的内容免受窥探(除了篡改)。

答案 1 :(得分:21)

非常一般地说:

API密钥只是识别您的身份。

如果存在公共/私人区别,那么公钥是您可以分发给其他人的公钥,以允许他们从api获取有关您的一些信息子集。私钥仅供您使用,并提供对所有数据的访问权限。

答案 2 :(得分:11)

看起来许多人使用API​​密钥作为安全解决方案。底线是:永远不要将API密钥视为秘密。在https与否,谁可以读取请求可以看到API密钥,并可以进行他们想要的任何调用。 API密钥应该像用户一样'即使与ssl一起使用,标识符也不是一个完整的安全解决方案。

更好的描述在Eugene Osovetsky链接到:When working with most APIs, why do they require two types of authentication, namely a key and a secret? 或者查看http://nordicapis.com/why-api-keys-are-not-enough/

答案 3 :(得分:9)

API密钥是一个唯一值,当他被接受为该服务的用户时,该值被分配给该服务的用户。

该服务维护所有已发布的密钥,并在每次请求时检查它们。

通过查看请求时提供的密钥,服务会检查它是否是一个有效密钥,以决定是否授予用户访问权。

答案 4 :(得分:2)

API密钥只是验证Web服务用户的一种方式。

答案 5 :(得分:1)

可以这样想,“公共API密钥”类似于数据库用作登录验证服务器的用户名。然后,“私有API密钥”将类似于密码。通过使用此方法的站点/数据库,在第三方/验证服务器上维护安全性,以便发布或编辑站点/数据库的真实请求。

API字符串只是您的站点/数据库与验证服务器联系的登录URL。