微信UnionID 技术在图书馆用户认证与管理中的应用
--以国家图书馆统一用户管理系统为例

2019-05-11 07:27谢丰
滁州职业技术学院学报 2019年1期
关键词:开放平台国家图书馆账号

谢丰

(国家图书馆信息技术部,北京100081)

一、微信服务在国家图书馆中的应用

随着移动通信技术的发展,移动互联网技术越来越多地应用于人们的生活。根据第40次《中国互联网络发展状况统计报告》的调研结果显示,截至2017年6月,我国手机网民规模达7.24亿,较2016年底增加2830万人。网民使用手机上网的比例由2016年底的95.1%提升至96.3%。

微信是腾讯公司在2011年1月发布的一款社交软件,它具有移动互联网随时、随地、随身和开放、互动、分享的特点。目前已有许多企业和机构将微信公众平台作为自己的营销工具或是客服平台,实现广告信息的精准投放或是为自己的用户提供各式各样的服务。第40次《中国互联网络发展状况统计报告》的调研结果显示,截至2017年6月,使用率排名前三的社交应用均属于综合类社交应用。微信朋友圈作为即时通信工具所衍生出来的社交服务,用户使用率为84.3%,在社交应用中排名第一[1]。

根据《2017年微信数据报告》的统计数据显示:2017年9月微信的平均每天登陆用户达9.02亿人次,微信公众号月活跃账号350万,公众号的月活跃粉丝数达7.97亿[2]。

作为人们获取信息主要途径之一的图书馆,一直致力于探索如何更好地通过这些信息化手段为大众提供优质的服务。微信公众平台支持消息推送和信息交互,在开发中也能够提供标准的消息接口,这就使图书馆为微信用户提供服务成为可能,各类图书馆也顺应时代潮流,在自身移动服务开展较为成熟的情况下,加入了各种微信相关服务。借助微信将图书馆移动端阅读平台上的资源推荐出去,让读者享受到了免费阅读资源。现在大部分图书馆都有了微信公众号,在微信的公众号中输入检索内容“图书馆”,截至2018年初,可以检索到1814个公众号。公共图书馆中,关注人数较多的图书馆微信公众号包括:国家图书馆、上海图书馆、浙江省图书馆、湖南省图书馆、广州市图书馆、杭州市图书馆、上海浦东图书馆等。高校图书馆中如:华中科技大学图书馆、天津大学、辽宁大学、厦门大学、武汉大学、湖南大学等的关注人数也很多。

国家图书馆目前共有6个部门开设了11个微信公众号,每个公众号都初具规模,而且都有自己的特色服务和固定关注人群。

以“国家图书馆官方微信公众号”和“掌上国图微信公众号”为例:

(一)“国家图书馆”官方微信公众号

国家图书馆为进一步提高精细化服务水平,利用新媒体服务方式满足读者多样化的信息需求,于2015年4月23日第19届“世界读书日”正式推出“国家图书馆”官方微信公众号。国家图书馆”官方微信公众号提供了:自定义菜单服务、图文信息推送和关键词回复三种服务模式,三种模式互为补充。

(二)“掌上国图”微信公众号

“掌上国图”官方微信公众号是国家图书馆移动服务微信公众号,是国家图书馆拓展移动服务形式的新尝试。公众号于2014年11月2日正式上线运营,2015年4月28日通过微信认证。该公众号提供了自定义菜单服务、图文信息推送两种服务模式。“掌上国图”微信公众号关注人数4.7万,向读者推送图文消息共计163条,推荐图书、听书等300余册。

二、微信相关的认证技术

(一)基于OAuth2.0 协议标准构建的微信授权登录系统

开放的授权协议OAuth2.0,主要功能是实现了开放云平台下的跨域认证和第三方授权登录。相比过去的认证协议,主要特点是能够允许第三方系统获取用户受保护的资源,同时在上述过程中对用户的用户名、密码等信息加以保护。作为目前流行的云平台开放授权协议,OAuth2.0协议广泛运用与微信、QQ、微博等社交软件的第三方授权登录功能中[3]。

以下以一套完整的数据流为例,介绍一下基于OAuth2.0协议标准构建的微信授权第三方登录应用系统的认证过程。如下图所示:

1、用户使用微信账号密码登录应用系统,应用系统要求已经集成了微信第三方登录功能。

2、应用系统向微信开放平台发起授权请求,并向读者打开授权页面。

3、用户确认授权登录,微信开放平台重定向到应用系统,并传递临时授权码code。

4、应用系统通过接口,将授权码code,连同此前向微信开放平台所申请的该应用系统的appid和appsecret,一并发给微信开放平台。

5、微信开放平台返回给应用系统接口调用凭证access_token。

6、如果应用系统可以获取有效的接口凭证,就会返回给用户登录成功的信息。

在上述的微信账号第三方登录功能中,微信开放平台根据应用系统所传递的appid和appsecret由应用系统向微信开放平台单独申请,不同的应用系统,这两个参数是不一样的,会返回一套参数,其中包含该应用下唯一的标示OpenID,这是该用户微信账号在这个应用系统登录的唯一标示。

(二)微信OpenID 与UnionID 技术在认证中的应用

微信服务的运营者通过自己的微信开放平台创建各种微信相关应用(如移动应用、网站应用和公众帐号等),向微信用户提供服务。

作为应用对用户的识别码,针对每个应用,微信开放平台都会为用户产生该应用下唯一的标示OpenID,用户在会通过OpenID与微信开放平台进行认证,认证通过后才可以使用应用。当一个用户在同一个微信开放平台下拥有多个应用时,将会拥有多个OpenID,仅凭OpenID无法将同一用户在多个应用间进行关联,无法做到不同的应用系统之间跨系统登录认证。

为此微信推出了用户在同一微信公众平台下的唯一标示UnionID,通过UnionID,可将同一微信开放平台下的多个应用进行用户信息整合,方便微信服务运营商对于用户的管理。

UnionID实现跨系统认证的过程如下图所示:

1、应用系统A和应用系统B都是微信开放平台X下的应用,用户1经过授权,可以单独登陆A、B这两个应用系统。

2、用户1通过微信登录应用系统A成功,微信开放平台X返回给A的票据中包括了用户1在本应用系统的用户1的唯一标示OpenID和用户1在微信开放平台X下的唯一标示UnionID。

3、此时,用户1访问应用系统B,应用系统B如果能获取到用户1登录A的票据信息,就可以获取到包括用户1在A的OpenID和微信开放平台X下的UnionID。由于应用系统B也是开放平台X下的应用系统,其所获得的UnionID与应用系统A是一致的。由此应用系统B可通过UnionID判定用户1的身份是有效的,允许用户1直接以登录状态访问应用系统B。

4、应用系统C不是微信开放平台X下的应用,用户2经过授权,可以单独登陆B、C这两个应用系统。

5、用户2通过微信登录应用系统C成功,微信开放平台X返回给C的票据中包括了用户2在C应用系统的用户唯一标示OpenID。

6、此时,用户2访问应用系统B,应用系统B如果能获取到用户2登录C的票据信息,可以获取到包括用户2在应用系统C的OpenID,但OpenID与用户2在应用系统B的OpenID不一致,又没有UnionID作为识别信息,应用系统B会要求用户2重新登陆验证身份。

三、微信Unicode 认证技术在国家图书馆用户认证中的应用

目前,很多图书馆都拥有自己的微信开放平台以及相关应用,但同一图书馆的微信应用在用户管理方面大多各自为政,拥有自己的一套用户信息。同时,各图书馆也都有一套自己的读者用户管理系统,且不能实现跨系统或跨平台的用户认证与统一管理。为了能够实现这一目标,一方面需要规划实现用户的统一管理,另一方面,需要实现跨系统的用户认证。

以国家图书馆为例,国家图书馆统一用户管理系统在2017年的升级过程中,通过国家图书馆统一的微信开放平台申请了属于自己的官方微信(简称“官微”)公众号,在此基础上基于OAuth2.0协议标准实现了微信、QQ、微博的第三方账号登录,第三方账号可以作为独立账号存在并登陆统一用户管理系统集成的国家图书馆数字化服务,也可以与原有账号(包括读者卡和注册账号)进行绑定后使用第三方账号登录。

