本发明属于网络安全领域,尤其是涉及一种高安全性api调用方法。
背景技术:
1、认证系统、单点登录系统和提供了集中式的网络访问管理系统,这些系统支持用户认证和单点登录、基于策略的授权以及对网络应用程序的访问审计,这些系统的使用使得使用工具和框架进行身份验证成为一种常见做法和行业标准。
2、应用程序(例如,部署在同一域中的移动应用程序/web应用程序)不能直接调用托管在api网关上的应用程序编程接口或api(例如,rest服务或soap服务等),因为apigateway这类工具中缺少内置的身份验证和授权功能。api网关和api网关本身托管的服务依赖于外部实体或层,例如siteminder或其他一些工具或框架来对用户进行身份验证。
3、移动应用程序和网站都有一个身份验证系统,可以保护所有进入后端或中间件系统的调用请求,认证系统拦截请求并检查数据类型,这些数据只有在用户登录认证系统后才能获得,如果未找到用户信息,则请求将被转发到身份验证系统,该系统会要求用户使用正确的凭据登录系统,在这种情况中,如果不在api网关前面创建身份验证层,就无法使用api网关,管理和维护成本较高,并且身份验证在api接口前,攻击者可以绕过身份验证层,并访问未授权的资源或执行未经授权的操作,当活跃用户数量增加时,会导致网关性能降低。
技术实现思路
1、有鉴于此,本发明旨在提出一种高安全性api调用方法,以期解决上述部分技术问题中的至少之一。
2、为达到上述目的,本发明的技术方案是这样实现的:
3、一种高安全性api调用方法,包括如下步骤:
4、s1:用户使用用户凭证登录到计算机应用程序,计算机应用程序将凭证提交给认证系统;
5、s2:用户登录成功后,认证系统创建会话,并将会话详情返回给计算机应用程序;
6、s3:计算机应用程序调用受认证系统保护的保护服务;
7、s4:保护服务调用api网关,并创建带有用户凭证、认证系统cookie的属性字符串;
8、s5:使用私钥加密属性字符串,得到加密的oauth访问令牌,并通过保护服务,将加密的oauth访问令牌,返回给计算机应用程序;
9、s6:计算机应用程序存储、缓存oauth访问令牌。
10、进一步的,当用户需要再次登录到计算机应用程序时执行如下步骤:
11、s7:计算机应用程序发送携带oauth访问令牌的请求;
12、s8:api网关收到请求后,使用私钥解密oauth访问令牌,解绑字符串,提取所有属性字符串;
13、s9:api网关将从oauth访问令牌中提取出的认证系统cookie以及用户凭证注入发送给后端的服务处理请求中;
14、s10:后端服务调用认证系统,检测认证系统cookie以及用户凭证是否仍然有效;
15、s11:认证系统向后端服务提出响应,确认认证系统cookie以及用户凭证是否仍然有效:
16、若有效,后端服务将响应发送至计算机应用程序,用户连接建立;
17、若无效,后端服务向api网关发送错误报告,api网关向计算机应用程序发送访问授权被拒绝的错误信息。
18、进一步的,所述受认证系统保护的保护服务具体如下:
19、计算机应用程序在没有实际登录的情况下,调用保护服务时,用户将被重定向到身份验证系统,身份验证系统要求用户使用其登录凭据,并将用户登录到应用程序;
20、计算机应用程序还通过部署代理以及其他身份验证插件来拦截生成受保护服务的请求,并检查身份验证系统令牌、身份验证系统会话标识符以及身份验证系统cookie标识符是否存在且有效;
21、如果缺少认证系统令牌、认证系统会话标识符以及认证系统cookie标识符,则将请求重定向到认证系统。
22、进一步的,api网关接收请求后执行的的操作具体如下:
23、s801:用私钥解密oauth访问令牌;
24、s802:检查oauth访问令牌的有效性:
25、检查oauth访问令牌的过期时间戳,如果oauth访问令牌过期,api网关将向计算机应用发送访问授权被拒绝错误;
26、s803:解绑字符串并提取所有属性字符串;
27、s804:将提取的属性字符串与从计算机应用程序接收的纯文本值进行比较:
28、如果在比较期间任何值不匹配,api网关将停止进一步处理并向计算机应用程序发送访问授权被拒绝错误返回信息;
29、如果所有值都匹配并且oauth访问令牌有效,则api网关将请求路由到后端服务。
30、进一步的,在网络传输数据时,使用https协议,并通过tls/ssl协议对数据进行加密传输,当中间人进行攻击和窃听时,https发送被攻击警告。
31、进一步的,在后端服务中建立日志监控与异常警报服务:
32、使用json格式的文件,记录用户每次登录计算机应用程序的校验信息,以及计算机应用程序的运行信息;
33、根据计算机应用程序的使用频率设置检查阈值,当时间到达检查阈值时,后端服务对记录的校验信息与计算机应用程序的运行信息进行比对;
34、如果检测到不一致的信息,则向后端服务管理员发送警报,并暂止对相应用户提供服务。
35、相对于现有技术,本发明所述的一种高安全性api调用方法具有以下有益效果:
36、本发明所述的一种高安全性api调用方法,通过建立一种需要认证的应用安全地调用api的方法,不在api网关前面创建身份验证层,降低了管理和维护成本,并且让攻击者无法绕过身份验证层,保证了应用安全性,当活跃用户数量增加时,不会影响网关性能。
1.一种高安全性api调用方法,其特征在于:
2.根据权利要求1所述的一种高安全性api调用方法,其特征在于:
3.根据权利要求2所述的一种高安全性api调用方法,其特征在于:
4.根据权利要求2所述的一种高安全性api调用方法,其特征在于:
5.根据权利要求2所述的一种高安全性api调用方法,其特征在于:
6.根据权利要求2所述的一种高安全性api调用方法,其特征在于: