英文原文:https://blog.bytebytego.com/p/how-to-design-a-secture-web-api-access

译文微排版如下:

如何为你的网站设计安全的网络API访问?

当我们向用户开放网络API访问时,我们需要确保每个API调用都经过认证。这意味着用户必须是他们所声称的人。

两种常见的方式

在这篇文章中,我们探讨两种常见的方式。

1. 基于令牌的认证

2. HMAC(基于哈希的消息认证码)认证

工作原理

下图说明了它们如何工作

如何为你的网站设计一个安全的网络API访问

基于令牌的认证

第1步 – 用户在客户端输入密码,客户端将密码发送给认证服务器。

第2步–认证服务器对凭证进行认证,并生成一个有到期时间的令牌。

第3步和第4步–现在,客户端可以用HTTP头中的令牌发送请求,访问服务器资源。这种访问是有效的,直到令牌过期。

基于HMAC

这种机制通过使用哈希函数(SHA256或MD5)生成一个消息认证码(签名)。

步骤1和2 – 服务器生成两个密钥,一个是公共APP ID(公钥),另一个是API密钥(私钥)。

第3步 – 我们现在在客户端生成一个HMAC签名(hmac A)。这个签名是用图中列出的一组属性生成的。

第4步 – 客户端发送访问服务器资源的请求,HTTP头中含有hmac A。

第5步 – 服务器收到请求,其中包含请求数据和认证头。它从请求中提取必要的属性,并使用存储在服务器端的API密钥来生成一个签名(hmac B。)

步骤6和7 – 服务器比较hmac A(在客户端生成)和hmac B(在服务器端生成)。如果它们匹配,请求的资源将被返回给客户。

问题 – HMAC认证如何确保数据的完整性?为什么我们要在HMAC签名生成中包括 “请求时间戳”?

本文链接:https://www.fooliji.com/25995/

  1. 转载请保留原文链接谢谢!
  2. 本站所有资源文章出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。
  3. 本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户擦亮眼睛自行鉴别,做一个有主见和判断力的用户。
  4. 本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。
  5. 联系方式(#替换成@):feedback#abskoop.com