一种向访问用户提供资源的方法、服务器和系统的制作方法

文档序号:7929694阅读:185来源:国知局
专利名称:一种向访问用户提供资源的方法、服务器和系统的制作方法
技术领域
本发明涉及社会化网络,尤其涉及分布式社会化网络中一种向访问用户提供资源的方法、应用网站服务器、社交网站服务器、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日
发明者孙谦, 胡立新, 谭东晖 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1