主要功能

服务网关实例

服务网关实例支持私有或共享两种类型。私有表示仅实例创建者所在组织内的用户可见可用;共享则表示系统内所有用户可见可用,即任何组织的用户都可以查看共享实例,并向其注册服务。此外,服务网关也支持服务发布(即注册)审批功能。开启审批后,发布到该服务网关的服务均需admin用户进行审批。Admin用户审批通过后,服务注册成功。

服务发布

服务发布者将自身的服务能力封装成接口,发布到服务网关,发布后即可通过该接口访问后端服务。

接口组

为了更好的将若干个共同对外提供服务的接口抽象为一个整体,实现众多接口间的逻辑隔离,并对其进行统一管理,提出了接口组的概念。一个接口组中可以包含多个接口,服务发布者在创建接口时需为接口选择所属的接口组。在接口组中,服务发布者可实现对接口的生命周期管理,如增删查、上下线等操作。

接口套餐

管理者可根据业务需要,通过打标签的方式,将当前发布到网关实例的API接口进行分类,以制作不同的套餐,订阅者可根据定制的套餐订阅一系列接口。

接口

APIApplication Programming Interface,应用程序编程接口)是服务网关的核心,主要包括基本信息、前后端的请求路径和参数以及请求相关协议。如果发布到开启了服务发布审批功能的网关实例,则需要admin用户审批,审批通过后,发布成功。

接口版本管理

用于实现接口的版本管理和灰度发布功能:

超时重试

一种最常见的容错模式。在服务调用过程中,主要解决当服务出现建立网络连接或响应延迟时,不用无限等待的问题,网关可以根据事先设计的超时时间中断调用,及时释放关键资源。

代理缓存

针对很短时间内同一用户的频繁调用,可以不执行后端业务,直接从网关返回缓存信息,减少后端服务的访问压力。适用于短时间内有大量重复请求的场景。

流量控制

可以按照秒、分钟、小时、天等单位对请求接口的频率进行限制。

安全控制

1.      访问策略

服务发布者为接口配置IP过滤,允许或拒绝某IP地址/IP地址段的访问该接口。

2.      认证策略

服务发布者为接口配置认证策略,配置后,请求该接口时需要通过认证后才能访问后端服务。

服务发布者为接口配置typeBasic Auth的用户名密码认证方式。安全系数较低。

密钥认证将以key=value的形式出现在代码的Headers中。服务网关需要使用key-auth认证插件来支持这种场景。服务发布者需要在服务注册阶段,向网关提供一段自定义的KEY,用作后续接口的权限校验,并随着注册接口的响应返回服务。后续所有请求该服务的流量都需要在header或者query_string中带有此段API-KEY,才能通过网关认证。由于Key是固定不变的,因此安全系数较低,适用于机器之间的认证。

又称“HMAC认证”,需配合服务订阅使用。服务发布者选择AK/SK认证策略发布接口后,由服务消费者生成Access KeyAK)和SecretKeySK)。服务消费者访问接口时需要通过签名的方式完成认证请求,可以防止请求内容被篡改。这种方式可以避免传输SecretKey,并且在大多数情况下签名只允许使用一次,避免了重放攻击。安全系数中等,适用于人机认证。但每次请求都需要进行签名,相对比较麻烦。

token二次认证,需配合服务订阅使用。服务发布者选择JWT认证策略发布接口后,由服务消费者生成Access KeyAK)和SecretKeySK),根据AKSK获取一个临时的tokenJWT),之后即可使用此临时token作为调用其他业务接口的凭证。临时token有有效期限制,可以在一定程度上降低token泄露引起的安全风险。在有效期内,服务消费者应该将临时token缓存起来,以便重复使用。当token过期时,应该重新获取新的临时token。安全系数相对较高。

应用集成

通过应用集成功能,可对多个服务进行编排,创建自定义的应用,并做为一个接口发布。该功能适用于可复用应用套件的定制与发布。

后端服务

指在后台运行的实际的后端服务。这些服务可能是通过企业应用部署的应用,也可以是客户原有的业务系统组件。通过后端服务,将所有需要使用的业务接口添加、导入并管理起来。

服务订阅

凭证管理

服务消费者对AK/SK进行封装,只需要指定凭证名称,系统即会自动生成一对AK/SK,用于在访问接口时完成认证。

订阅接口

服务消费者通过订阅功能,可以获得对本组织私有网关实例,和系统共享网关实例中已发布接口的使用权限。仅支持订阅绑定了AK/SKJWT认证策略的接口服务。订阅后需admin用户审批,审批通过,服务消费者即可使用该接口服务。

图-1 服务发布与订阅

 

订阅套餐

订阅者可根据管理者定制的套餐筛选、订阅一系列接口。