我的雲端生活網 - Life+

Monday, September 22, 2008

OpenID,一套合作的協議

本來以為OpenID是讓用戶在網上有一個通用的識別項,但根據http://openid.net/等網頁的簡要說明,告知顯然我誤會了。顧名思義就是要open,一個登入行遍天下,不過,這「一個」登入似乎不是只登入一次的意思,而且一個「登入」也似乎不是一個帳號的意思。

規格書的認證部份,OpenID Authentication 2.0開宗名義指出:認證是證明用戶操作這個識別項。而識別項就延用網址URI形式,可說是「節能省碳」,重覆使用既有的設計。認證這個話題是很多人都喜歡談的。如果學校收發室要為學生轉寄郵件製作資料庫,就要考慮「誰寄給哪位同學」的問題,學生的識別項很好找,但左邊那個「誰」的識別項不容易設計。既然目前OpenID還不考慮到通用識別項(universal identifier)的情況,盼望將來通訊協議有更好的發展。只是,人與資訊完全密切整合,會是《全民公敵》或《駭克任務》的社會情況嗎?如果是,我不樂見這種未來情況。

Paul and Technometria的OpenID示意圖Leancode的OpenID示意圖給我們一些不同的觀察點,前者採通訊資料流觀點,後者採認證層次觀點。Paul and Technometria的圖告訴我們,哪些資料或訊息的傳遞是一組的,並且為了維持OpenID的運作,各服務方都要表現出適當的行為。Leancode的圖顯示出在認證的訊息傳達之前,須要來往傳遞一些未認證的準備訊息。用戶的目的訊息,是借OpenID提供方的識別項,請求其他的服務方提供服務。而OpenID提供方與其他服務方在下層則必須交換session訊息,這個行為和client-server環境的服務方內部運作相同。

我覺得設計分散式合作協議的人很厲害也夠聰明。低層次的電腦協議是彼此傳遞一組資料,則根據收到的資料符號格式,判讀為哪一種行為。高層次的通訊協議卻可以用比較抽象和淺顯的講法描述各方該傳什麼資料或提供什麼表單,或者表現什麼行為。

OpenID看起來是網路應用的必要過程,從任何網站都只對自己的帳號提供服務,轉變成任何網站都順便對其他網站的帳號提供服務。對微程式資訊自家產品Single Sign-On的參考用處,目前可能是檢查各系統元件、各伺服器,在互動和通訊行為,起碼在自己系統環境中是否足夠open;順便為了未來對其他公司和其他系統的聯外整合做預備。

1 comment:

薛共和 said...

http://erlsoft.org/erlang-internet-framework/45/openid-in-erlang/

OpenId in Erlang

給你參考

Blog Archive