Authentication vs. Authorization認證 vs. 授權
來自http://www.oit.duke.edu/~rob/kerberos/authvauth.html
認證和授權機制很容易讓人混淆。在許多基於主機的系統中(甚至在一些C/S系統裡),這兩種機制由同樣的物理硬體執行,而且在有些情況下,是用同樣的軟體執行。
提取出這兩種機制之間的分別是相當重要的。然而,既然他們可以(或應該)可以運行在不同的系統裡,又怎樣區別這兩種機制呢。
認證是系統藉以能安全地鑒別系統中使用者的機制。
認證系統為以下問題提供了答案:
l 使用者是誰
l 這個使用者真的是他/她所代表的使用者嗎。
認證系統可能和純文字的密碼系統(可以參照一些較老的基於PC的FTP伺服器)一樣簡單,也可以和在別處一些文檔中描述的Kerberos系統一樣複雜。然而,在任何情況下,認證系統取決於某一獨特的只被被證實的個體和認證系統已知(或可利用)的資訊―一個共用的秘密。這樣的資訊可能是一個規範的密碼,個體的一些物理屬性(指紋,視網膜血管分別模式等),或一些衍生的資料(就像所謂的smartcard系統的情況)。為了驗證使用者的身份,認證系統通常要求使用者提供他的獨一無二的資訊(密碼,指紋等)。如果認證系統可以驗證到共用的秘密被正確地展示了,使用者就被認為是認證通過了。
與此相反,授權就是系統確定一名特殊的且已認證的使用者應該對系統保護的資源有什麼層級的存取權限的機制。例如,一個資料庫管理系統可能被設計來提供一些指定的人有從資料庫取出資料的能力卻又沒有修改資料庫中資料的能力,但給與其他的人有更改資料的能力。認證系統提供以下問題的答案:
l 使用者X被授權訪問資源R嗎。
l 使用者X被授權執行操作P嗎。
l 使用者X被授權在資源R上執行操作P。
認證和授權是有些強耦合的機制――授權系統取決於安全的認證系統來確保使用者是他們聲明的使用者並且防止未授權的使用者訪問被保護的資源。
下圖1,圖形化的描述了在任意的認證和授權系統之間的互動,而且它也是一個典型的C/S應用程式。
上圖中,工作在用戶端系統的使用者和認證系統互動以證明他的身份,然後和伺服器系統展開對話。伺服器系統依次和授權系統互動以確定用戶端的使用者應該被授予什麼樣的許可權。