理解认证和授权

选和操作这些session(习

认证是Authentication,授权是Authorization。

认证的目的是为了认出用户是谁,而授权的目的是为了决定用户能够做什么

假设系统是一间屋子,持有钥匙的人可以开门进屋子,那么屋子里就是通过“锁和钥匙的匹配”来进行认证的,认证的过程就是开锁的过程。

钥匙在认证过程中,被称为“凭证”(credential),开门的过程,在互联网里对应的是登录(Login)。

可是开门之后,什么事能做什么事不能做就是“授权”的管辖范围了。

打个比方,如果进来的是屋子主人,那么他可以坐在沙发上看电视,也可以进到卧室睡觉,可以作任何他想做的事情,因为他具有屋子的“最高权限”。可如果进来的是客人,那么可能就仅仅被允许坐在沙发上看电视了,而不允许其进入卧室了。

现在问题来了,持有钥匙的人,真的就是主人吗?如果主人把钥匙弄丢了,或者有人造了把一模一样的钥匙,那也能把门打开,进入到屋子里。

这些异常情况,就是因为认证出现了问题,系统的安全直接受到了威胁,认证的手段是多样化的,其目的就是为了能够识别出正确的人。如何才能准确地判断一个人是谁呢?这是一个哲学问题,在被哲学家们搞清楚前,我们只能够依据人的不同“凭证”来确定一个人的身份。钥匙仅仅是一个很脆弱的凭证,其它诸如指纹、虹膜、人脸、声音等生物特征也能做为识别一个人的凭证。认证实际上就是一个验证凭证的过程。

如果只有一个凭证被用于认证,则称为“单因素认证”;如果有两个或多个凭证被用于认证,则称为“双因素(two factors)认证”或“多因素认证”,一般来说,多因素认证的强度要高于单因素认证,但是在用户体验上,多因素认证或多或少都会带来一些不方便的地方,就好比登录时需要输入验证码!


(完)