Android平台下基于OAut省略0协议的三方认证技术研究与实现_徐丽仙
计算机时代2014年第12期
·19·
Android平台下基于OAuth2.0协议的三方认证技术研究与实现
徐丽仙
(扬州市职业大学,江苏扬州225009)
摘
要:三方认证协议OAuth不会让第三方涉及到用户名和密码等用户私密信息,在第三方不需要使用用户名和密码
的情况下就可以得到用户的访问授权,具有简单、安全、开放等特点,在实际中得到广泛应用。该协议已经成为开放资源授权的标准。文章以最新的OAuth2.0版本为对象,研究了其认证过程,并在Android平台上以腾讯微博为例实现了相关功能。
关键词:OAuth2.0;认证过程;Android;腾讯微博中图分类号:TP309
文献标志码:A
文章编号:1006-8228(2014)12-19-03
Researchandimplementationofthreepartycertificationtechnology
basedonOAuth2.0protocolontheAndroidplatform
XuLixian
(YangzhouPolytechnicCollege,Yangzhou,Jiangsu225009,China)
Abstract:ThethreepartyauthenticationprotocolbasedonOAuthwillnotallowthethirdpartytobeinvolvedinuser'ssecretinformationsuchasusernameandpassword.Ithasthecharacteristicsofsimple,safety,openingandwidelyusedinpractice.Ithasbecomethestandardofopenresourceauthorization.Inthispaper,theauthenticationprocessbasedonthelatestversionofOAuth2.0isresearched.TherelatedfunctionsarerealizedonTencentmicro-blogontheplatformofAndroid.Keywords:OAuth2.0;authenticationprocess;Android;Tencentmicro-blog
0引言
随着互联网技术的发展,各种社区论坛、电子商务、微博等应用也来越多。这些应用都需要通过用户名和密码进行身份验证登录,一个人可能拥有多个用于登录不同应用的用户名和密码,这容易混淆和遗忘。当前普遍采用OAuth协议解决这样的问题,OAuth协议为开放平台提供具有安全性和开放性的用户资源授权和身份认证的标准。该协议通过服务提供方进行用户身份认证,即在作为第三方的应用程序中利用服务提供方的用户名和密码验证登录到该应用程序,而第三方无权知晓其密码等信息,在保证安全性的同时,减少了繁琐的认证过程。本文研究OAuth2.0协议相关技术,并应用该协议在基于Android的应用系统中实现其功能。
OAuth2.0协议从客户端的多样性考虑,提供授权码、资源拥有者密码证书、客户端私有证书、断言证书、刷新令牌等多种方式获取访问令牌,而1.0只有用户授权流程一种方式。1.1OAuth2.0认证过程中的角色
在安全认证过程[2]中主要有服务提供者(ServiceProvider)、用户(User)、客户(Consumer)等角色。
服务提供者,指的是如腾讯、新浪、网易等一些提供OAuth平台的网站,它们需要用户名和密码确认用户身份才能获取受限制的一些共享文件等资源。
用户,是服务提供者相关网站的用户名和密码的拥有者。用户可以将网站上对外不公开的相关私人信息在一定的限度共享给其他用户网站。
客户,即需要访问用户信息的第三方应用程序,主要指前面提及的Web应用程序、桌面应用程序和手机中的Android、Ios等移动应用程序。客户如要取得相关资源必须首先要得到授权。
这三者间的处理过程如图1所示。
在此过程中,当用户向第三方(客户)请求服务时,第三方必须交由服务提供者,由服务提供者再向用户进行身份验证,
1OAuth2.0协议
OAuth(OpenAuthorization)即开放授权协议[1],是一种采取简单和标准方式从Web、移动和桌面等应用进行安全认证的开放协议。它是一种安全机制,主要用于第三方无需使用用户的用户名与密码就可以申请获得该用户在服务提供方的资源授权。其当前版本2.0与1.0不兼容,1.0协议每个Token需要加密,2.0采用http协议,具有更高的安全性。
收稿日期:2014-9-18
作者简介:徐丽仙(1978-),男,江苏扬州人,硕士,讲师,主要研究方向:嵌入式系统,Android系统开发。


