天天看點

權限認證之OpenID-OP/RP

OP【OpenID Provider】: OpenID提供者,提供對使用者鑒權功能

RP【Relying Party】: 依賴方,直接服務提供者,需要信任OP鑒權的結果

UA【User Agent】:終端使用者,想使用RP服務的使用者

OpenID規範文檔中的介紹:

  OpenID 認證提供了一種方式,可以讓使用者證明自己對某個 Identifier 擁有控制權。 它不需要 Relying Party 去通路使用者的憑據比如密碼或者其他的敏感資訊比如電子郵件位址等。 

  OpenID 是分散的。不需要一個中央官方機構準許或注冊 Relying Parties 或 OpenID Providers。 最終使用者可以自由地選擇使用哪個 OpenID Provider,并能在他們更換 OpenID Providers 時維護自己的 Identifier。 

  OpenID 認證僅僅使用标準的 HTTP(S) 請求和響應, 是以它不需要 User-Agent 具有特殊能力或者其他用戶端軟體。 OpenID 不和 cookies 的使用或者 Relying Party 的其他任何具體機制或 OpenID Provider 的會話管理挂鈎。 雖然使用該協定沒有必要擴充 User-Agents,但可以簡化使用者操作。 

  使用者資訊或者其他資訊的交換不包括在該規範中,在此協定上附加協定形成一個架構可解決此問題。 OpenID 認證的目的是提供一個基礎服務,使它能在自由和分散的方式下攜帶使用者數字辨別。

介紹中涉及到了很多名詞,比如Relying Parties,這些都代表什麼意思呢,下面就介紹下OpenID中最重要的三種角色:

三者間的關系就是:讓UA在OP登陸,并使用RP提供的服務;

UA和OP/RP互動的時序圖如下:

權限認證之OpenID-OP/RP

OP和RP在初次互動的過程中,需要建立一種關聯關系Association,這就涉及到安全性的問題,OpenID規範中指出,在Association會話建立過程中,采用了 Diffie-Hellman密鑰一緻協定 來保證會話的安全性,主要有"no-encryption"、"DH-SHA1"和"DH-SHA256"三種類型,注意第一種類型隻能在https傳輸協定下才能選擇;

而在雙方互相信任之後,則采用更為簡單和快速的HMAC-SHA算法來進行簽名,有"HMAC-SHA1"和"HMAC-SHA256"兩種選擇;需要注意的是在選擇兩類算法時兩者的長度需要保持一緻;

PS:OpenID認證2.0官方文檔位址:http://www.openid.net.cn/specs/openid-authentication-2_0-zh_CN.html

OpenID4JAVA:http://code.google.com/p/openid4java/

繼續閱讀