论文部分内容阅读
随着微服务架构的流行,面临着如何隔离内部服务与外部服务,如何保障后台服务安全的问题。人们提出API网关(API gateway)的概念,封装系统内部结构,为客户端提供定制的REST/HTTP应用程序接口(API,Application Programming Interface),用来处理所有的业务功能。在微服务架构和API网关的实际应用中,所有的客户端和服务端都通过API网关接入微服务,需要做到在开放自身服务的同时,又能做到有控制的开放服务权限;需要开放某些想共享的服务给特定的用户使用;需要控制开放服务权限的时间;需要在接收到服务请求时对服务发送方身份的验证以及对服务请求内容的真实性和正确性的验证。为了满足以上需求,本文对API网关服务访问认证进行了研究,提出基于动态令牌的API网关服务访问认证策略。其次,对API网关服务访问认证系统的需求进行分析以及详细设计。最后,完成访问认证系统的开发工作。本文做出的研究与工作内容如下:(1)服务访问认证策略提出一种适用于API网关的服务访问认证策略,在用户级别上,通过授权机制和动态令牌,对服务请求方的身份进行双重的认证,包括身份的认证和服务调用权限的认证。改进传统的基于角色的访问控制模型,采用用户元素替换原有的角色元素,对用户的身份授权以及对用户所能访问的服务权限授权。此外,在用户不需要服务权限时,及时回收服务权限。(2)密钥和动态令牌生成方案通过Snowflake雪花算法生成随机ID,作为用户访问服务的密钥,保证密钥的独一无二性。通过给每个密钥分配不同的服务权限的方式,进行用户的授权和服务的授权,建立用户和服务之间的联系。基于MD5算法,针对于HTTP请求的属性值,利用改进后的MD5算法加密流程进行加密得到动态令牌,供服务请求者在发送HTTP请求时携带以及接收方在接收到该请求时对动态令牌蕴含的相关参数内容的正确性和完整性的验证。(3)基于动态令牌的服务访问认证系统基于提出的服务访问认证策略,在实验室项目的实际应用中,对访问认证系统进行系统功能需求分析和总体设计,从系统总体的需求出发,划分系统的功能模块,得到系统的架构图和功能模块图,介绍各个模块的功能需求,最后对系统的数据库进行概念设计,逻辑设计以及结构设计,实现了用户的动态授权和访问认证。该系统满足实际项目的需求,解决了出入参数名称类型不统一的问题,减少了开发人员之间很多无效的沟通,同时也减轻了服务器的压力。并且,有效的解决了微服务架构下API网关中服务的安全问题,在用户级别上有控制的开放共享自己的服务,更好的控制共享服务的权限,保障了服务的安全性。