身份验证与授权
我决定写这篇小文章,因为我经常混淆 AUTHeNtication 和 AUTHoriZyr ation,并希望帮助其他遇到困难的人更清楚地理解它们。
身份验证和授权是两个相关的词,经常互换使用,但含义不同,并且在系统中具有不同的功能。
身份验证(Auth-N)
身份验证是验证用户是否是他们所声称的身份的行为。
可以通过使用诸如钥匙卡之类的物理手段、让用户使用密码或 2FA 登录、使用验证码测试,甚至对用户进行生物识别来实现真实性的验证。
身份验证通常与授权结合使用,因为在授权之前验证用户的身份非常重要。
授权(Auth-Z)
授权是授予用户访问特定资源或功能的权限的过程。
授权级别是普通用户和管理员用户之间的区别。管理员用户拥有比普通用户更多的权限,因此,正确授权权限至关重要,以确保普通用户不会意外或故意破坏系统。
请记住,获得授权并非 100% 需要身份验证。这取决于系统本身以及系统拥有的信息/能力,以及是否需要不同级别的授权,以及在何处需要身份验证。
想象一下一个博客平台……
-每个人都应该有权阅读公开帖子。-
用户需要验证身份才能发布博客,而不是以他人身份发布。-
管理员在验证身份后,需要获得不同级别的授权才能监控平台、相关数据库及其用户活动。
在这种情况下,授权之前需要进行身份验证,以确保用户无法以其他用户身份发布博客,并且用户无法像管理员一样修改内容。
参考
- 安全+证书簿
- Web应用程序黑客手册
- https://auth0.com/docs/authorization/concepts/authz-and-authn
- https://www.ssl2buy.com/wiki/authentication-vs-authorization-whats-the-difference