skip to content
5kwords

authentication和authorization

/ 5 min read

Table of Contents

这两个词在计算机科学、网络安全和日常生活中经常一起出现,但它们的含义有着本质的区别。 简单来说:

  • Authentication (认证 / 鉴权):验证 “你是谁” (Who you are)。
  • Authorization (授权):验证 “你能做什么” (What you can do)。

1. Authentication (认证)

核心含义:确认一个用户的身份是否真实。它是进门的过程。
  • 关注点: 身份验证。
  • 常用手段:
    • 密码 (Password): 只有你知道的东西。
    • 生物特征 (Biometrics): 指纹、人脸、虹膜(你是谁)。
    • 硬件令牌 (Token): U 盾、动态口令卡(你拥有的东西)。
  • 典型场景:
    • 输入用户名和密码登录微信。
    • 用指纹解锁手机。
    • 出示护照过海关。
中文翻译: 认证、身份验证。

2. Authorization (授权)

核心含义:在确认身份后,系统决定该用户拥有什么权限。它是分配钥匙的过程。
  • 关注点: 权限控制 (Access Control)。
  • 常用机制:
    • RBAC (Role-Based Access Control): 基于角色的访问控制(如:管理员 vs 普通用户)。
    • ACL (Access Control List): 访问控制列表(如:只读、可写、可执行)。
  • 典型场景:
    • 你登录了公司 OA 系统,但你无法查看老板的工资单(权限不足)。
    • 你在论坛上只能发帖,不能删帖(普通用户权限)。
    • Windows 系统提示 “你当前无权修改该文件,请以管理员身份运行”。
中文翻译: 授权、权限管理。

3. 经典比喻:夜总会 (The Nightclub Analogy)

这是理解这两个概念最经典的例子:

Authentication (门口保安):

你走到门口,保安让你出示身份证。他核对你的照片和本人是否一致。

  • 目的:确认你是你,且年满 18 岁。
  • 结果:保安让你进门了。
Authorization (VIP 区域):

你进了门,想进里面的VIP 包厢。门口的服务员拦住你,因为你只有普通门票,没有 VIP 手环。

  • 目的:确认你是否有资格进入特定区域。
  • 结果:你被拒之门外,只能在大厅跳舞。

4. 计算机 / API 开发中的流程

在软件开发(特别是 REST API)中,流程通常是这样的:

  1. Request (请求): 客户端发送请求,带上 username 和 password。
  2. Authentication (认证): 服务器检查数据库,发现确实有这个用户,且密码正确。
    • 通过后,服务器通常会颁发一个 Token (令牌) 给客户端。
  3. Authorization (授权): 客户端带着 Token 请求删除一篇文章。服务器解析 Token,发现该用户只是文章的读者,不是作者,也不是管理员。
    • 服务器返回 403 Forbidden (禁止访问)。

5. 对比总结表

维度Authentication (认证)Authorization (授权)
核心问题Who are you? (你是谁?)What can you do? (你能做什么?)
发生时间流程的第一步认证成功之后
决定因素凭证 (Credentials)策略 (Policies/Roles)
失败后果401 Unauthorized (未认证 / 未登录)403 Forbidden (禁止访问 / 无权限)
反义词Anonymity (匿名)Restriction (限制)

一句话记忆法:

  • Authentication 是安检(确认你没带炸弹,让你上飞机);
  • Authorization 是登机牌(确认你是经济舱,不能去头等舱)。