当我们通过用户帐户登录到服务时,我们通常需要提供电子邮件和密码(有时还需要用户名)。
但是,当一个网站的API认证到另一个网站的API (自动)时,就不能使用个人电子邮件地址,因为它不是人在进行身份验证。
API键是否是某种“机器用户名”,取代了典型的(人)用户名?
发布于 2021-09-21 07:32:46
我能找到的API密钥的最好描述来自于这篇文章来自阿佩菲:
在处理API时,您可能会遇到名为API键的东西。它们有点像密码,让API来确认你的身份。一旦API知道您是合法的,您就可以通过并使用API的全部特性。API密钥示例: 1f9ba190-c513-471b-a573-b8d008bb52fe通常,API密钥是用于访问REST的单个令牌。在计算世界中,令牌是表示执行操作的权限的对象。通过将两个和两个组合在一起,我们可以推断出API密钥是一种赋予我们访问API的权限的代码。
因此,密钥提取(双关意)是指在对API进行身份验证时通常使用的API密钥,而不是用户名/密码组合。之所以使用它们,是因为与用户名/pass组合相比:
发布于 2021-09-21 12:16:02
API密钥非常类似于密码:它们是允许访问的秘密。
然而,有一些不同之处:
发布于 2021-09-22 12:58:48
术语"API键“被重载为两个非常不同的含义。在你的例子中,还不完全清楚,但是
当一个网站的API自动登录到另一个网站的API时
(强调我的)我想您是在谈论从服务器端登录,在这种情况下,Maximillian和Stephen的答案是正确的。
然而,还有另一个,可能是更老、更常见的"API密钥“定义,它根本不是密钥,因为它不是秘密的。这似乎就是纳特在说的。
例如,如果您想从web应用程序的客户端,或者从运行在用户个人电脑或电话上的应用程序中访问某个第三方的基于web的API,那么任何“密钥”都是您寄给用户的东西,他们可以将其用于他们想要的任何目的,而不仅仅是您想要的目的。这个"API密钥“可能只用于访问非特权接口(比如Google ),也可能伴随着特定于用户(而不是您的应用程序)的API提供者登录。
如果这种"API密钥“不能具有任何保密性,并且没有提供有意义的访问控制,那么它为什么要使用这种密钥呢?我有一个关于这个主题的Twitter线程,我把它描述为“围墙花园里的低等级问责制”。基本上,API提供程序使任何想要与其服务集成的人都获得一个标识符,以便所有与其应用程序相关的使用都可以被跟踪、监视以避免误用,并在API提供程序突然决定不喜欢应用程序所做的工作时停止使用。是的,技术熟练的人可以从应用程序中提取标识符,并将其用于自己的目的,但其规模预计将受到限制;如果他们使用其他人的API密钥发布应用程序,有明确的公开证据表明他们这样做了,而且他们可能面临法律问题。
不幸的是,这有两个非常坏的副作用:
https://webmasters.stackexchange.com/questions/136922
复制相似问题