微服务平台之API授权( 二 )


微服务平台之API授权
本文插图
2、 路由规则配置
API发布到网关之后 , 通过Governor为网关配置路由规则 , 如下图所示:
微服务平台之API授权
本文插图
路由支持设置黑白名单、支持根据令牌桶算法对路由设置限流策略 。
并且 , 路由规则提供Spring Cloud Gateway常用的路由规则样例模板 , 包括rewrite-path-filter、hystrix-gateway-filter、prefix-path-filter等;
微服务平台之API授权
本文插图
3.精细化授权
1、订阅者管理
在实际业务场景中 , 往往会对网关API的授权控制提出比较细粒度的要求 。 例如 , 在下图所示场景中 , 订单管理系统的订单详情应用只允许调用产品管理系统发布的产品查询接口 , 而领券下单应用可以调用产品管理系统的产品查询接口、库存更新接口等 。
微服务平台之API授权
本文插图
在EOS微服务平台中 , 通过订阅者的模式来实现精细化的授权管理 。 每个需要授权的系统可以有多个订阅者 , 每个订阅者有各自的订阅凭证 , 订阅者与API建立授权关系 。
在Governor的网关API授权管理功能中 , 服务提供者系统可以为每个需要授权的系统创建多个订阅者 。
微服务平台之API授权
本文插图
说明:微服务平台并不限制订阅者必须与应用是一对一的关系 , 多个应用如果需要授权的API完全相同 , 可以使用同一个订阅者的订阅凭证 。
2、API授权
在API授权管理功能中 , 可以为每个订阅者授权访问不同的API , 如下图所示:
微服务平台之API授权
本文插图
4.服务调用与网关鉴权
1、系统内服务调用
此处以EOS微服务平台V8.1版本的后端项目及EOS服务的调用为例;
(1) 服务提供者StockManage在实现构件包中将已经实现的逻辑流或逻辑构件通过向导发布为EOS服务 , 在api构件包中生成EOS服务描述文件;
微服务平台之API授权
本文插图
(2)服务消费者ProductManage添加服务提供者的api构件包依赖;
com.primeton.eos com.primeton.eos.stockmanage.api 1.0.0(3)在服务消费者的实现构件包的逻辑流中利用EOS服务图元直接调用服务提供者的EOS服务 , 运行期逻辑流调用EOS服务时 , 服务提供者依赖的SDK会对服务调用进行访问控制 。
微服务平台之API授权
本文插图
2、 跨系统服务调用
(1)在Governor中将服务提供者ProductManage的EOS服务发布到所属系统的网关 , 并配置路由规则 , 然后为服务消费者OrderManage所属系统创建订阅者 , 并对其所需调用的EOS服务进行授权;
(2)服务消费者OrderManage添加服务提供者的api构件包依赖;
com.primeton.eos com.primeton.eos. productmanage.api 1.0.0(左右滑动查看全部代码)
(3) 服务消费者在boot构件包实现SDK的SDKApiSubscriberProvider接口 , 返回的ApiSubscriber需要包含订阅凭证 , 跨系统调用接口时 , 订阅凭证会自动被SDK的RestTemplate和Feign拦截器添加到请求头中;


推荐阅读