專利名稱:一種向訪問用戶提供資源的方法、服務器和系統的制作方法
技術領域:
本發明涉及社會化網絡,尤其涉及分布式社會化網絡中一種向訪問用戶提供資源的方法、應用網站服務器、社交網站服務器、OpenID提供方服務器和系統。
背景技術:
社交網站(Social Network Site, SNS)是基于社會網絡關系思想建立的網絡虛擬社交網絡。從Myspace到Facebook、開心網和校內網等,國內外的社交網站已經走向成熟,成為越來越多人日常生活的一部分。目前很多互聯網傳統門戶以及電信運營商也都陸續推出社交網站業務,另外還出現了大量提供給社交網絡平臺用戶的各種應用,同時社交網絡之間的互聯互通以及應用資源共享的問題也日益突出。現在相關的主要技術有開放身份標識(Open Identity, OpenID)禾口開放認證(Open Authentication, 0Auth)等協議。
OpenID是一個以用戶為中心的數字身份識別框架,它具有開放、分散、自由等特性。OpenID的具體術語和規范可參見其官方網站(www.openid.net)上的資料。對于支持OpenID的網站,用戶不需要在每個網站都進行注冊獲得像用戶名和密碼這樣的傳統驗證標記。取而代之的是,用戶只需要預先在一個作為OpenID身份提供者的網站上注冊,然后就可以使用一個OpenID身份來登錄到各個網站了 。 OpenID是去中心化的,任何網站都可以使用OpenID來作為用戶登錄的一種方式,任何網站也都可以作為OpenID身份提供者。OpenID既解決了問題而又不需要依賴于中心性的網站來確認數字身份。OpenID正在被越來越多的網站采用。而OAuth協議用于使網站和應用程序能夠在無須用戶透露其認證證書(如密碼)的情況下,通過應用程序接口 API訪問某個受保護的資源。 為了在社交網絡中真正徹底的實現互聯互通和資源共享,目前僅靠OpenID和OAuth等協議是不夠的。用戶和他的好友或群組成員的身份都可能歸屬于不同的OpenlD提供服務器,而且一個用戶可能在不同的網站中都分別創建了一些群組,又在另外一些應用網站中對某些群組進行資源共享的訪問授權。在這樣一個分布式的社交網絡環境中,不僅要對用戶的身份進行跨網站的認證,還需要對用戶的群組成員身份進行可靠的驗證以保證共享資源的安全性。
發明內容
本發明實施例提供了一種向訪問用戶提供資源的方法,包括根據訪問用戶的身份標識到相應的服務器獲得所述用戶的群組信息;根據所述群組信息驗證所述用戶的群組成員身份;根據驗證結果向所述用戶提供資源。 本發明實施例提供了一種應用網站服務器,包括資源數據提供單元,用于存儲資源;資源訪問授權設置單元,用于存儲資源訪問授權記錄,所述資源訪問授權記錄存儲群組標識與資源的對應關系;登錄單元,用于接收用戶的登錄信息,其中包括用戶的身份標識;應用網站處理單元,用于根據所述用戶的身份標識獲得所述用戶的群組信息,所述群組信息用于群組身份驗證,根據驗證結果向用戶提供資源。
6
本發明實施例提供了一種社交網站服務器,包括群組信息提供單元,用于存儲用 戶的群組信息;社交網站處理單元,用于當接收到驗證用戶的成員身份請求時,根據群組信 息提供單元存儲的群組信息驗證用戶的成員身份。 本發明實施例提供了一種開放身份標識提供服務器,包括群組信息存儲單元,用 于存儲用戶的群組信息;群組信息提供單元,用于當接收到獲取所述用戶的群組信息的請 求時,返回所述群組信息存儲單元所存儲的所述用戶的群組信息。 本發明實施例提供了一種社會化網絡中訪問資源的系統,包括應用網站服務器, 用于接受用戶通過瀏覽器使用開放身份標識登錄,從用戶的開放身份標識提供服務器獲得 所述用戶的群組信息,根據所述群組信息驗證所述用戶的群組成員身份,根據驗證結果向 所述用戶提供資源;開放身份標識提供服務器,用于存儲的群組信息,其中包括用戶作為成 員的群組所在網站的信息,接收應用網站服務器獲取群組信息的請求,向所述用戶作為成 員的群組所在網站獲得簽名過的群組信息,然后將所述簽名過的群組信息返回給應用網站 服務器;社交網站服務器,用于存儲用戶的群組,在增加或刪除成員時,所述社交網站服務 器向用戶的開放身份標識提供服務器發送群組事件通知。 綜上所述,采用本發明實施例,在分布式的社交網絡環境中,通過由群組所在的網 站對用戶的群組成員身份進行可靠的驗證,實現了共享資源的便捷性和安全性。尤其是目 前應用資源和用戶的關系數據等往往是分散于互聯網中的不同網站,本發明打破了不同網 站之間共享資源和關系數據的障礙,大大有利于互聯網業務的發展。
圖1為本發明實施例一中提供的 圖2為本發明實施例一中提供的 流程圖; 圖3為本發明實施例二中提供的 流程圖; 圖4為本發明實施例三中提供的 流程圖; 圖5為本發明實施例四中提供的 流程圖; 圖6為本發明實施例五提供的一種應用網站服務器的結構圖; 圖7為本發明實施例六提供的一種社交網站服務器的結構圖; 圖8為本發明實施例七提供的一種社交網站服務器的結構圖; 圖9為本發明實施例八提供的一種OpenID提供服務器的結構圖; 圖10為本發明實施例九提供的一種OpenID提供服務器的結構圖; 圖11為本發明實施例十提供的一種用戶訪問應用網站服務器資源的系統架構
圖; 圖12為本發明實施例十一提供的一種用戶訪問應用網站服務器資源的系統架構 圖。
-種用戶增加群組成員的消息交互流程圖; 種用戶b訪問應用網站服務器資源的消息交互
種用戶b訪問應用網站服務器資源的消息交互
種用戶b訪問應用網站服務器資源的消息交互
種用戶b訪問應用網站服務器資源的消息交互
具體實施例方式
包含有用戶的社會化數據的網站服務方都可以稱為社會化網站或社交網站等,社會化數據(或稱為社交數據,簡稱為SNS數據)主要包括用戶的個人資料,聯系人,群組和活動信息等數據。本發明實施例描述了在分布式的社會化網絡系統中進行資源共享的方案。為了使用戶方便的登錄和訪問多個互相獨立的SNS網站,以及將分布存儲的SNS數據關聯在一起,本發明實施例優選采用開放身份標識OpenID作為用戶的身份標識。
—個OpenID提供服務器(OpenID Providers, OP)可以只存儲有用戶的基本個人資料,如電子郵件,生日和性別等,也可以存儲聯系人、群組和活動信息等復雜的SNS數據,當然甚至可以簡單得只是負責用戶的身份認證。 一般大型的SNS網站都可以作為OP,負責用戶的身份認證,證實用戶擁有某個身份標識,也同時存儲用戶的各種SNS數據。
本發明實施例在分布式的社會化網絡系統中,假定用戶a對應的OpenID提供服務器為網站為OP-A,用戶b對應的OpenID提供服務器為網站為OP-B,在另外一個SNS網站SNS-C中存在有用戶a的一個群組Group-C-a,該群組的成員中包含用戶b。在其他的SNS網站中也可能存在有包含成員用戶b的群組,即成員中包含用戶b的群組可以是分布于多個不同的SNS網站中的。可以將存儲用戶群組的網站稱為群組服務器。
—般用戶可以將自己的聯系人分為多個群組,這種屬于私人群組,如同事、同學、家人等,而且群組之間的成員可以有重疊,即一個聯系人可能同時屬于用戶的多個群組。另外可以用一個特別群組如"我的好友"來表示用戶在一個網站的全部聯系人,這樣在對群組進行資源訪問授權時,用戶如果想讓自己的任何聯系人都可以訪問自己的資源,就可以使用這個特別群組"我的好友"來進行授權。另外還有一種公共群組,如班級通訊錄、QQ群或MSN群等,群組成員都可以使用該群組,對該群組進行資源訪問授權。 在一個應用網站服務器中存儲有用戶a的資源數據,如照片、視頻、網址收藏、評論、日志、呈現信息或位置信息等數據。應用網站服務器中還存儲有用戶a對群組Group-C-a的授權數據,如允許群組Group-C-a的成員訪問用戶a在應用網站服務器中的資源數據。本發明實施例中為簡明起見省去了部分步驟如使用OpenID登錄網站所進行的瀏覽器重定向等過程的描述。本發明中所稱的網站實際都對應有服務器實體,向用戶提供網頁以及其他互聯網服務,網站的各種具體的流程處理都由相應的服務器完成。
本發明第一實施例中,首先描述用戶增加群組成員的處理過程。參照圖l,主要包括步驟 步驟101、社交網站服務器SNS-C接收到在群組中添加成員的請求。 一般由用戶觸發,如用戶a可以在使用OpenID標識(如http:〃openid-usera. example, com)登錄網站SNS-C后,通過瀏覽器請求在網站SNS-C中自己擁有的一個群組如Group-C-a的群組成員中增加用戶b。群組信息中通常對應有一個群組標識和成員列表,該群組標識一般在整個分布式社會化網絡中是唯一的,這可以通過在群組標識中包含群組所在網站的域名等方式來保證。群組信息中還可以有群組名稱和描述等信息。 除了由用戶a觸發外,其他有權限的用戶或應用也可以在用戶a的群組中增加成員。 步驟102、網站SNS-C在群組中增加成員。如在群組Group-C-a中增加成員用戶b,即在群組的成員列表中增加用戶b的OpenlD身份標識及其他信息。在本發明的其它實施例中,除了逐個增加群組成員外,也可以批量的將聯系人導入到群組中。群組的成員列表中包 含成員的OpenID身份標識,如用戶b的OpenID標識(如http: 〃openid_userb. example, net)。還可以包含成員的姓名、昵稱、聯系方式等信息。 步驟103、網站SNS-C通知群組成員的OP。除了增加成員外,發生的刪除成員等群 組事件也可以通知所涉及到的群組成員的OP。如從群組Group-C-a中增加或刪除成員用戶 b時,都要通知用戶b的OpenID提供服務器網站0P_B。根據群組成員的OpenID標識可以 確定對應的OP,然后網站SNS-C向對應的OP通知發生的群組事件如增刪成員,所述群組事 件通知中可以包括成員的OpenID標識和事件類型等群組事件信息。 OP-B根據群組事件通知可以獲知用戶是網站SNS-C上某個群組的成員。群組事件 通知中可以不包含具體的群組標識。這樣由于不必精確的讓OP-B獲知用戶是哪個具體群 組的成員,則網站SNS-C也可以不必每次增加用戶成員b時都通知OP-B。具體的可以在增 加成員用戶b時,判斷用戶b是否已經是SNS-C中其他群組的成員了,如果不是則向OP-B 發送群組事件通知,否則則不發送。而在刪除成員時,也判斷用戶b是否是SNS-C中其他群 組的成員,如果不是則向OP-B發送群組事件通知,否則則不發送。這樣OP-B可以獲知網站 SNS-C是否有在所有群組范圍內包含成員用戶b,而不必每次都發送通知。
具體的可以通過如非集中身份驗證互用系統協議(Yet AnotherDecentralized Identity Interoperability System, Yadis)等來發現OP提供的群組事件通知服務。相 應的XRDS(可擴展資源描述文檔,extensible ResourceDescriptorS)文檔舉例如下
〈Service xmlns = 〃 xri://$xrd*($v*2. 0)〃 >〈Type>http://specs, openid. net/auth/3. 0/group_notify〈/Type>
〈URI>http://provider, example. com/group_notify〈/URI>
〈/Service> 網站SNS-C向OP提供的群組事件通知服務地址如"http:〃provider. example, com/group—notify"發送HTTP GET或POST請求消息,消息中包含群組事件信息。請求消息 中可以包含以下字段 group—event—type,其值為一個群組事件類型,如增加add、刪除delete等類型。
member」d,其值為一個OpenID標識,此消息中表示被增加或刪除成員的身份標 識。 可選的,還可以包括groupJiost,其值為一個URL,表示群組所在的網站服務器 地址。OP可以到這個地址去獲取用戶所在的具體群組信息。如果請求消息中不包含這個字 段,OP也可以根據請求者的IP地址或HTTP請求中的From字段等確定群組所在的網站服 務器地址。 如果OP-B向網站SNS-C發送獲取群組信息的請求中包含應用網站服務器的信息, 則可能會向SNS-C暴露用戶的活動信息,如網站SNS-C可以根據應用網站服務器的信息向 OP-B提供相應的群組信息,而不是用戶b所在的全部群組。如果一個惡意網站未經用戶確 認就將其加入本網站的群組中,并在其他一些應用網站對這些群組進行資源授權,用戶使 用應用網站的活動就會由于要去惡意網站進行群組成員身份驗證而暴露,不利于用戶的隱 私保護。 由此還可以通過以下確認步驟來提高安全性群組成員的OP可以在接到群組事
9件通知后,群組成員下次登錄OP時,向群組成員顯示所接到的相關通知,并提示群組成員進行確認。如果用戶不信任這個網站SNS-C,或者認為網站SNS-C可能是個惡意的(如用來散發廣告信息,或惡意跟蹤用戶活動等),則可以拒絕進行確認操作。群組成員進行確認操作后,群組成員的OP對該網站SNS-C設置確認標志。如果后續用戶不再信任該網站SNS-C,可以將確認標志修改為拒絕標志。用戶的OpenID提供服務器僅向經過用戶確認的群組所在網站請求獲得簽名過的群組信息。 或者當群組成員的OP在接到群組事件通知后,發送確認電子郵件給群組成員,在群組成員點擊電子郵件中的確認操作鏈接后,群組成員的OP對該網站SNS-C設置確認標
志o 后續可以在應用網站服務器中授權群組Group-C-a可訪問用戶a的資源。授權通
常由資源的所有者如用戶a發起,如授權某個群組可以訪問自己在應用網站服務器中的某
組照片資源或位置信息等。被授權的群組通常為用戶a自己擁有的群組或作為成員的群
組,但也可以是與用戶a沒有任何關系的群組。應用網站服務器存儲用戶a所提供的被授
權群組的標識與資源之間的對應關系,即存儲群組的資源訪問授權記錄。 接著描述用戶b訪問應用網站服務器的處理過程,本實施例一主要描述以OP-B為
代理獲取群組信息的方式。參見圖2,主要包括以下步驟 步驟201 、應用網站服務器接受用戶b使用OpenID標識登錄。 步驟202、應用網站服務器向OP-B請求獲得用戶b作為成員的群組的信息。具體
可以通過HTTP POST或GET消息,消息中包括用戶標識字段,如該字段的內容可以是用戶b
的OpenID標識。 步驟203、 OP-B向所述群組所在網站如SNS-C等網站請求獲取群組信息,群組信息中包括用戶b作為成員的群組列表。并且SNS-C對群組列表等信息進行簽名,以保證這些信息不會被OP-B篡改。如果用戶b除了作為SNS-C上群組的成員外,還是其他網站群組的成員,則OP-B也逐一從這些網站獲得簽名過的用戶b的群組信息。 由于OP-B根據群組事件通知獲得的信息,只能獲知成員中包含用戶b的群組在哪些網站,但并不知道具體的群組標識,而應用網站則需要具體的群組標識才能進行授權訪問資源,因此OP-B要向這些網站請求獲得具體的群組標識。具體的請求可以使用HTTPPOST等消息,請求消息中可以包括字段 member」d,其值為一個OpenID標識,此消息中表示成員的身份標識。接收該消息
的網站應在響應消息中返回本網站中該成員所在群組的信息。 響應消息中包括群組列表以及簽名信息字段。 member_id,其值為一個OpenID標識,此消息中表示成員的身份標識。 groupJist,其值為群組標識列表,用戶為這些群組的成員。 response_nonce,隨機數,必須包含時間戳,還可以包含額外的字符等。 sign—type,簽名算法的類型,如PKCS (The Public-Key CryptographyStandards)
等。應用網站服務器向OP-B請求獲得用戶b作為成員的群組的信息時,可以帶上自己所支
持的簽名算法類型,然后在OP-B的請求中轉發給SNS-C, SNS-C使用這些應用網站服務器所
支持簽名算法類型。 signed,要進行簽名的字段列表,可以包含member—id, group—list禾口 response—
10nonce等字段。 sig,使用sign_type中指示的算法對signed中包含的字段進行簽名后的數據。
群組列表以及簽名等字段共同構成了成員身份驗證結果,也可以稱為群組驗證信 息。 步驟204、 OP-B向應用網站服務器返回用戶b的群組信息。群組信息包括成員中 包含用戶b的群組列表以及簽名等信息。 步驟205、應用網站服務器對群組信息的簽名進行驗證。具體可以使用各網站如 SNS-C的公開密鑰進行驗證。驗證成功后即可確認用戶b的群組成員身份,即可確認用戶b 為該群組列表中群組的成員。 步驟206、應用網站服務器向用戶b的瀏覽器返回其有權限訪問的資源列表或用 戶名列表。 應用網站服務器可以根據資源訪問授權記錄中的群組標識等(如用戶a對資源訪 問所授權的群組Group-C-a)與從OP_B獲得的群組信息中的群組標識(群組成員中包含用 戶b)進行對比即可獲得用戶b有訪問權限的私人資源列表或者這些資源所有者的用戶名 列表。 使用本實施例方案,應用網站服務器不必自己去SNS-C驗證用戶的群組成員身 份,而是由OP-B在返回群組信息時同時通過簽名技術手段,應用網站服務器對簽名進行驗 證就可以保證了群組信息的準確性,即提高了效率又保證了安全性。尤其是當SNS-C和 OP-B為同一網站,或同一域內的網站時,比其他方案的效率更高。 本發明第二實施例中,主要描述應用網站服務器自己直接去SNS-C等網站驗證用
戶的群組成員身份的方式。參見圖3,主要包括步驟 步驟301、應用網站服務器接受用戶b使用OpenID標識登錄。 步驟302、應用網站服務器向OP-B請求獲得群組信息,即成員中包含用戶b的群組
所在網站的信息。 步驟303、應用網站服務器再從這些群組所在網站獲取成員中包含用戶b的具 體群組標識。這一步獲取到的具體群組標識就是驗證結果,即確定用戶b作為成員的群 組。這種方式通常應用網站服務器與群組所在網站之間具有信任關系,否則應用網站服務 器可能會獲取用戶的群組信息用于非法目的。如可以采用SAML(安全性斷言標記語言, Security Assertion MarkupLanguage)協議來獲取成員中包含用戶b的具體群組標識,并 使用HTTPPOST消息承載。將成員中包含用戶b的群組所在網站作為用戶b的屬性,應用網 站服務器通過發送HTTP POST消息請求用戶b的該屬性斷言即可。返回的屬性斷言中可以 包括用戶b的OpenID標識,以及多值的群組屬性,其中的群組屬性舉例如下
〈saml:AttributeNameFormat =〃 urn:oasis:names: tc: SAML: 2. 0:attrname-format :uri 〃Name = 〃 urn:oasis:names:tc:SAML:2. O:profiles:att:ribute:DCE:g:roups" > 〈saml:AttributeValue xsi:type =〃 dce:DCEValueType" dce:FriendlyName = 〃 Group_C_a〃 > urn:皿id:008c6181-a288-10f9-b6d6-004005bl3a2b 〈/saml:AttributeValue>
11
〈saml:AttributeValue xsi:type =〃 dce:DCEValueType〃 dce:FriendlyName = 〃 G麗p-C-d〃 > urn:皿id:006a5a91-a2b7-10f9-824d-004005bl3a2b 〈/saml:AttributeValue〉 〈/saml:Attribute> 其中的群組標識采用UUID(全局唯一標識符,Universally Uniqueldentifier) 格式,保證其在分布式環境中的唯一性。 步驟304、應用網站服務器根據這些群組標識對應的資源訪問授權記錄向用戶b 提供資源。 本發明第三實施例中,如果發生添加群組成員等群組事件時,每次都發送群組事 件通知,并且通知中的群組信息還包括具體的群組標識,則OP通過這些信息可以大致維護 一個用戶在各個網站上的群組分布信息,即通過群組事件通知機制可以讓OP獲知用戶所 在群組的情況,即使這些群組是分布于各個不同的網站上的。后續這些用戶所在群組的信 息可以提供給應用網站來使用。 以下主要描述一下用戶b訪問應用網站服務器的過程。參見圖4,主要包括以下步 驟 步驟401、應用網站服務器接受用戶b使用OpenID標識登錄。 步驟402、應用網站服務器從OP-B獲得包含成員用戶b的群組信息,如群組標識等。 如應用網站服務器可以通過OpenID的屬性交換(OpenID AttributeExchange)方
法向OP-B請求獲取包含成員用戶b的群組信息。在應用網站服務器通過OpenID的屬性交
換方法獲得的響應消息中包含的群組標識屬性信息可以包括 openid. ax. value. group_as_member. 1 = Group_C_a. SNS-C. com openid. ax. value. group_as_member. 2 = Group_E_m. SNS-E. com 由此應用網站服務器可以根據上述群組標識獲知用戶b為SNS-C上的群組
Group-C-a的成員,以及為其他SNS-E上的群組Group-E-m的成員等。 除了可以通過OpenID的屬性交換方法從OP處獲取用戶擁有的群組信息或作為成 員的群組信息外,另外一種方法是可以通過OAuth協議實現。具體的將用戶的群組信息作 為一種受保護資源(Protected Resource),應用網站服務器作為消費方(Consumer),存儲 有群組信息的OP作為服務提供服務器(Service Provider),應用網站服務器通過OAuth協 議流程從OP那里獲得用戶的群組信息。 本實施例中應用網站服務器可能包含不屬于任何私人用戶的資源,或者某個用戶 授權對所有人都公開的資源,這些資源可以稱為公共資源。而屬于某個私人用戶,并且需要 經授權才能訪問的資源稱為私人資源。用戶可以對群組或個人用戶進行資源訪問授權的設 置。用戶除了可以對自己擁有的群組進行授權外,甚至可以對其他所信任的用戶擁有的群 組進行授權,只要應用網站服務器建立用戶提供的群組標識和用戶擁有的資源之間的對應 關系的授權設置記錄即可。 應用網站服務器可以向用戶b返回其有訪問權限的私人資源的所有者的用戶名, 或者向用戶b返回其有訪問權限的私人資源鏈接列表。本實施例中主要對返回用戶名的方
12式進行描述。用戶b在登錄應用網站后,向其顯示一些用戶名,并且根據群組授權設置這些 用戶的某些資源是用戶b可以有權限訪問的,通過這種方式可以讓用戶b發現更多可訪問 的資源,提高用戶體驗。 步驟403、應用網站服務器返回用戶b有訪問權限的私人資源的所有者的用戶名 鏈接。 應用網站服務器根據授權設置記錄中的群組標識等(如用戶a授權的群組 Group-C-a)與從0P-B獲得的群組標識(群組成員中包含用戶b)進行檢索對比即可獲得用 戶b有訪問權限的私人資源的所有者的用戶名(如用戶a)。用戶b的瀏覽器上顯示返回的 用戶名鏈接,通過該鏈接可以訪問該用戶的資源列表。 —般應用網站服務器不必一次性將用戶b有訪問權限的私人資源的所有者的用 戶名全部返回,因為有時數量會比較多,可以按資源更新時間等首次只返回部分用戶名即 可,這些返回的用戶名的私人資源中允許用戶b訪問的那些資源近期有過更新,如增加了 新的照片,位置信息發生了變化等。而對于那些長期沒有更新,或者在用戶b上次訪問過后 沒有更新的,可以在用戶b后續的請求之后再返回。 步驟404、應用網站服務器接到用戶b通過用戶名鏈接獲得資源列表的請求。
步驟405、應用網站服務器驗證用戶b的群組成員身份。在用戶b點擊此鏈接請求 顯示資源所有者如用戶a的資源列表時,應用網站服務器對用戶b進行群組成員身份驗證, 驗證成功之后再顯示用戶b有權限訪問的用戶a的資源列表。 具體的,應用網站服務器首先根據用戶a的資源授權設置記錄以及從OP獲得的用 戶b的群組信息,得出用戶a授權的并且成員中包含用戶b的群組,然后向這些群組所在的 網站服務器請求對用戶b的成員身份進行驗證。如向群組Group-C-a所在的網站SNS-C請 求進行成員身份驗證,即請求驗證用戶b是否為群組Group-C-a的成員。
如果應用網站服務器檢測到用戶a除了群組Group-C-a外還有其他的群組中也包 含成員用戶b,而且用戶a也對這些群組在應用網站服務器進行了資源訪問授權的設置,這 些群組有可能與Group-C-a不在同一個網站中,即不在SNS-C中,則應用網站服務器還要向 其他網站進行成員身份驗證。應用網站服務器可以對用戶b在這些群組的成員身份進行逐 一驗證,然后將驗證通過的群組對應的有訪問權限的資源的并集作為用戶b可以訪問的資 源列表。應用網站服務器可以并行的向這些群組的網站發送驗證請求。
如果在應用網站服務器中用戶a除了對Group-C-a等群組外還單獨對用戶b進行 了資源授權,則還要把這些資源也計入上述的并集中。 應用網站服務器可以使用安全的HTTPS消息向網站SNS-C發送驗證請求。如果應 用網站服務器得到的群組信息中包含有群組所在網站的驗證服務地址,則可以直接向該驗 證服務地址發送驗證請求消息,消息中包含群組標識和成員身份標識。
應用網站服務器也可以根據得到的群組信息中的群組標識(如XRI或URL格式的 標識),執行自動發現,如對于URL格式的群組標識,可以嘗試采用Yadis協議,應用網站服 務器獲得群組所在網站SNS-C提供的驗證服務地址,然后向該驗證服務地址發送驗證請求 消息即可。如可以采用HTTPS的POST消息發送驗證請求,在返回的響應中攜帶驗證結果。
步驟406、應用網站服務器向用戶b返回其有訪問權限的用戶a的資源列表或拒絕 提供資源列表。成員身份驗證成功后,用戶b再訪問資源列表中具體的資源時,就可以不必再進行成員身份驗證了。 通過群組所在網站如SNS-C等進行群組身份驗證的好處是防止OP-B偽造用戶b 在群組Group-C-a中的成員身份。而且群組通知機制并不能保證群組所在網站如SNS-C上 的群組信息能實時更新到OP-B上,因此OP-B上的群組信息數據可能是不準確的。因此有 必要到群組所在的網站如SNS-C等請求進行群組成員身份驗證,而不是應用網站服務器直 接信任和使用從OP-B上得到的用戶b的群組信息。 本發明第四實施例主要描述在用戶b登錄應用網站服務器后,應用網站服務器向
用戶b返回其有訪問權限的私人資源鏈接列表的方式。這種方式與返回用戶名的方式差不
多,但是用戶可以直接看到一些私人資源鏈接列表。另外本實施例還采用在用戶b登錄后
就進行成員身份驗證的方式,增強了安全性。參見圖5,主要包括步驟 步驟501、應用網站服務器接受用戶b使用OpenID標識登錄。 步驟502、應用網站服務器從OP-B獲得用戶b作為成員的群組信息,如群組標識。
為了提高后續成員身份驗證的效率,應用網站服務器可以將授權設置中不存在的群組剔除
出去,即如果沒有任何資源對某個群組授權過,則應用網站服務器不必去驗證用戶b在這
個群組中的成員身份。應用網站服務器確定出在資源授權設置中存在的并且成員中包含用
戶b的群組標識。 步驟503、應用網站服務器對用戶b的群組成員身份進行驗證。可以對上述確定出 的群組進行群組成員身份驗證。這些確定出的群組可能位于不同的網站中,則要逐一進行 驗證請求。 如果用戶a對一個資源同時對除Group-C-a外的其他群組也進行了訪問授權,并 且用戶b也是其中一個群組如Group-D-a的成員。即用戶b為Group-C-a的成員,同時也是 另外一個群組如Group-D-a的成員,則應用網站服務器對任何一個群組驗證成功后,都可 以允許用戶b訪問該資源。如應用網站服務器驗證用戶b為Group-C-a的成員時失敗了, 但成功驗證了用戶b為Group-D-a的成員,則仍允許用戶b訪問該資源。
步驟504、應用網站服務器向用戶b返回其有訪問權限的私人資源鏈接列表。用戶 b可以通過私人資源鏈接訪問資源,訪問這些資源時就不必再進行群組成員身份驗證了。
—般應用網站服務器不必在首次將用戶b有權限訪問的私人資源鏈接全部返回, 因為可能數量會比較多,可以按資源更新時間等返回部分私人資源鏈接列表。還可以只返 回最近一定時間內,如一周內更新的私人資源鏈接。 除了通過OpenID方式登錄外,用戶也可以采用單點登錄(SSO, SingleSign-On)。 通常由一個網站作為身份認證服務器,用戶在登錄時,都需要到該身份認證服務器進行認 證,當認證通過后,就可以訪問所有相互信任的網站了,如SNS網站和應用網站等。身份認 證服務器可以集中存儲一個相互信任的網站體系內的群組信息,身份認證服務器相當與上 述實施例中的OpenID提供方,不同的是OpenID提供方是分布式存儲用戶的群組信息。用 戶在任何一個網站單點登錄后,網站可以直接確定身份認證服務器,不必象OpenID方式要 根據用戶身份標識確定OpenID提供方。其余的處理基本相同,此處不再贅述。
本發明實施例五提供的一種應用網站服務器10如圖6所示,包括資源數據提供單 元IOI,資源訪問授權設置單元103,登錄單元105,以及分別與上述單元相連的APP(應用 網站)處理單元。資源數據提供單元101,用于存儲該APP用戶上載的各種資源數據,如照片、視頻、網址收藏、評論、日志、呈現信息或位置信息等數據。資源訪問授權設置單元103, 用于存儲資源提供用戶設置的資源訪問授權記錄,該資源訪問授權記錄提供用戶a所提供 的被授權群組的標識與資源之間的對應關系,例如用戶a對群組Group-C-a的授權數據,如 允許群組Group-C-a的成員訪問用戶a在應用網站服務器中的資源數據。登錄單元105,用 于接收用戶通過瀏覽器使用開放身份標識OpenID的登錄,以驗證用戶身份。APP處理單元 107用于從登錄單元105獲得用戶的OpenID,并向該OpenID的提供服務器獲得該用戶的群 組信息,根據該群組信息驗證所述用戶的群組成員身份,根據驗證結果及資源訪問授權設 置單元103中的資源訪問授權記錄向所屬用戶提供資源。 當該應用網站服務器10在實施本發明實施例一所提供的方法時,結合圖2,APP處 理單元107通過驗證OpenID提供服務器OP-B返回的群組信息的簽名,實現對用戶的群組 成員身份的驗證;當該應用網站服務器IO在實施本發明實施例二所提供的方法時,結合圖 3, APP處理單元107通過從社交網站服務器SNS-C獲得用戶的群組信息,同時驗證了用戶 的群組成員身份;當該應用網站服務器10在實施本發明實施例三、四所提供的方法時,結 合圖4和圖5,APP處理單元107獲得用戶的群組成員信息后向社交網站服務器SNS-C驗證 用戶的群組成員身份。由此應用網站服務器可以充分利用社交網站中的社交數據如群組, 來對用戶的資源進行授權,大大方便了用戶進行資源共享。 本發明實施例六提供的一種社交網站服務器(SNS)20如圖7所示,包括群組信息 提供單元201和SNS處理單元203。群組信息提供單元201,用于存儲用戶的群組信息,群 組信息中通常對應有一個群組標識和成員列表,該群組標識一般在整個分布式社會化網絡 中是唯一的,這可以通過在群組標識中包含群組所在網站的域名等方式來保證。群組信息 中還可以有群組名稱和描述等信息。成員列表中一般包括用戶的OpenID標識及其他信息。 SNS處理單元203,用于當接收到在群組中添加、刪除成員的請求時,相應更新群組信息提 供單元201存儲的用戶的群組信息,如在群組對應的成員列表中增加或刪除OpenID標識; 用于當接收到查詢用戶的群組信息請求時,從群組信息提供單元201獲取對應用戶的群組 信息,如用戶所在群組的群組標識;或者,用于當接收到驗證用戶的成員身份請求時,根據 群組信息提供單元201存儲的群組標識和成員列表的對應關系,驗證用戶的成員身份。另 外社交網站處理單元還可以首先對請求中的用戶身份簽名進行驗證,驗證通過后才提供用 戶的群組信息。這樣進一步增強了安全性,防止其他用戶或第三方冒充用戶從社交網站獲 得用戶是否屬于某個群組的信息。 一般用戶在登錄應用網站時如采用OpenID方式登錄,可 以在登錄成功后生成一個身份簽名,然后在獲取群組信息請求中攜帶用戶的身份簽名。由 此社交網站可以向應用網站或者OpenID提供服務器提供用戶的群組信息,以用于用戶群 組身份的驗證。 本發明實施例七提供的一種社交網站服務器(SNS)22如圖8所示,包括群組信息 提供單元221,群組事件通知單元225, SNS處理單元223和簽名單元227。其中,群組信息 提供單元221和SNS處理單元223完全具備實施六中所涉及的功能。此外,當發生群組增 加或刪除成員等群組事件時,SNS處理單元223觸發群組事件通知單元225通知該成員的 OpenID提供服務器。該群組事件通知中可以包括成員的OpenID標識,群組標識和事件類型 等群組事件信息。在本發明的其他實施例中,群組事件通知中可以不包含具體的群組標識。 這樣由于不必精確的讓OpenID提供服務器獲知用戶是哪個具體群組的成員,則社交網站服務器也可以不必每次增加或刪除用戶成員時都通知OpenID提供服務器。僅在用戶首次 加入社交網站服務器所有群組時,或用戶從社交網站服務器所有群組刪除時,通知OpenID 提供服務器。簽名單元227用于在SNS處理單元提供用戶的群組信息時,對該群組信息進 行簽名,以免群組信息在傳輸的中被篡改,以及通過簽名方式驗證群組信息。由此社交網站 服務器可以提供安全可靠的經過簽名的群組信息,使分布式系統的安全性得到了保證。
本發明實施例八提供的一種開放身份標識(OpenID)提供服務器30如圖9所示, 包括身份標識認證單元301、群組信息存儲單元303,以及分別與上述單元連接的群組信 息提供單元305。其中,身份標識認證單元301用于通過接收到的用戶OpenID驗證用戶的 身份。群組信息存儲單元303,用于存儲用戶的群組信息以及各種SNS數據,例如用戶的 電子郵件、生日、性別、聯系人、群組、群組對應的網站、用戶所在的群組標識等。如實施例 一,群組信息提供單元305接收到SNS-C發送的群組事件通知時,將根據該群組事件通知 更新群組信息存儲單元303存儲的對應用戶的群組信息。其中,群組事件通過包括以下字 段group_event_type群組事件類型、member_id為用戶OpenID標識,可選地,還可以包括 groupjiost群組所在網站服務器地址。當OP30執行本發明實施例一時,群組信息提供單 元305還用于當接收到獲取包含用戶b的群組信息的請求時,向已存儲的群組所在的網站 地址對應的社交網站服務器SNS-C請求獲取用戶b的群組信息。當OP30執行本發明實施 例二時,群組信息提供單元305還用于當接收到獲得用戶b的群組所在的網站的信息,提供 用戶b的群組所在的網站信息。 進一步地,結合圖IO,本發明實施例九提供一種OpenID提供服務器32,其中身份 標識認證單元321的功能與實施例八相同,此處不再贅述。此外,在本實施例中,OP32還包 括與群組信息提供單元325相連的群組事件確認單元327,用于當群組信息提供單元325接 收到群組事件通知后,根據所述群組事件通知更新群組信息存儲單元323對應用戶的群組 信息。對應成員下次登錄OP時,群組事件確認單元327向群組成員顯示所接收到的相關通 知,并提示該群組成員確認。如果用戶不信任這個網站如SNS-C,或者認為網站SNS-C可能 是個惡意的(如用來散發廣告信息,或惡意跟蹤用戶活動等),則可以拒絕進行確認操作。 群組成員進行確認操作后,群組成員的OP對該網站SNS-C設置確認標志。如果后續用戶不 再信任該網站SNS-C,可以將確認標志修改為拒絕標志。用戶的OpenID提供服務器僅向經 過用戶確認的群組所在網站請求獲得群組信息。 圖11所示為本發明實施例十提供的一種用戶訪問應用網站服務器資源的系統架 構圖。其中應用網站服務器IO,社交網站服務器20和OpenID提供服務器30在實施例五、 實施例六及實施例八中均以描述,此處不再贅述。其中,APP處理單元107、 SNS處理單元 203及群組信息提供單元305兩兩相連,以實現應用網站服務器10、社交網站服務器20和 OpenID提供服務器30之間的交互。該系統架構主要用以實現本發明實施例一及實施例二 所提供的方法。 圖12所示為本發明實施例十一提供的一種用戶訪問應用網站服務器資源的系統 架構圖。其中應用網站服務器10,社交網站服務器22和OpenID提供服務器32在實施例 五、實施例七及實施例九中均以描述,此處不再贅述。其中,APP處理單元107、 SNS處理單 元223及群組信息提供單元325兩兩相連,以實現應用網站服務器10、社交網站服務器22 和OpenID提供服務器32之間的交互。該系統架構主要用以實現本發明實施例三及實施例
16四所提供的方法。 本領域普通技術人員可以理解實現上述實施例方法中的全部或部分步驟是可以 通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質中,該 程序在運行時,執行上述實施例方法中的全部或部分步驟。上述提到的存儲介質可以是只 讀存儲器,磁盤或光盤等。 顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精 神和范圍。這樣,倘若本發明的這些修改和變型屬于本發明權利要求及其等同技術的范圍 之內,則本發明也意圖包含這些改動和變型在內。
權利要求
一種向訪問用戶提供資源的方法,其特征在于,包括根據訪問用戶的身份標識到相應的服務器獲得所述用戶的群組信息;根據所述群組信息驗證所述用戶的群組成員身份;根據驗證結果向所述用戶提供資源。
2. 如權利要求1所述的方法,其特征在于,接受所述用戶通過瀏覽器使用開放身份標 識登錄,根據所述用戶的開放身份標識確定相應的開放身份標識提供服務器;從用戶的開放身份標識提供服務器獲得所述用戶的群組信息; 根據所述群組信息驗證所述用戶的群組成員身份; 根據驗證結果向所述用戶提供資源。
3. 如權利要求2所述的方法,其特征在于,所述用戶的開放身份標識提供服務器存儲 有用戶作為成員的群組所在網站的信息,所述從用戶的開放身份標識提供服務器獲得所述 用戶的群組信息的步驟具體為向所述用戶的開放身份標識提供服務器請求獲得用戶作為成員的群組信息; 在所述用戶的開放身份標識提供服務器向所述用戶作為成員的群組所在網站獲得簽名過的群組信息后,接收所述用戶的開放身份標識提供服務器轉發的所述簽名過的群組信息。
4. 如權利要求3所述的方法,其特征在于,在用戶首次被加入到網站的群組或者完全 從網站的群組刪除時,該網站向所述用戶的開放身份標識提供服務器發送群組事件通知;所述用戶的開放身份標識提供服務器根據所述群組事件通知獲知用戶作為成員的群 組所在網站的信息。
5. 如權利要求4所述的方法,其特征在于,在所述用戶的開放身份標識提供服務器接 收到群組事件通知后,向用戶提示進行確認;所述用戶的開放身份標識提供服務器僅向經過用戶確認的群組所在網站請求獲得簽 名過的群組信息。
6. 如權利要求3所述的方法,其特征在于,從所述用戶的開放身份標識提供服務器獲 得所述用戶的群組信息中包括用戶的開放身份標識、群組標識列表、包含時間戳的隨機數 以及簽名相關的信息。
7. 如權利要求2所述的方法,其特征在于,所述的從用戶的開放身份標識提供服務器 獲得所述用戶的群組信息為成員中包含用戶的群組所在網站的信息,所述根據所述群組信 息驗證所述用戶的群組成員身份具體為從所述群組所在網站獲取群組成員中包含用戶的 具體群組標識。
8. 如權利要求7所述的方法,其特征在于,通過HTTP POST消息承載的安全性斷言標記 語言協議從所述群組所在網站獲取群組成員中包含所述用戶的具體群組標識,在所述消息 體中的群組屬性斷言中包含所述的具體群組標識。
9. 如權利要求2所述的方法,其特征在于,用戶的開放身份標識提供服務器存儲有用 戶作為群組成員的群組標識,所述從用戶的開放身份標識提供服務器獲得的所述用戶的群 組信息中包含群組標識及其對應的網站信息;根據所述從用戶的開放身份標識提供服務器獲得的群組標識來確定所述用戶有訪問 權限的資源的所有者的用戶名鏈接,并返回給用戶瀏覽器;接收用戶通過一個用戶名鏈接獲得資源列表的請求;根據所述群組信息向群組所在網站請求驗證所述用戶的群組成員身份;在驗證通過后向用戶返回所述用戶名鏈接對應的資源列表。
10. 如權利要求9所述的方法,其特征在于,根據所述群組信息向群組所在網站請求驗證所述用戶的群組成員身份的步驟具體為根據資源授權設置記錄以及從用戶的開放身份標識提供服務器獲得的用戶的群組標識信息,得出所述用戶名鏈接對應用戶所授權的并且群組成員中包含所述用戶的群組標識;根據群組標識確定群組所在網站;向所述群組所在網站請求對所述用戶進行群組成員身份驗證。
11. 如權利要求io所述的方法,其特征在于,如果所確定的群組所在網站多于一個,則并發向各群組所在網站請求群組成員身份驗證;將群組成員身份驗證通過的群組對應的有訪問權限的資源的并集作為所述用戶可以訪問的資源列表,并返回給用戶瀏覽器。
12. 如權利要求IO所述的方法,其特征在于,根據得到的群組信息中的群組標識,依據非集中身份驗證互用系統協議執行自動發現,獲得群組所在網站提供的群組成員身份驗證服務地址,然后向該驗證服務地址請求群組成員身份驗證。
13. 如權利要求1至12任一項所述的方法,其特征在于,所述根據驗證結果向所述用戶提供資源具體為根據資源訪問授權記錄中的群組標識與從用戶的開放身份標識提供服務器獲得的群組信息中的群組標識進行對比,獲得用戶有訪問權限的資源列表或者這些資源所有者的用戶名列表,然后將資源列表或用戶名列表返回給用戶。
14. 如權利要求1至12任一項所述的方法,其特征在于,通過開放身份標識的屬性交換方法或者開放認證協議從用戶的開放身份標識提供服務器獲得所述用戶的群組信息。
15. 如權利要求1至12任一項所述的方法,其特征在于,按資源更新時間提供部分資源鏈接列表或用戶名鏈接列表。
16. 如權利要求1至12任一項所述的方法,其特征在于,所述的資源包括照片、視頻、日志、評論、網址收藏、呈現信息或位置信息。
17. 如權利要求1所述的方法,其特征在于,接受所述用戶通過單點登錄方式登錄,從用戶的身份認證服務器獲得所述用戶的群組信息;根據所述群組信息驗證所述用戶的群組成員身份;根據驗證結果向所述用戶提供資源。
18. —種應用網站服務器,其特征在于,包括資源數據提供單元,用于存儲資源;資源訪問授權設置單元,用于存儲資源訪問授權記錄,所述資源訪問授權記錄存儲群組標識與資源的對應關系;登錄單元,用于接收用戶的登錄信息,其中包括用戶的身份標識;應用網站處理單元,用于根據所述用戶的身份標識獲得所述用戶的群組信息,所述群組信息用于群組身份驗證,根據驗證結果向用戶提供資源。
19. 如權利要求18所述的應用網站服務器,其特征在于,所述的登錄單元接收用戶的登錄信息中包括用戶的開放身份標識;所述的應用網站處理單元根據所述用戶的開放身份標識從相應的開放身份標識提供服務器獲得所述用戶的群組信息,根據所述群組信息驗證所述用戶的群組成員身份,根據驗證結果及所述資源訪問授權記錄,向用戶提供所述資源。
20. —種社交網站服務器,其特征在于,包括群組信息提供單元,用于存儲用戶的群組信息;社交網站處理單元,用于當接收到驗證用戶的成員身份請求時,根據群組信息提供單元存儲的群組信息驗證用戶的成員身份。
21. 如權利要求20所述的社交網站服務器,其特征在于,所述社交網站處理單元還用于當接收到在群組中添加、刪除成員請求時,更新群組信息提供單元存儲的所述用戶的群組信息;當接收到查詢用戶的群組信息請求時,從群組信息提供單元獲取對應用戶的群組信息并返回給請求方。
22. 如權利要求21所述的社交網站服務器,其特征在于,進一步包括群組事件通知單元,用于當接收到所述在群組中添加、刪除成員請求時,社交網站處理單元觸發群組事件通知單元向所述成員的開放身份標識提供服務器發送群組事件通知。
23. 如權利要求21所述的社交網站服務器,其特征在于,進一步包括群組事件通知單元,僅當所述用戶首次被加入到群組或者徹底從群組中刪除時,向所述用戶的開放身份標識提供服務器發送群組事件通知。
24. 如權利要求20所述的社交網站服務器,其特征在于,進一步包括簽名單元,用于在所述社交網站處理單元向請求方提供用戶的群組信息時,對所述群組信息進行簽名。
25. 如權利要求20所述的社交網站服務器,其特征在于,所述的社交網站處理單元首先對請求中的用戶身份簽名進行驗證,驗證通過后才提供用戶的群組信息。
26. —種開放身份標識提供服務器,其特征在于,包括群組信息存儲單元,用于存儲用戶的群組信息;群組信息提供單元,用于當接收到獲取所述用戶的群組信息的請求時,返回所述群組信息存儲單元所存儲的所述用戶的群組信息。
27. 如權利要求26所述的開放身份標識提供服務器,其特征在于,所述的群組信息提供單元在接收到社交網站發送的群組事件通知時,根據所述群組事件通知更新群組信息存儲單元存儲的對應用戶的群組信息。
28. 如權利要求26所述的開放身份標識提供服務器,其特征在于,還包括群組事件確認單元,用于接收到所述群組事件通知后,向用戶提示進行確認,所述開放身份標識提供服務器僅向經過用戶確認的群組所在網站請求群組信息。
29. 如權利要求26所述的開放身份標識提供服務器,其特征在于,所述的群組信息存儲單元中的群組信息包含有用戶標識對應群組所在的服務器地址;所述的群組信息提供單元在接收到獲取所述用戶的群組信息的請求時,返回所述群組信息存儲單元所存儲的所述用戶標識對應群組所在的服務器地址。
30. 如權利要求26所述的開放身份標識提供服務器,其特征在于,所述的群組信息存儲單元中的群組信息包含有用戶標識對應群組所在的服務器地址;所述的群組信息提供單元根據應用網站服務器發送的身份認證請求中的用戶標識,確定所述用戶標識對應群組所在的服務器地址,向群組所在的服務器獲取群組驗證結果,并提供給應用網站服務器。
31. —種社會化網絡中訪問資源的系統,其特征在于,包括應用網站服務器,用于接受用戶通過瀏覽器使用開放身份標識登錄,從用戶的開放身份標識提供服務器獲得所述用戶的群組信息,根據所述群組信息驗證所述用戶的群組成員身份,根據驗證結果向所述用戶提供資源;開放身份標識提供服務器,用于存儲的群組信息,其中包括用戶作為成員的群組所在網站的信息,接收應用網站服務器獲取群組信息的請求,向所述用戶作為成員的群組所在網站獲得簽名過的群組信息,然后將所述簽名過的群組信息返回給應用網站服務器;社交網站服務器,用于存儲用戶的群組,在增加或刪除成員時,所述社交網站服務器向用戶的開放身份標識提供服務器發送群組事件通知。
全文摘要
本發明公開了一種向訪問用戶提供資源的方法,該方法包括步驟根據訪問用戶的身份標識到相應的服務器獲得所述用戶的群組信息;根據所述群組信息驗證所述用戶的群組成員身份;根據驗證結果向所述用戶提供資源。采用本發明實施例,在分布式的社交網絡環境中,通過由群組所在的網站對用戶的群組成員身份進行可靠的驗證,實現了共享資源的便捷性和安全性。
文檔編號H04L29/08GK101771677SQ200810242210
公開日2010年7月7日 申請日期2008年12月31日 優先權日2008年12月31日
發明者孫謙, 胡立新, 譚東暉 申請人:華為技術有限公司