我们每人每天都在经历着来自于各个系统的身份识别,认证和授权,但是很多人混淆了这些词语的意思,常常在讨论”认证”时使用术语”身份识别”或者”授权”。
如果只是普通的日常对话,而且对话双方都明白对方的意思,这其实不是什么大问题。不过,弄清楚自己使用的词语的意思当然更好,否则你迟早会遇到较真的技术爱好者向你喋喋不休地澄清各个词语的区别。那么,这三个术语究竟是什么意思?有何区别呢?首先,让我们来咨询维基百科:
- “身份识别是识别人或者物身份的行为。”
- “认证是验证计算机系统用户身份的行为(例如,通过比较用户输入的密码和数据库中存储的密码)。”
- “授权是指定对资源的访问权限的行为。”
这样你就明白为什么有些人总是混淆它们的概念了吧……
通过浣熊的例子来进一步解释身份识别,认证和授权
为了方便理解,我们来举个例子,假设有一个用户试图登录谷歌账号,这是个很好的例子因为谷歌账号的登录流程可以完美拆分为几个基本步骤:
- 首先,系统询问用户名,用户输入了自己的用户名并且系统成功判断出该用户名存在于系统中,这一步是身份识别。
- 接着谷歌会让用户输入密码,如果输入的密码和系统中存储的密码匹配,系统将其视为真正的用户本人,这一步是认证。
- 在大多数情况下,谷歌还会询问短信或认证程序发送的一次性验证码,如果用户输入正确,那么系统会最终确认用户是账号的拥有者,这是双重认证。
- 最后,系统给予用户阅读收件箱消息等等权限,这一步是授权。
如果不提前进行身份识别,那么认证将毫无意义,因为系统无法在确定认证对象之前进行相关检查,因此用户必须首先亮明自己的身份信息。
同样,如果没有认证,那么身份识别也会变得十分滑稽,任何人都可以输入系统中存在的用户名,因此系统需要密码来完成登录流程。但是不法分子可以偷窃密码或者直接猜测,所以最好让用户输入只有账号拥有者才能获得的信息,比如一次性验证码。
与之相反, 授权却不一定需要身份识别或者认证,比如,你可以给予公众访问你的谷歌网盘的权限,之后你可能会看到”一只浣熊查看过你的网盘”的提示消息。即便这只浣熊是匿名用户,系统依然向其授权查看文档的权限。
如果你只将阅读权限授予特定用户,那么这只浣熊不得不经历身份识别,认证和授权三个步骤。
谷歌绝不会授权匿名浣熊阅读你的收件箱消息,因此浣熊必须输入你的用户名和密码,如果信息正确,谷歌便将它识别为你。
现在你知道了身份识别,认证和授权的区别所在。还有很重要的一点,认证也许是账号安全中最重要的一个步骤,如果你使用的是弱密码,浣熊有可能就会劫持你的账号。因此: