隨著網(wǎng)絡應用和網(wǎng)站數(shù)量的發(fā)展,越來越多的站點依賴于分布式的服務和云計算,一次登錄,處處使用的認證越來越需要。之前各大門戶網(wǎng)站有其“通行證”,例如網(wǎng)易通行證,一證通行所有網(wǎng)易的服務。而隨著網(wǎng)絡應用類別以及其交叉越來越多,局限于某個網(wǎng)站的通行證已經(jīng)不再適應潮流的發(fā)展和用戶的需要,用戶需要記憶網(wǎng)易通行證、新浪通行證、搜狐通行證等等,不方便。于是出現(xiàn)了類似于“人人連接”的服務。“人人網(wǎng)通過“人人連接”技術與土豆網(wǎng)、56網(wǎng)、有道、集合、天極網(wǎng)、課樂網(wǎng)、豆瓣等各大垂直領域網(wǎng)站全面連接。千橡集團CEO陳一舟表示,只要有了“人人連接”,人人網(wǎng)不需要做內(nèi)容。”非常方便。人人連接還不開放,國產(chǎn)的東西都這樣。QQ,百度搜索API等好像也不開放。那么我們怎么辦呢?
其實,已經(jīng)有了OpenID,而且目前應用也還可以,包括Joomla!, Wordpress等都支持了OpenID,之前寫了一篇文檔介紹OpenID的現(xiàn)在找不到了。
今天要介紹的是另外一個技術OAuth (http://hueniverse.com/oauth/ )。
OAuth為用戶提供了一種可以不共享密碼而授權第三方來訪問其資源的方法。它超越了傳統(tǒng)的客戶機/服務器認證的模型,客戶端的用戶使用信用證書來訪問服務器上的資源。OAuth為這種模型引入了一種新的第三方角色:資源所有者。在OAuth模型中,作為不是資源所有者的客戶端請求訪問在服務器上的資源,而資源的訪問權限是由資源所有者控制的??蛻舯仨毷紫认蛸Y源所有者申請許可以便訪問這些資源,而這許可就以某種令牌的形式來匹配對私密信息的共享。
目前已經(jīng)有的一些業(yè)界協(xié)議包括Google AuthSub 、Yahoo BBAuth 、和Flickr API 等。而OAuth在很大程度上是從OpenID社區(qū)分出來的。在2006年11月Blaine Cook 為Twitter添加了OpenID的支持,在12月Chris Messina ,Blaine Cook ,David Recordon 等人在OpenID的會議上討論已存在的一些解決方案。研究了OpenID的已有功能和設計局限性以后,討論小組的基礎結論,需要一個API訪問控制的開放標準,它不需要共享密碼也不需要獲知登錄信息,直接允許將OpenID等技術應用于API調(diào)用中。這個想法就叫開放式認證OpenAuth(類比于開放式標識OpenID)。2007年4月成立了OpenAuth谷歌論壇(http://groups.google.com/group/openauth ),7月15日David Recordon將說明文檔整理成第一實用規(guī)范草稿(first real specification draft ),并于7月26日發(fā)布,8月28日發(fā)布了草稿0.9版本。目前版本是OAuth Core 1.0 Editor’s Cut ,并集成到draft-hammer-oauth ,且正在審查以便成為informational RFC。草案全文:http://tools.ietf.org/html/draft-hammer-oauth-10 。
OAuth規(guī)范包括兩部分。第一部分定義了基于重定向的瀏覽器對終端用戶進行認證的處理過程,以便授權客戶端訪問他們的資源。用戶直接通過服務器進行認證,而該規(guī)范指導服務器使用認證方法為客戶端提供令牌。第二部分定義了進行HTTP請求認證所使用的兩個信用證書的集合,一個是識別發(fā)出請求的客戶,另外一個是標識將授權請求的資源所有者。
OAuth 1.0協(xié)議規(guī)范的大綱包括:引言Introduction、基于重定向的授權Redirection-Based Authorization、授權的的請求Authenticated Requests、安全性考慮Security Considerations、和列出不同版本區(qū)別的附錄A。
Google Data API目前可以使用OAuth,詳見Using OAuth with the Google Data APIs (http://code.google.com/intl/en/apis/gdata/articles/oauth.html )
目前自己寫程序或者使用Google Data API應用使用OAuth是沒有問題了,但是使用Wordpress和Joomla!等開源工具是否方便集成還需要進一步探討。