问题:

  1. 公司的业务系统比较多,各种业务系统彼此调用,还有调用了第三方厂商的OpenAPI,现在公司面临着无法监控这些系统的调用关系以及调用量统计。
  2. 更为关键的是,这些系统的鉴权不统一,每次开辟一条业务线,新上线系统必须与其他系统联调,新加盟的经销商同样面临着这些问题,对研发和运维来说,效率极其低下。
    Apinto网关提出应用管理概念,统一管理应用及其生命周期。应用作为业务通讯的发起者角色,始终贯穿着整个调用链,Apinto网关对应用请求的流量进行鉴权认证,并对其所请求的流量进行服务治理,同时还对其监控告警,统计应用调用情况。
    Apinto网关中的应用管理完美解决公司管理各业务系统所面临的问题,这也是领导赞美Apinto网关的其中一个方面,那接下来就把最近研究的Apinto的应用管理模块详细介绍一下。

配置:

应用列表

在这里插入图片描述

网关通过请求流量中的鉴权信息,来识别是哪个应用,应用必须上线到指定的网关集群且是未禁用状态时才真正生效。
网关对匿名应用和其他应用处理逻辑:

  1. 当没有应用上线(包括匿名应用),此时不需要鉴权,所有请求被放行
  2. 当有应用上线,此时匿名应用开启上线,此时可鉴权可不鉴权,若鉴权失败,则走匿名应用逻辑
  3. 当有应用上线,此时匿名应用开启上线,且给匿名应用配置了访问策略,仅允许匿名应用访问生效范围内的API,其他API请求都需要应用鉴权
  4. 当有应用上线,此时匿名应用禁用下线,此时必须要做鉴权

配置带有鉴权信息的test应用并上线

[图片]

下线匿名应用,测试test应用调用情况

[图片]

下线匿名应用并且禁用掉,那么不带test这个应用的鉴权,调用testAPI这个API是调不通的报403,看结果:
[图片]

在请求头加上test应用的鉴权信息,应该可以成功调用,看结果:
[图片]

测试结果如预期一般,必须带有鉴权信息且是正确的鉴权才可以调用API。
下回研究应用的监控调用统计,到时候分享给大家。

总结:

对于公司来说,必须监控谁安全合规调用了业务API,什么时段的调用量。
好东西必须关注,好了,省得大家去搜,直接提供github地址。
开源地址:https://github.com/eolinker/apinto

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