如何设计API产品的认证部分?

访客4年前黑客资讯896

API产品的认证部分应该如何设计?本文结合作者自己的工作实践经历,对身份验证、对称签名身份验证、非对称加密的签名认证三种方式进行了分析,与大家分享。

如何设计API产品的认证部分?

做平台产品,绕不开API。当然API也需要伴侣,就是SDK。SDK可以把API的多次交互封装起来,让用户(开发者)只需要调用一个 *** ,就能完成一个需要多次调用API的业务。

在使用API的时候,它必须知道是谁来使用这个API,这就需要身份认证。最常见的身份认证,是通过账户密码登陆网站。不过现在这种操作越来越少了,现在主流的登陆方式,要么是手机验证码登陆,要么是微信扫码登陆,要么是调用其他账号的登陆。

先来看看传统登陆方式,数据库存放用户名和密码。

如何设计API产品的认证部分?

假设,用户名为tom,密码为123456。则用户登陆时,把tom和123456 POST到服务器。服务器去数据库里一找,发现有tom,密码也确实是123456,那么就登陆成功,也就是完成了身份认证。

这是典型的明文账户系统。它更大的缺点,是不安全。一旦数据库泄露,就知道了用户的密码,这个时候,就可以去撞库(用tom的密码123456去登陆tom在别的网站的账号)。

有时候,明文保存密码是黑客特意设置的,黑客设置一个网站吸引别人用邮箱去注册,明文保存了用户的密码。

为了安全起见,数据库采用加密的方式保存密码,而且一定是单项的,只能加密,不能解密。

如何设计API产品的认证部分?

如上图所示,这是经过md5处理的密码。当用户登陆的时候,发送用户名和经过md5处理的密码,后台去数据库里查询,查询到了说明登陆成功,否则就是登陆失败。

这样的好处是,黑客嗅探出了你的密码,也仅仅能登陆你登陆的这个网站,他不能还原出你加密前的明文,也就无法去撞库。即便网站数据库泄露了,也很难知道你真正的密码。

但是,现在有一些md5搜集器,搜集了很多明文密码,并使用md5加密后存在数据库里。

如何设计API产品的认证部分?

这样,如果你的密码是常规的密码,则很容易被逆向(查询)出来。比如:

如何设计API产品的认证部分?

它很容易就能查出你的原始密码,它仅仅是查询,而不是破解。因为有大量的常规的普遍的密码和加密后的md5被存进去。

如果想进一步安全,怎么办?办法也是有的,那就是使用公私钥的方式。

如何设计API产品的认证部分?

用户登陆,系统产生一个随机数,发送给用户。用户需要使用私钥对这个随机数进行签名,发给系统。系统用公钥验签,完成身份认证。

虽然这种 *** 安全,但是认证时间长,对服务器造成的压力也很大。在做产品设计的时候,成本因素也是一个必须考虑的问题,包括时间成本,服务器算力成本等。

这需要产品经理根据应用场景及安全级别去评估,取舍。而不是一味的选择更安全的系统。

刚才提到的是用户身份验证。而API中,更多的操作,是针对某个产品的权限的。

如何设计API产品的认证部分?

如上图所示,一个用户可以创建多个项目,每个项目都有一个key。我们假设,应用1用的是简单身份验证,应用1的key是一个具备一定长度的字符串。任何人只要知道这个字符串,就可以对其进行操作。

应用2比应用1安全一些,采用的是keyID+keySecret的方式,也就是hmac-sha256签名机制。它会用密钥对keyID、调用的API、参数、时间等进行签名,因为服务器也有一个相同的keySecret,可以用来验证签名,以确定身份。

应用3就是更安全的,它有keyID和keyPubkey,即公钥。调用的时候,使用私钥对API、 *** 、参数、时间等进行签名,服务器使用私钥对应的公钥对签名进行验签,但时间会长一些。

如何设计API产品的认证部分?

总结一下, 通常API身份验证有两种:简单身份验证,和签名身份验证。下面举例子,说明哪些领域使用哪些身份验证 *** 。

相关文章

校园社交app竞品分析报告

校园社交app竞品分析报告

导语:leone最近体验了一款新出产物——同学库,这是一款处事于全国大学生的校园社交平台,致力于为学生提供校园糊口、社交、进修等处事。在校园社交产物屡遭失败的环境下,他的表示如何呢?让我们一起来感觉一...

15个问题,带你了解直播带货的真相

15个问题,带你了解直播带货的真相

文章梳理总结了关于直播与短视频、卖货与营销的15个问题,包罗影响销售转化率的焦点因素、直播卖货和短视频卖货等方法最大的区别以投放计策等等。 疫情以来,无数企业产生了天翻地覆的变革,最抢眼的就是借助直...

掌握“弹窗”设计规范,打造优质用户体验

掌握“弹窗”设计规范,打造优质用户体验

弹框,一个让设计师和用户又爱又恨的控件。产品需要弹框传递信息,用户需要弹框接受反馈。但如果不经推敲,胡乱增添弹框设计,用户心流(Mental flow)频频被打断,很容易让用户产生沮丧情绪。我们在日常...

那就给用户来一次触及灵魂的调研吧!

那就给用户来一次触及灵魂的调研吧!

用户调研是个精采的初步,有效捕获种子用户的需求;它也是个漫长的进程,可以助力平台成长任何一个经得起用户检验的事件;同样它更是个功效,可以验证进程中搭建的运营模子。 用户调研对付任何一款互联网平台都是...

黑科技卖货来了,美妆AI能抢李佳琦的饭碗吗?

黑科技卖货来了,美妆AI能抢李佳琦的饭碗吗?

近期,美妆巨头推出了智能检测皮肤的 AI 测试仪,并希望为消费者提供辅助决策的效果,推动更好地卖货。但是黑科技卖货真的有效吗?消费者会买单吗? “OMG!这也太好看了吧!买它!” 堪称九亿少女钱包的...

在线职业教育缓解“宅”家焦虑,用户体验与服务闭环是发展关键

在线职业教育缓解“宅”家焦虑,用户体验与服务闭环是发展关键

新型冠状病毒肺炎疫情爆发至今,全国线下教育机构均受到冲击,各大院校以及企业普遍适当延迟复课、复工时间,多场公职类考试发布相关推迟通知。在此背景下,高校学生以及社会人员的职业教育培训需求规模性地转移至...