需求痛点

在这互联网高速发展的时代,企业业务系统多、渠道广,如何管理内外部调用端系统具有极大的挑战。
  1. 数量方面:API网关需要对各端应用统一管理,例如对企业自身很多的前端应用,包括不限于web应用、移动APP、小程序,甚至第三方各端的应用进行管理,确保各应用有序、合规调用服务。
  2. 安全方面:API网关需要对应用进行安全管理,例如对用户权限和接口访问控制进行限制,防止恶意攻击和数据泄露等安全问题。
  3. 监控方面:API网关需要对应用调用API进行实时监控,收集、分析和展示服务性能和用户行为等数据,为优化服务提供有力支持。
  4. 治理方面:API网关需要对应用请求流量进行治理,包括流量控制、限流、熔断、降级等措施,以确保后端服务的可靠性和稳定性。

基于上述挑战,Apinto 网关提出应用管理概念,统一管理应用及其生命周期。应用作为业务通讯的发起者角色,始终贯穿着整个调用链,Apinto网关对应用请求的流量进行鉴权认证,并对其服务治理,同时还对其监控告警,统计应用调用情况。

功能介绍

Apinto网关的应用管理提供了对API的身份认证和访问控制功能。在Apinto网关中,应用是调用API的主体,每个应用能够自定义属性和添加转发时的请求头部信息,作为API被调用时的附加信息。同时Apinto为应用提供了四种鉴权方式: ApiKeyAkSkJwtBasic,能对API进行访问控制。更细化一层,还能够对鉴权配置标签信息,用于区分是应用下的哪个鉴权。
 
当用户调用API的请求通过了某个应用的鉴权,可以将该应用认为是API的调用方,应用的相关信息也会被赋予该请求。此外,Apinto的流量策略、访问策略等服务治理功能,能够对特定应用生效。结合策略和应用,也能够从应用的维度对API进行限流等访问控制。

配置步骤

接下来使用Apinto网关的控制台来演示如何配置上游服务、API以及应用。

步骤一:配置上游服务

这一步中配置了静态服务,请求超时时间配置为1000ms并上线至test_apinto集群。

备注:上游服务配置的节点为官方示例接口,该接口会返回请求的信息。

步骤二:配置API

步骤二配置的示例api使用了上一步的服务,请求路径为/demo_api,接着上线至test_apinto集群。

步骤三:配置应用

步骤三新建了一个名为demonstratetion_app的应用,自定义属性app_namedemonstratetion_app。并且转发请求的头部携带上app_namedemonstratetion_app

步骤四:配置应用的鉴权

在这一步中,为应用新建一个鉴权,类型为apikey,并且鉴权永不过期。

配置说明:当请求头部有Authorization: demo_apikey时通过鉴权。

步骤五:调用API

这里使用eolink的apikit进行演示,调用上线至test_apinto集群的api,请求路径为/demo_api,请求头不携带鉴权信息。可以从下图的请求结果看到返回了403。

而这次在请求头部中携带Authorization: demo_apikey,可以看到请求返回内容中确实携带了应用的头部信息。

总结

Apinto网关开箱即用,整个过程仅用2个小时就能快速入门,至于其他功能后续再进行研究!

喜欢或感兴趣的小伙伴们赶紧去下载安装体验吧!

为了支持Apinto团队提供更好的开源体验,记得fork一下噢。

开源地址:https://github.com/eolinker/apinto

背景介绍

Apinto是一款高性能、可扩展、易维护的API网关。

Apinto网关基于GO语言模块化开发,5分钟极速部署,配置简单、易于维护,支持集群与动态扩容,企业级开箱即用。Apinto除了提供丰富的网关插件外,还将提供监控告警、用户角色等企业插件,同时支持自定义网关插件和可扩展企业插件,满足我们企业的定制化需求。

Apinto支持代理外部流量,转发给内部服务,也支持内部服务之间的通信代理。

