问题:
公司的业务系统比较多,各种业务系统彼此调用,还有调用了第三方厂商的OpenAPI,现在公司面临着无法监控这些系统的调用关系以及调用量统计。
更为关键的是,这些系统的鉴权不统一,每次开辟一条业务线,新上线系统必须与其他系统联调,新加盟的经销商同样面临着这些问题,对研发和运维来说,效率极其低下。
Apinto网关提出应用管理概念,统一管理应用及其生命周期。应用作为业务通讯的发起者角色,始终贯穿着整个调用链,Apinto网关对应用请求的流量进行鉴权认证,并对其所请求的流量进行服务治理,同时还对其监控告警,统计应用调用情况。
Apinto网关中的应用管理完美解决公司管理各业务系统所面临的问题,这也是领导赞美Apinto网关的其中一个方面,那接下来就把最近研究的Apinto的应用管理模块详细介绍一下。
配置:
2.1 应用列表
网关通过请求流量中的鉴权信息,来识别是哪个应用,应用必须上线到指定的网关集群且是未禁用状态时才真正生效。
网关对匿名应用和其他应用处理逻辑:
当没有应用上线(包括匿名应用),此时不需要鉴权,所有请求被放行。
当有应用上线,此时匿名应用开启上线,此时可鉴权可不鉴权,若鉴权失败,则走匿名应用逻辑。
当有应用上线,此时匿名应用开启上线,且给匿名应用配置了访问策略,仅允许匿名应用访问生效范围内的API,其他API请求都需要应用鉴权。
当有应用上线,此时匿名应用禁用下线,此时必须要做鉴权
2.2 配置带有鉴权信息的test应用并上线
2.3 下线匿名应用,测试test应用调用情况
下线匿名应用并且禁用掉,那么不带test这个应用的鉴权,调用testAPI这个API是调不通的报403,看结果:
在请求头加上test应用的鉴权信息,应该可以成功调用,看结果:
测试结果如预期一般,必须带有鉴权信息且是正确的鉴权才可以调用API。下回研究应用的监控调用统计,到时候分享给大家。
总结:
对于公司来说,必须监控谁安全合规调用了业务API,什么时段的调用量。好东西必须关注,好了,省得大家去搜,直接提供github地址。
开源地址:https://github.com/eolinker/apinto
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net