同时,国家图书馆早已拥有自己的官方微信公众号,并且公众号已经与核心系统Aleph实现功能接口对接,实现了通过微信实现在借图书的查询等功能,实现这些功能需要用户将微信账号和自己的读者卡通过国家图书馆的官方微信公众号进行绑定才能实现。与国图微信公众号绑定的用户,将会把读者卡卡号、密码、微信账号唯一标示等信息存储在公众号的管理端;而未绑定账号的用户将只保存微信账号唯一标示。其中,微信账号唯一标示中包含了微信公众号的唯一标示OpenID和微信开放平台的唯一标示UnionID。

通过对两个系统的账号进行比对会发现,统一用户管理系统中的微信绑定读者卡用户与国家图书馆官方微信公众号绑定读者卡的账号在很大程度上存在重合。两套系统如果单独通过自己微信公众号的OpenID进行登录认证,则各自登陆没有问题,而两套系统之间进行切换则需要用户重新登陆。用户数据管理方面,两套应用系统也是各自独立管理,无法做到数据的实时统一。为解决上述问题,两个应用系统计划增加对用户UnionID的识别,借此打通两个应用系统之间的用户登录认证,并实现用户数据统一管理。

具体实现中,从登陆流程看,包括以下情况:

(一)官微公众号下的读者卡用户登录统一用户系统

1、当官微公众号的用户未绑定读者卡账号时,用户从微信公众号登录,将获得从微信开放平台返回的用户UnionID信息,并通过接口提交给统一用户管理系统进行比对,统一用户管理系统如果找到了匹配的UnionID,则返回用户的信息,用户可以成功登陆;如果没有发现匹配的UnionID,统一用户管理系统将视其为新用户,需要用户授权该微信账号注册为统一用户管理系统中的用户,此时用户的信息将存在于统一用户管理系统中。

2、官微公众号的用户已绑定读者卡账号,微信公众号在登录过程中,从微信系统中获取到返回的用户UnionID信息,公众号将UnionID、读者卡号、密码通过接口传送给统一用户管理系统进行查询比对,一旦数据比对成功,统一用户将会把将相关信息返回给微信公众号,用户可以成功登陆。

(二)统一用户管理系统中已有的读者卡号登录官微公众号

1、读者卡用户已经关注过官微公众号,用户从统一用户系统提供的微信第三方登录通道登录,从微信获取到返回的UnionID,通过接口将其发送给微信公众号,公众号比对UnionID是否存在,如果比对成功,则说明用户已经关注过公众号,微信公众号调用统一用户系统接口,获取该用户在统一用户系统中的相关信息。

2、读者卡用户未关注过官微公众号,用户从统一用户系统提供的微信第三方登录通道登录,从微信获取到返回的UnionID,通过接口将其发送给微信公众号,如果比对之后发现UnionID不存在,说明用户未关注过公众号。需要用户对公众号进行关注,完成关注后,微信公众号调用统一用户系统接口,获取该用户在统一用户中的相关信息。

四、结语

UnionID技术解决了微信第三方平台登录和用户管理中的账号关联问题,丰富了图书馆的读者登录认证与用户信息管理方式,这项技术目前已经在国家图书馆的用户管理中得到应用,为读者提供了更加便捷的服务。通过推广工程多年的工作,统一用户管理系统的国家中心库集成了全国近70家图书馆的890多万实名认证和办卡用户,并且现在也已实现了微信第三方登录功能,未来也将会把UnionID技术应用于和推广工程相关的一系列微信公众号的用户对接中,为全国各地公共图书馆的用户登录认证及统一管理提供基础保障[4]。

猜你喜欢
开放平台国家图书馆账号
国家图书馆出版社重点图书
国家图书馆出版社重点图书
基于百度地图开放平台的导航电子地图课程实践教学研究
彤彤的聊天账号
施诈计骗走游戏账号
基于在线开放平台的混合式课堂教学模式构建与实践
国家图书馆藏四种古籍编目志疑
我国社交媒体账号的对外传播之道——以“人民日报”Facebook账号“特朗普访华”议题报道为例
基于AliGenie语音开放平台的传统家居智联网解决方案
中国国家图书馆藏西夏文《不空羂索神变真言经》考论