聊聊數字身份的認證與授權,三種主流身份認證協議入門指南

買賣虛擬貨幣

無論是PC客戶端還是移動端,第三方應用賬戶登入已經成為了標配,特別是在網路賬戶相互打通的前提下,不同平臺對身份已經做到了互認。第三方賬戶在登入時,既要限制使用者身份,只讓有效註冊的使用者才能登入,也要根據註冊使用者的不同身份來控制能瀏覽的內容,這就需要認證和授權。

如今,區塊鏈的出現,為去中心化數字身份提供了又一種全新的技術路徑。面對如此之多的身份認證技術,我們需要重新審視當前技術的優勢與不足,從而為區塊鏈數字身份的發展提供更多有價值的參考。

什麼是認證、授權、單點登入?

認證(Authenticate)和授權(Authorize),是兩個容易混淆的概念。認證過程是證實某個使用者是他所宣告的那個人;授權則要決定一個身份是否能夠訪問網站資源。由此可見,應用需要先認證使用者身份,然後依據使用者身份進行授權,二者需要聯合使用。

對於微信這樣的應用,使用者在登入後會得到該賬戶的身份憑證。如果其他第三方應用信任並接受微信的身份憑證,就可以直接使用該憑證透過第三方的認證而登入。至於登陸之後使用者能有許可權去做什麼,則是要第三方應用根據自己的政策進行授權。有些網站在第一次使用微信賬戶登入時,需要繫結已用賬戶,就是因為雖然網站能夠透過微信賬戶的身份認證,但是對於這樣的賬戶沒有對應的授權。


對於一個面向體系內部的服務環境,可能有郵箱系統、網上辦公系統、財務系統等。如果每個系統都是獨立的,那麼公司的員工就需要每一個系統都分配一個賬戶,這樣顯然是低效且麻煩的。

目前,通用解決方案是單點登入(Single Sign-On,簡稱SSO),使用者在內網中只需登入一次,就可以訪問所有相互信任的應用系統。單點登入和統一認證中主要的三個協議是OpenIDOAuthSAML,被稱為單點登入的“三駕馬車”。

OpenID:去中心化認證的第三方登入經典模式

談到單點登入和身份認證,就不得不談OpenID。最典型的使用例項就是使用Google賬戶登入其他應用,這一經典的協議模式,為其他廠商的第三方登入起到了標杆的作用,被廣泛參考和使用。

OpenID是一個去中心化的數字身份識別框架,屬於認證(Authentication)協議。OpenID的建立基於這樣一個概念:我們可以透過統一資源識別符號(Uob代為照顧她的房子,所以Alice把自己房子的鑰匙交給了Bob,而Bob也就可以任意進入房子。這裡的鑰匙就是一種授權的體現——Alice授權Bob進入房子。這其中,房子所有者Alice就是使用者,Bob是客戶端,而門鎖就是授權伺服器,房子是資源伺服器。

SAML:兼顧認證與授權的身份資訊共享通道

SAML協議(Security Assertion Markup Language,安全性斷言標記語言)是三者中時間最長的協議,最初版本制定於2001年,並於2005年修改。作為一種安全性斷言標記語言,SAML協議既可以用於認證也用於授權。

所謂的安全性斷言,就是關於認證、授權以及使用者屬性(比如使用者姓名、住址等資訊)的宣告集合,在SAML中,這些斷言以XML格式進行傳輸。SAML的主要功能是在不同的安全域之間提供身份認證和授權資訊交換,為使用者跨平臺進行身份認證和授權提供了方便,解決了多個系統共享認證、授權過程中的資訊傳遞問題。

當要驗證一個使用者身份時,服務提供商(Service Provider,簡稱SP)會向IdP發出SAML認證請求,該請求中會以XML格式說明認證方式的設定,比如希望IdP以何種方式驗證使用者。IdP在認證透過使用者身份之後,會返回SAML請求響應,同樣以XML格式返回斷言表明使用者身份和相關屬性,此外SAML安全性斷言資訊必須要使用數字簽名以保證其完整性和不可抵賴性。SP接收到SAML斷言之後,驗證其訊息來源是否費受信任的IdP,驗證透過之後解析XML獲得認證資訊。

當前的身份認證技術在為使用者提供便利服務的同時,其弊端也正在凸顯,比如隱私洩露、身份欺詐竊取、身份無法跨境互認等。但我們相信,技術的進步總是出人意料,區塊鏈的發展將為數字身份的發展注入更多活力,並有望推動其成為全球通用的可信基礎設施。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;