目录: 一、无处不在的鉴权 1. 现实生活中的身份鉴权方法 2. 简单的密码鉴权体系 二、鉴权优化 1. 频繁的鉴权场景下的优化方案 2. 第三方鉴权体现下的设计——oAuth 2.0鉴权体系 三、说了这么多广而全的鉴权方式,我们看看小程序开发中的鉴权是如何实现的 1. 小程序服务端接口的鉴权方式 2. 简化版的 OAuth 2.0 3. 鉴权是否可以优化 四、云调用免鉴权体系 五、未来鉴权畅想
互联网的应用,大大小小,不同场景,都离不开鉴权,从简单的可被用户感知的登陆鉴权,到技术侧不被感知的各种技术参数鉴权,都有着形形色色的鉴权方式和表现形式。 那么,什么是鉴权? 其实,从本质上来讲,鉴权就是要证明你就是你,你可以做哪些事情。
鉴权分为两部分,一部分是鉴别身份,一部分是确定权力。 而现代网络设计中,权力的分配一般都是预先分配好的,在鉴别身份之后,拿着身份信息,去权限中心确定权力范围。这样就完成了用户的鉴权过程。
一、无处不在的鉴权1.现实生活中的身份鉴权方法
云调用,小程序鉴权正确姿势
身份证 是现代社会用于鉴别身份的一种方式。
说起身份证, 据相关史实考证,我国的身份证最早出现在战国时期,商鞅在秦国变法,发明了「照身帖」。照身帖由官府发放,是一块打磨光滑细密的竹板,上面刻着持有人的头像和籍贯信息。国人必须持有, 如若没有,就被认为是黑户或者间谍之类。这可能是身份证的雏形。
在隋唐时期,我国出现了最早的“身份证”,当时的朝廷发给官员一种类似身份证的“鱼符”,是用木头或者金属所作,形状像鱼,分左右两片,上有小孔,并可有官员姓名、任职衙门、官员品级等。那时,凡亲王、三品以上官员“鱼符”用黄金制作;五品以上用白银;六品以下为铜制。五品以上官员,还备有存放鱼符的专用袋子,称为“鱼袋”。
从秦朝到清朝的这个阶段,出现的这些身份标识,尽管形式多样,但总体来说,都是属于「身份证明」这一范畴。然而,这样的「身份证」在核验其身份的真实性方面,只能凭眼看,造假很容易蒙混过关,没有人能真正证明其真实性。这种核验身份方法是最初级最原始的方法,是现代身份证雏形的阶段。
而身份证这种鉴权方式犹如密码鉴权一样,属于一种 令牌鉴权方式。 令牌要么被私有不公开,要么很难伪造。
同样,在武侠小说中的令牌,也是如此。最近热播的「倚天屠龙记」中,明教的「圣火令」—— 见之如见教主。「圣火令」就是令牌的一种方式,是一种固定的密钥鉴权方式。
2.简单的密码鉴权体系
云调用,小程序鉴权正确姿势
『我这有一把锁,我把钥匙发给你,你使用资源的时候过来开锁使用就好了。』可以形象的比喻现代互联网中使用的密码鉴权体系。资源管理者只信任密码凭证,无论谁持有了密码,都可以使用对应的权利资源。比如,不管谁持有圣火令,都可以使用明教教主的权利资源。 密钥鉴权体系的特点: 1.简单 2.密码成本,不公开或伪造有门槛
二、鉴权优化
1.频繁的鉴权场景下的优化方案
想象一种场景,持有圣火令的教主,每次施号发令,都要将圣火令从自己藏的密道中取出来才能发令。那么,如果自己心爱的人正在被屠杀,取个圣火令回来可能人就没了,所以,这里应该是有一个简单的方式来优化这一过程。
互联网密码鉴权体系中,常常在通过身份验证后,将通过认证的信息保持一段时间,同样,实际武侠江湖中,大家都是有记忆的,圣火令持有者亮出圣火令的一段时间后,看到的人就能记下他已经是圣火令的持有者了,下次发号施令,就不必取来圣火令了。
在web认证体系下,http协议是一种无状态的协议,用户通过输入密码后获得身份认证,这种状态是无法保持下来的,为了保持这种状态,客户端和服务端可以一起想办法把鉴权状态保留一段时间。比如,客户端可以记下用户的密码,下次只需要把密码自动带入到服务端即可。但这种方式是极为不安全的,客户端和传输端的可能泄漏密码。为了避免这种风险的发生,客户端和服务端通过其他的约定来保持这种状态,比如,通过一种临时密码来降低这种风险发生的危害,这种临时规则可以是session + cookie,也可以是token等等。
2.第三方鉴权体现下的设计——oAuth 2.0鉴权体系密码鉴权体系一般都是发生在两方之间的鉴权方案。但是回归到武侠世界中,如果一个人拿了伪造的圣火令来发号施令,那岂不是对明教的危害很大?怎么解决这个问题?这就需要一个可以被信任的人,能够先甄别圣火令的真假,然后其他的人信任这个人,最终完成身份的验证。
所以这就引入了一个可信任的第三方代为鉴别令牌的,然后告知鉴别结果。比如,第三方登录场景下, 平台需要第三方平台代为身份验证后告知平台此人的身份是什么。这就是我们常见到的oAuth鉴权,现在被广泛应用再第三方登陆平台中,比如微信登陆、QQ登陆等等。
|