2011-09-28 139 views
7

我試圖理解在您的項目中實現OpenID的概念和好處。而且,由於我是Java開發人員,因此我對理解其主要Java實現openid4java或多或少都有同樣的興趣。Java的OpenID體系結構

我的理解是,OpenID是以統一的方式配置分散ID的標準。現在,如果這完全(或者甚至稍微)不正確,請糾正我!

假設我仍然處於正軌,我看到各種類型或組織都在使用OpenID,例如MySpace,他們通過匹配http://www.myspace.com/username的URL標識每個用戶。

那麼OpenID如何作爲一個系統工作?它是否僅僅表現爲「OpenID服務器」的網絡,像DNS機器一樣,協調並確保其系統中的所有ID都是唯一的並且匹配某種模式?或者,它僅僅是一種算法,像GUID一樣爲每個客戶端域(如MySpace)生成全局唯一的ID。

我只是不理解OpenID如何實際表現自己,以及像openid4java這樣的框架如何與該「表現」相互作用。 (他們的用途是什麼)。

回答

3

首先,OpenID通信有兩個方面 - 提供者和消費者。消費者是嘗試使用OpenID進行身份驗證的應用程序,提供程序是身份驗證請求發送到的服務器。

每個提供者都有一個所謂的Endpoint - 接受認證請求的url。在支持OpenID提供程序時,您應該提前知道該URL。首先,您必須發現給定openId的端點是什麼,然後與該提供者交換消息。這全部包裝在openid4java ConsumerManager中。

然後發生身份驗證 - 您將用戶重定向到提供者網址,用戶確認他想用他的帳戶登錄(應該登錄),然後提供者重定向回您,然後您可以獲得請求有關用戶的信息(通過另一個請求)

+0

謝謝@Bozho!那麼像openid4java這樣的類似OpenSSO這樣的SSO框架如何工作呢?那裏的「分工」是什麼? – IAmYourFaja

+0

說實話 - 我不知道:) – Bozho

+0

找到[this](http://www.alleged.org.uk/pdc/2007/08/13.html)文章,這對於開發者來說可能是有意義的已經有了SSO和/或OpenID的經驗。對我來說,它並沒有形成一大堆意義,但我將其另存爲另一項研究工作;-)〜再次感謝您的回答 – IAmYourFaja