基于OAUTH2.0高校统一身份认证的应用研究
2019-05-22胡贞华陈雪花何创新
胡贞华 陈雪花 何创新
摘要:随着高校信息化建设,已有许多信息化系统得到使用,但由于各系统资源不共享,每个系统的账户信息不通用,导致系统业务无有效的对接。通过发挥OAuth2.0认证协议和SSL加密技术的优点,既可以解决高校统一身份认证平台建设过程中与外部系统互通的安全问题,又能达到校内信息与资源共享的目的。
关键词:OAuth2.0;统一身份认证;授权;协议;
中圖分类号:TP311 文献标识码:A 文章编号:1009-3044(2019)06-0265-03
Research on the Application of Unified Identity Authentication in Universities Based on OAUTH2.0
HU Zhen-hua, CHEN Xue-hua, HE Chuang-xin
(Network and Educational Technology Center Shaoguan University, Shaoguan 512005, China)
Abstract: With the construction of information technology in colleges and universities, many information systems have been used, but because the system resources are not shared, the account information of each system is not universal, resulting in no effective interconnection of system services. By utilizing the advantages of OAuth2.0 authentication protocol and SSL encryption technology, it can not only solve the security problem of intercommunication with external systems in the process of building a unified identity authentication platform, but also achieve the purpose of sharing information and resources within the school.
Key words: OAuth2.0; uniform identity authentication; authorization; protocol;
1 背景
高校的信息化建设随着信息技术发展在不断前进,学校各级部门的应用系统越来越多。但由于各系统互相独立,账户资源不共享,导致用户在使用多个系统时,需要设置多个账户密码。通过建立一个统一的认证中心,保证账户数据的一致性,不仅能减少开发成本,同时也方便了用户,从而使系统间安全细粒度的业务集成成为可能。在OAuth2.0出现之前,高校的统一认证一般采用openid的集成方式,该方式通过一个共用的密匙来确认授权。但该方式容易被监控,安全性较低,不能够满足当今高校的业务应用需求。
OAuth2.0是当前互联网统一认证授权中应用最为广泛的,国内外知名的社交媒体,如twitter、facebook、sina等,都有用到OAuth2.0作为统一认证协议[1]。通过将OAuth2.0作为认证协议,建立统一的认证中心,保证账户数据的一致性,减少开发成本,使系统变的更加安全。
2 OAuth2.0认证授权技术
OAuth(开放授权)协议是一个开放标准,它是OpenID的一个补充完善,允许用户在不提供用户名和密码的情况下,让第三方应用能够访问自己在某一网站上的资源,如用户昵称,头像等信息[2]。
OAuth2.0认证授权技术是以原OAuth协议为基础,将重点放在开发的简易性上而进行的版本升级,但OAuth2.0不向下兼容OAuth1.0的协议。OAuth2.0通过允许第三方应用来代表用户获得授权,或者是资源所有者与HTTP服务商之间所授权批准的交互动作代表用户,同时为Web应用、桌面应用、手机和智能家居设备提供专门的认证流程。OAuth2.0定义了四个角色:资源拥有者、资源服务器、客户端、授权服务器,其工作流如图1所示[3]。
具体的工作流程是客户端先从资源所有者处获得授权,才能使用授权服务器进行身份验证。授权服务器检查从客户端那边收到的授权认可,如果检查无误,则将分配令牌给客户端。最后,资源服务器检验从客户端那边收到的令牌,若有效则返回客户端所请求的资源。
在OAuth2.0中,客户端需要先从资源所有者中获取授权码,然后再使用授权码与授权服务器交换访问令牌。如果从一开始就直接返回访问令牌,则会减少认证时间,提高认证性能,为什么OAuth2.0不这样做呢?原因是客户端与资源所有者通讯时采用重定向链接不是个安全的通讯通道,这种方式不适合进行加密数据的传输,也就不适合传输访问令牌。通过OAuth2.0的验证方式,可以保证授权码只能在客户端中起作用,并且在最后访问令牌的唯一持有方(客户端)保证令牌不被泄露。
3 OAuth2.0与统一身份认证的结合
3.1 账户存储形式变更
要将OAuth2.0与统一身份认证平台相结合,需要先转变现有的用户账户的数据存储形式,将用户的账户数据由一个统一的宿主平台负责存储,本地的系统只需要通过授权协议OAuth2.0即可使用[4]。用户只需要登录到宿主平台,即可分权使用所有校园业务系统。
3.2 选取可靠的宿主平台
选取一个稳定性好,安全性高的宿主平台十分重要,优秀的宿主平台能够额外提供一些能够帮助到信息化建设的应用。从用户的角度出发,还要考虑到高校各类业务系统的使用频率,建议将使用频繁使用的系统作为宿主平台的首选。
3.3 OAuth2.0开放授权
OAuth2.0的开放授权模式,实际上是通过从资源宿主平台中获取用户的身份验证信息和需要共享的数据资源,并且将此数据授权给其他系统应用。被授权的系统也拥有自己独有的数据资源,由用户决定是否将这些资源共享出去。例如,在网络教学平台中,因为一些原因,系统希望部分网络教学资源只保留在本地系统。此时通过开放授权协议,老师可以将其他系统上的教学资源共享到本地的网络教学平台上,此时学生可以通过网络教学平台,同时访问本地的教学资源与其他系统上的教学资源。
4 基于OAuth2.0统一身份认证的系统设计
高校各类系统业务系统应归集到统一身份认证平台中,各类业务系统的数据如用户身份、访问权限等信息均需通过统一身份认证平台进行管理与共享,并由统一身份认证系统来统一授权访问,实现用户数据统一管理。
4.1 统一身份认证平台的系统构架
各子应用系统在接入到统一认证中心前,需要向认证中心申请认证,提供应用名称、应用网址、应用类型等基本应用信息。因为OAuth2.0 核心流程所需要的数据均保存在认证服务器数据库中,所以每一个需要接入的子应用系统都需要在统一身份认证服务器注册用于标示该应用信息,包括appid(客户端id)、appsceret(App密匙)、appname(App名稱)、appuri(App回调安全url)等信息[5]。申请通过后,子系统管理员通过获取管理地址,管理接入参数与权限,接入流程见图2。
统一认证提供统一的用户资源数据,和统一的授权管理。每一个应用通过统一认证进行接入,统一认证中心是整个数字化校园平台的核心。统一身份认证中心利用LDAP目录数据库对高校用户、高校组织机构、信息资源等进行统一存储。统一身份认证平台工作流程如图3所示:
统一身份认证平台的工作流程如下:用户访问应用系统A,应用系统A定位到统一身份认证平台,用户将登录名、登录口令、设备名称等登录信息提交给统一身份认证平台。通过验证之后返回平台返回一个ticket给用户,并向应用系统A返回用户信息,由应用系统A授权用户访问。用户携带返回的ticket访问应用系统B,通过验证之后应用系统B授权用户,用户成功访问应用系统B。统一身份认证平台统一管理用户信息并进行统一认证与授权,避免了各应用系统单独授权。通过 webservice 松耦合的方式将单点登录、授权、认证等相对独立的功能连接起来,既保证各功能在平台上的独立性,又能提高整个统一身份认证平台的安全性。
4.2 基于OAuth2.0 机制认证的实现
第一步,获取 access_token 访问令牌。通过认证接口接入第三方应用时,可设置以下参数:需设置client_id,该值为应用在接入系统申请时,获得的appid; response_type为必须设置,值为token;接着设置重定向路径redirect_uri,需包含在申请时appuri的开始部分,否则参数无效;outer_type为非必须参数,用于启动如微博、QQ等类型的账号登录。
4.3 系统安全性设计
为保护客户端Cookie信息的有效性和安全性,需对Cookie内容进行有效加密。采用SSL技术在客户端和注册应用系统中加密通道,协助完成用户的身份认证,实现用户登录信息和用户登录凭证的加密传输,可有效地保证传输中安全。为加强用户密码的安全性,可以通过md5加盐加密算法进一步保全。首先,随机的生成一个16位的字符串,然后将这字符串和用户所输入的密码进行MD5加密,接着将这字符串按照一个规则放入到50位的字符串中,在验证时使用相同的规则将16位字符串取出来,对比 MD5 摘要,如果相同则密码正确。通过这种加密设计即使数据库泄露,用户密码也不会被查出来[6]。
5 结束语
在业务繁多的高校进行信息化建设是比较复杂的,基于OAuth2.0的统一认证可以集成开放平台的账号登录,实现校内外各个业务系统的统一认证。特别是在本地化定制的教学平台中,充分利用师生已有的微博、微信进行绑定认证,既可登录本地教学资源又可以充分利用互联网已有的学习资源,实现了信息与资源互通共享的目的。充分体现了基于OAuth2.0的统一授权认证能够为用户提供更好的服务和功能体验,帮助用户对各类应用进行分类权限管理。
参考文献:
[1] 王力猛, 陈鹏, 杨小军. OAuth2.0协议认证授权实现方案研究[J]. 电脑编程技巧与维护, 2015(10): 21-22, 43.
[2] 陈伟, 杨伊彤, 牛乐园. 改进的OAuth2.0协议及其安全性分析[J]. 计算机系统应用, 2014, 23(3): 25-30, 39.
[3] Hardt D. The OAuth 2.0 authorization framework[R].[s.l.]:[s.n.],2012
[4] 田嵩, 雷东升. 开放授权协议在云学习中的应用研究[J]. 数学的实践与认识, 2013, 43(4):108-116.
[5] 刘姚. 基于Spring和OAuth2.0的第三方授权框架[J]. 计算机技术与发展, 2017, 27(3):167-170.
[6] 赵素萍. MD5加密算法的改进及应用[J]. 现代计算机: 专业版, 2017(15):60-62.
【通联编辑:谢媛媛】