认证
**认证(Identification)**是指根据声明者所特有的识别信息,确认声明者的身份。你需要用身份证证明你自己是你自己。比如我们常见的认证技术:身份证、用户名和密码、用户手机:手机短信、手机二维码扫描、手势密码、电子邮箱、指纹、语音、眼睛虹膜、大数据识别等等
授权
授权(Authorization)在信息安全领域是指资源所有者委派执行者,赋予执行者指定范围的资源操作权限,以便对资源的相关操作。
-
现实生活领域:银行卡(由银行派发)、门禁卡(由物业管理处派发)、钥匙(由房东派发),这些都是现实生活中授权的实现方式。
-
互联网领域: Web 服务器的 Session 机制、Web 浏览器的 Cookie 机制、颁发授权令牌(Token)等都是一个授权的机制。
鉴权
鉴权(Authentication)在信息安全领域是指对于一个声明者所声明的身份权利,对其所声明的真实性进行鉴别确认的过程。若从授权出发,则会更加容易理解鉴权。授权和鉴权是两个上下游相匹配的关系:先授权,后鉴权。
-
现实生活领域: 门禁卡需要通过门禁卡识别器,银行卡需要通过银行卡识别器;
-
互联网领域: 校验 Session / Cookie / Token 的合法性和有效性
鉴权是一个承上启下的一个环节,上游它接受授权的输出,校验其真实性后,然后获取权限(Permission),这个将会为下一步的权限控制做好准备。
权限控制
权限控制(Access/Permission Control) 将可执行的操作定义为权限列表,然后判断操作是否允许/禁止。对于权限控制,可以分为两部分进行理解:一个是权限,另一个是控制。权限是抽象的逻辑概念,而控制是具体的实现方式。
-
现实生活领域: 以门禁卡的权限实现为例,一个门禁卡,拥有开公司所有的门的权限;一个门禁卡,拥有管理员角色的权限,因而可以开公司所有的门。
-
互联网领域: 通过 Web 后端服务,来控制接口访问,允许或拒绝访问请求。
认证、授权、鉴权和权限控制的关系?
认证、授权、鉴权和权限控制,这四个环节是一个前后依次发生、上下游的关系;需要说明的是,这四个环节在有些时候会同时发生。 例如在下面的几个场景:
-
使用门禁卡开门: 认证、授权、鉴权、权限控制四个环节一气呵成,在瞬间同时发生。
-
用户的网站登录: 用户在使用用户名和密码进行登录时,认证和授权两个环节一同完成,而鉴权和权限控制则发生在后续的请求访问中,比如在选购物品或支付时。