开源API网关APINTO:如何限制应用访问哪些API?

发布时间 2023-03-22 21:22:14作者: 大枫林
公司的业务系统比较多,还有第三方的系统,为了保障后端系统稳定以及业务的安全,今天研究了一下APINTO网关的服务治理——访问策略。
要满足想要的业务场景效果,还涉及到APINTO网关的应用。
官方介绍了应用管理:提供了对API的身份认证和访问控制功能,应用即调用API的调用方系统。
当用户调用API的请求通过了某个应用的鉴权,可以将该应用认为是API的调用方,应用的相关信息也会被赋予该请求。此外,Apinto的流量策略、访问策略等服务治理功能,能够对特定应用生效。结合策略和应用,也能够从应用的维度对API进行限流等访问控制。
废话不多说,直接上干货。
第一步:配置带有鉴权信息的test应用
使用apikey鉴权方式,调用API时需要在请求头带上参数名为Authorization,值为admin1234
第二步:目前不配访问策略,先验证test这个应用能访问testapi这个API。
结果:test应用带鉴权信息可以访问testapi,因为系统默认是应用可以访问任何api的。
第三步:创建访问策略,禁止test应用访问testapi这个api,然后改一下规则为允许再进行验证。
官网描述了详细使用及介绍,Apinto的访问策略不仅仅支持IP黑白名单,也支持应用访问的黑白名单,应用与API间的黑白名单,应用与后端系统的黑白名单,十分灵活且强大。
Apinto访问策略原理:配置筛选条件,用来筛选出符合条件的API请求,即筛选流量,按照配置访问规则执行允许访问或拒绝访问生效范围。
举个例子,筛选流量选择应用A,生效范围API1、API2、API3,访问规则执行允许,发布上线后,网关只允许应用A请求API1、API2、API3三个接口,其他任何接口都不允许请求。
访问规则:设置成允许,生效范围内即可被视为白名单,生效范围以外的不允许放行请求;设置成拒绝,生效范围内即可被视为黑名单,生效范围以外的允许放行请求。
若访问规则为允许,不添加生效范围,筛选流量默认放行;若访问规则为拒绝,不添加生效范围,筛选流量默认拒绝。
若开启继续匹配访问策略,网关会继续匹配低优先级包含全部或部分筛选条件的策略,常常应用于某IP被视为全局白名单,仅对部分业务API是白名单,其他业务属于黑名单场景。
总结:
Apinto的访问策略用两个字描述——强大,领导也实践了一下,直夸访问策略可以满足公司任何授权访问的业务场景。
好东西必须关注,好了,省得大家去搜,直接提供github地址。
开源地址:https://github.com/eolinker/apinto