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

如何为你的网站设计一个安全的网络API访问?-资源网
如何为你的网站设计一个安全的网络API访问?
此内容为免费内容,请登录后查看
0
免费内容

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

译文微排版如下:

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

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

两种常见的方式

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

1. 基于令牌的认证

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

工作原理

下图说明了它们如何工作

图片[1]-如何为你的网站设计一个安全的网络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签名生成中包括 “请求时间戳”?

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容