OpenID


OpenId是一個以用戶為中心的數字身份識別框架,它具有開放、分散、自由等特性。OpenId的創建是基於這樣一個概念:我們可以通過URI(或者URL網址)來識別一個網站。同樣,我們也可以通過這樣的方式來識別一個用戶的身份。OpenId系統的身份認證就是通過URI來認證用戶身份。目前絕大部分網站都是通過用戶名與密碼來登錄認證用戶身份,這就要求大家在每個你要使用的網站上注冊一個帳號。如果使用OpenId,你可以在一個提供OpenId的網站上注冊一個OpenId,以后你可以使用這個OpenId去登錄支持OpenId的網站。這正是一處注冊,到處使用的體現。

登錄一個支持 OpenID 的網站非常簡單(即便你是第一次訪問這個網站也是一樣)。只需要輸入你注冊好的 OpenID 用戶名,然后你登錄的網站會跳轉到你的 OpenID 服務網站,在你的 OpenID 服務網站輸入密碼(或者其它需要填寫的信息)驗證通過后,你會回到登錄的網站並且已經成功登錄。 OpenID 系統可以應用於所有需要身份驗證的地方,既可以應用於單點登錄系統,也可以用於共享敏感數據時的身份認證。

除了一處注冊到處通行以外,OpenID 給所有支持 OpenID 的網站帶來了價值--共享用戶資源。用戶可以清楚的控制哪些信息可以被共享,例如姓名、地址、電話號碼等。今天,OpenID 作為以用戶為中心的身份驗證系統已經為數百萬的用戶提供了服務。

二、OpenID相關術語

  • End User:終端用戶,使用OP與RP的服務
  • Relying Party依賴方:簡稱RP,服務提供者,需要OP鑒權終端用戶的身份
  • OpenID Provider:OpenID提供者,簡稱OP,對用戶身份鑒權
  • Identifier標識符:標識符可以是一個HTTP、HTTPS或者XRI(可擴展的資源標識)
  • User-Agent:實現了HTTP1.1協議的用戶瀏覽器
  • OP Endpoint URL:OP鑒權的URL,提供給RP使用
  • OP Identifier:OP提供給終端用戶的一個URI或者XRI,RP根據OP Identifier來解析出OP Endpoint URL與OP Version
  • User-Supplied Identifier:終端用戶使用的ID,可能是OP提供的OpenID,也可以是在RP注冊的ID。RP可以根據User-Supplied Identifier來解析出OP Endpoint URL、OP Version與OP_Local Identifer
  • Claimed Identifier:終端用戶聲明自己身份的一個標志,可以是一個URI或者XRI
  • OP-Local Identifier:OP提供的局部ID

三、OpenID驗證流程

  1. 終端用戶請求登錄RP網站,用戶選擇了以OpenID方式來登錄
  2. RP將OpenId的登錄界面返回給終端用戶
  3. 終端用戶以OpenID登陸RP網站
  4. RP網站對用戶的OpenID進行標准化,此過程非常負責。由於OpenID可能是URI,也可能是XRI,所以標准化方式各不相同。具體標准化過程是:如果OpenID以xri://、xri://$ip或者xri://$dns開頭,先去掉這些符號;然后對如下的字符串進行判斷,如果第一個字符是=、@、+、$、!,則視為標准的XRI,否則視為HTTP URL(若沒有http,為其增加http://)。
  5. RP發現OP,如果OpenId是XRI,就采用XRI解析,如果是URL,則用Yadis協議解析,若Yadis解析失敗,則用Http發現。
  6. RP跟OP建立一個關聯。兩者之間可以建立一個安全通道,用於傳輸信息並降低交互次數。
  7. OP處理RP的關聯請求
  8. RP請求OP對用戶身份進行鑒權
  9. OP對用戶鑒權,請求用戶進行登錄認證
  10. 用戶登錄OP
  11. OP將鑒權結果返回給RP
  12. RP對OP的結果進行分析


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM