认证 (authentication) 和授权 (authorization) 的区别

以前一直分不清 authentication 和 authorization,其实很简单,举个例子来说:

你要登机,你需要出示你的 passport 和 ticket,passport 是为了证明你张三确实是你张三,这就是 authentication;而机票是为了证明你张三确实买了票可以上飞机,这就是 authorization。

 

在 computer science 领域再举个例子:

你要登陆论坛,输入用户名张三,密码1234,密码正确,证明你张三确实是张三,这就是 authentication;再一check用户张三是个版主,所以有权限加精删别人帖,这就是 authorization。

----------------------------------------------------------------------------------------------------------

>>分割线

----------------------------------------------------------------------------------------------------------


Authentication 鑒別

判斷使用者是不是他所宣稱的那個人,
如帳號密碼機制,是基於帳號密碼為只有本人跟系統本身才知道的 shared secret,所以只要可以正確輸入密碼,系統就可判斷使用者為這個帳號所代表的人物。
主要回答這些問題: 
  • Who is the user?
  • Is the user really who he/she represents himself to be?
Authorization 授權
判斷當前使用者所擁有對系統資源存取的權限(等級),例如會員登入後擁有讀寫資源的權力,而訪客只有讀的權力。
主要回答這些問題: 
  • Is user X authorized to access resource R?
  • Is user X authorized to perform operation P?
  • Is user X authorized to perform operation P on resource R?
Identification 識別
判斷使用者是誰,Identification必須是獨一無二的,才能正確的分辨出每個人。

主要回答這些問題: 
  • Who is the user?

上面三者的關係:
系統要知道某個使用者對系統資源的存取權力,包含三個部分
  1. 使用者告訴系統他是誰(Identification 機制)。
    • 例:輸入ID
  2. 系統判斷使用者是否真的是他宣稱的那個人(Authentication 機制)
    • 例:輸入Password
  3. 系統根據該帳號所擁有的權限驗証該使用者(Auorization 機制)
    • 例:系統判斷該使用者為會員,給予讀及寫的權利

----------------------------------------------------------------------------------------------------------

>>分割线

----------------------------------------------------------------------------------------------------------

理解OAuth 2.0

你可能感兴趣的:(综合)