前言
验证(Authentication)与授权(Authorization)是访问控制中两个常被混淆的概念,分别代表两个问题:你是谁?你被允许做哪些事?同时也将介绍几种常见的授权模式,例如 RBAC 与 ABAC 管理授权。
饭店背后的验证与授权
抵达饭店后,柜台人员要求出示证件以便「验证」订房资料与身份,验证成功后拿到饭店钥匙,钥匙可以访问饭店各种服务,这把钥匙「授权」饭店客人使用饭店的服务,VIP 钥匙、员工钥匙、普通客人钥匙……不同钥匙有各自的授权范围。
授权的模式
权限管理其实一般人就有机会接触到,像是社群媒体设置中的「谁能看我的文章?」就是一种授权的体现。有许多现成模式可用于管理权限,而不同模式有各自的优劣,甚至能够混合使用。
基于属性的存取控制 Attribute-Based Access Control
ABAC 适合细致灵活的权限控制,高度的灵活性、细粒度和动态性,能有效应对复杂的访问控制需求。
基于角色的存取控制 Roles-Based Access Control
RBAC 简化权限管理、增强可管理性、提供灵活的权限分配以及支持动态权限管理。
总结
- Authentication 验证:确认用户身份。
- Authorization 授权:确认用户有权访问什么内容。
- Authorization Scope 授权范围:用户可存取的资源或可执行的操作范围。
- Access token 存取权杖:存取资源的通行证。
延伸阅读
- Learn about authentication and authorization - Google Workspace
- Role-based access control (RBAC) vs. Attribute-based access control (ABAC) - IBM Technology