API网关:开源Apinto网关-应用管理篇相关推荐

  1. .net core 微服务之API网关 开源中间件 Ocelot 笔记

     一夫当关万夫莫开 一:源起: 当我们的应用不再是单体架构时,微服务将原先单体下的功能组件分割后,产生了许多个微服务,实际上我们还是以前那样的操作,访问服务接口,达到我们的目的,而这次不过是换成了ht ...

  2. Istio 大咖说第 7 期直播预告:基于 Envoy/Istio 的云原生 API 网关——开源项目 Hango 的设计与实现...

    讲师简介 韩佳浩,网易数帆资深研发工程师,主导 Hango 网关开源研发及设计,负责网易数帆轻舟 API 网关集团内部大规模落地及产品化建设.具有三年网关相关研发及大规模实践经验. 话题介绍 云原生架 ...

  3. 云原生网关开源、自研、商业化三位一体战略背后的思考

    *作者:如葑 阿里巴巴三位一体战略解读之云原生网关开源.自研.商业化,目前云原生网关已正式商业化,旨在为用户提供更可靠的.成本更低.效率更高的符合K8s Ingress标准的企业级网关产品,更多详情将 ...

  4. 【Blog.Core开源】网关自定义认证鉴权与传参

    书接上文,上回咱们说到了<[Blog.Core开源]网关统一集成下游服务文档>,已经将多个下游服务统一集成到了网关里,并且也把接口文档Swagger给集成了,那今天就说一下认证和鉴权相关的 ...

  5. [微服务]API 路由管理--Gateway网关

    Gateway网关 Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Re ...

  6. 微服务最强开源流量网关Kong

    前言 在微服务架构中,由于系统和服务的细分,导致系统结构变得非常复杂, 为了跨平台,为了统一集中管理api,同时为了不暴露后置服务.甚至有时候需要对请求进行一些安全.负载均衡.限流.熔断.灰度等中间操 ...

  7. 波士顿机器人 开源_波士顿APIStrata重点介绍API与开源项目之间的链接

    波士顿机器人 开源 今年的API策略和实践 (称为APIStrat)将于11月2-4日在波士顿举行,它在整个活动期间都运行着强大的开源组件,这毫不奇怪. 成功的API策略往往不是贡献新的开源项目,就是 ...

  8. 06-手机登录token生成容联云短信验证用户认证和网关整合(网关做统一权限认证)

    一.需求分析 二.msm模块(发送验证码) 1.准备工作 (1)注册容联云账号,使用验证码服务 传送门 由于容联云个人无法认账,但是免费给我们提供8元的短信配额,我们可以免费使用,非常给力,感谢容联云 ...

  9. Nignx 网关 和 GateWay网关

    一.Nignx(engine x) 1.概念 是一个高性能的Http和反向代理web服务器,特点是占用内存少,并发能力强,用C语言写的. 2.作用 ①服务的负载均衡 ②反向代理服务器 ③作为web服务 ...

最新文章

  1. Lintcode42 Maximum Subarray II solution 题解
  2. 操作系统服务:logging日志记录模块
  3. Tensorflow笔记(基础):批处理(batch_normalization)
  4. ATL--创建简单的ATL之dll工程,添加“ATL简单对象”类的参数说明
  5. 微博同步ValidatorException
  6. anaconda必须安装在c盘吗_Anaconda及tensorflow、pytorch安装记
  7. win10系统无法删除文件提示找不到该项目解决办法
  8. linux多个网卡丢包,linux系统双网卡绑定及丢包问题
  9. UG编程加工之非切削移动
  10. aptio2018设置u盘启动_2018年U盘装系统bios设置U盘启动方法介绍
  11. 投资组合报告-马科维茨模型
  12. Centos中IP地址的动静转换
  13. 【论文阅读】POI2Vec: Geographical Latent Representation for Predicting Future Visitors
  14. dsp28335电机控制板资料 永磁同步电机有传感器三闭环foc控制
  15. RSS是什么意思?(转)
  16. SQLite数据库的下载及安装步骤
  17. window服务如何通过程序如何打开谷歌浏览器并登陆指定网站_亚马逊如何看listing销量,亚马逊如何看销量排名...
  18. python之flask_sqlalchemy的使用及详解
  19. 博士生们每天科研时间是多久?
  20. CEF3:与 JavaScript 整合(二)

热门文章

  1. Firefly-RK3399安装环境
  2. 当前发布的sku信息中包含疑似与商品无关的字段,请核实修改后重新提交
  3. 分享86个PHP源码,总有一款适合您
  4. 什么是单点登录?怎么样实现单点登录
  5. 求大神帮忙看一下这张水卡校验码是什么分析一下算法谢谢!!!!
  6. python练习:重新排列句子中的单词
  7. 卧槽!可拆卸电池手机,又要杀回来了
  8. 【微信小程序】图片上传组件“mp-uploader“(weui)
  9. 红米k20 android版本,小米红米K20系统版本是多少?
  10. Node.js:pretty-ms转换毫秒为人类可读的字符串