Authentication vs Authorization

瞭解「驗證」和「授權」的差別

前言

驗證(Authentication)與授權(Authorization)是存取控制中兩個常被混淆的概念,背後分別代表兩種問題:你是誰?你被允許做哪些事?同時也將介紹幾種常見的授權模式,例如 RBAC 與 ABAC 管理授權。

飯店背後的驗證與授權

飯店服務飯店系統櫃台人員飯店客人飯店服務飯店系統櫃台人員飯店客人出示身份證明驗證身份 + 訂房資訊驗證成功發放鑰匙(依照身份等級)使用鑰匙啟用服務驗證鑰匙授權範圍

抵達飯店後,櫃台人員要求出示證件以便「驗證」訂房資料與身份,驗證成功後拿到飯店鑰匙,鑰匙可以訪問飯店各種服務,這把鑰匙「授權」飯店客人使用飯店的服務,VIP 鑰匙、員工鑰匙、普通客人鑰匙……不同鑰匙有各自的授權範圍。

授權的模式

權限管理其實一般人就有機會接觸到,像是社群媒體設定中的「誰能看我的文章?」就是一種授權的體現。有許多現成模式可用於管理權限,而不同模式有各自的優劣,甚至能夠混合使用。

基於屬性的存取控制 Attribute-Based Access Control

ABAC 適合細緻靈活的權限控制,高度的靈活性、細粒度和動態性,能有效應對複雜的訪問控制需求。

Joe

Eric

Mary

Hank

Alice

客房

健身房

豪華休息室

倉儲區

後台管理系統

基於角色的存取控制 Roles-Based Access Control

RBAC 簡化權限管理、增強可管理性、提供靈活的權限分配以及支持動態權限管理。

Joe

Guest

Eric

Mary

VIPGuest

Hank

Staff

Alice

Admin

客房

健身房

豪華休息室

倉儲區

後台管理系統

總結

  • Authentication 驗證:確認使用者身分。
  • Authorization 授權:確認使用者有權訪問什麼內容。
  • Authorization Scope 授權範圍:使用者可存取的資源或可執行的操作範圍。
  • Access token 存取權杖:存取資源的通行證。

延伸閱讀