如何为你的网站设计一个安全的web API访问?
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
当我们向用户开放web API访问时,我们需要确保每个API调用都是经过身份验证的,这意味着用户必须是他们声称的那个人。
在这篇文章中,我们将探讨两种常见的方法:
1、基于Token(令牌)的身份验证
2、基于HMAC(哈希消息认证码)的身份验证
下面的图表说明了它们的工作原理:
1、基于Token(令牌):
第1步:用户向客户端输入密码,客户端将密码发送给认证服务器。
第2步:身份验证服务器验证凭据并生成一个有过期时间的令牌。
第3步和第4步:现在客户端可以发送请求来访问HTTP头中的令牌服务器资源,此访问在令牌过期前有效。
2、基于HMAC(哈希消息认证码):
该机制通过哈希函数(SHA256或MD5)生成消息认证码(签名)。
步骤1和步骤2:服务器生成两个密钥,一个是Public APP ID(公钥),另一个是API key(私钥)。
步骤3:我们现在在客户端生成一个HMAC签名(HMAC a),这个签名是用图表中列出的一组属性生成的。
步骤4:客户端使用HTTP头中的hmac A发送访问服务器资源的请求。
步骤5:服务器接收包含请求数据和认证头的请求,它从请求中提取必要的属性,并使用存储在服务器端的API密钥来生成签名(hmac b)。
步骤6和7:服务器端比较hmac A(在客户端生成)和hmac B(在服务器端生成),如果匹配,则将请求的资源返回给客户端。
问题思考:
HMAC认证如何确保数据完整性?
为什么我们在HMAC签名生成中包含“请求时间戳”? 该文章在 2022/8/10 12:40:35 编辑过 |
关键字查询
相关文章
正在查询... |