认证与授权Authentication and Authorization)是一组经常连用但边界不同的概念:认证确认“你是谁”,授权决定“你能做什么”。

核心问题

登录系统如果混淆认证和授权,就容易出现两类错误:把“登录成功”误当成“有所有权限”,或把复杂业务权限塞进 IdP 导致平台无法表达自己的规则。清晰边界能让 IdP 管认证,业务系统管授权。

核心机制

概念英文问题常见输入常见输出
认证Authentication / AuthN你真的是这个主体吗密码、MFA、证书、OIDC 登录结果主体 ID,例如 sub
授权Authorization / AuthZ这个主体能执行该动作吗主体、资源、动作、上下文、策略allow / deny

平台后台中的流程通常是:

认证:验证 ID Token -> 得到 subject
准入:subject 是否允许进入平台
授权:subject 对 resource/action 是否有权限
审计:记录谁在何时做了什么

这里第一步可以交给 OIDC IdP,后两步通常是平台业务逻辑。因为“能否删除设备”“能否审批用户”“能否查看某租户数据”依赖平台的数据模型。

工程用途

  • 设计登录和权限边界。
  • 审计安全事件时区分登录失败、准入失败和权限拒绝。
  • 为管理后台设计 RBAC、审批流和租户隔离。
  • 将企业 SSO 与本地业务权限解耦。

边界与常见坑

  • 认证成功不代表授权通过:登录用户可能没有任何后台权限。
  • 授权失败不一定是登录问题:可能是角色、租户、资源状态或审批状态不满足。
  • IdP group claim 不等于业务角色:可以映射,但映射规则必须显式、可审计。
  • 安全日志要分层:IdP 记录登录方式,平台记录资源访问和权限判定。

相关术语