微服务平台之API授权


微服务平台之API授权
本文插图
转载本文需注明出处:微信公众号EAWorld , 违者必究 。
前言:
微服务平台的安全控制包括登录认证、用户授权、服务调用安全等多个方面 , 其中 , 服务调用安全又分为系统内服务调用认证、系统间服务调用认证 。
EOS微服务平台提供基于EOS SDK的访问控制机制和基于网关的API授权鉴权机制 , 用于实现同一系统内部服务调用和跨系统服务调用的安全认证 。
目录:
【微服务平台之API授权】1.服务安全
2.API发布到网关
3.精细化授权
4.服务调用与网关鉴权
5.总结
1.服务安全
微服务之间的调用 , 可以分为系统内服务调用、系统间服务调用 。 在EOS微服务平台中 , 同一系统内的微服务之间可以直接互相调用 , 不同系统间的微服务必须通过网关进行API发布、授权、访问鉴权、路由转发才能实现调用 。 EOS微服务平台的服务调用安全认证依赖于平台提供的基于EOS SDK的访问控制机制和基于网关的API授权鉴权机制 。
微服务平台之API授权
本文插图
1、 同一系统内的服务调用认证
在EOS微服务管理平台(Governor)中可以创建系统 , 系统有唯一的系统编码、系统凭证 , 每个微服务应用都必须属于某个系统 。
对于同一系统内的微服务 , EOS微服务平台允许服务之间互相调用 , 通过微服务应用依赖的EOS SDK实现服务调用认证 。
(1)微服务应用配置文件application.properties中添加服务调用认证所需的配置;
参数说明如下:
微服务平台之API授权
本文插图
系统凭证、系统编码可以在Governor的系统管理功能中获取 , 如下图所示:
微服务平台之API授权
本文插图
微服务应用配置文件示例如下:
微服务平台之API授权
本文插图
(2)服务调用方发起服务调用请求时 , SDK会将系统编码、系统凭证放到请求头;
(3) 服务提供者收到调用请求时 , SDK会拦截所有的请求 , 检查请求头中的X-EOS-SourceSysKey系统凭证、X-EOS-SourceAppCode应用所属系统编码 。
如果系统编码、系统凭证与本系统一致 , 并且根据X-EOS-SourceAppCode检查调用方IP确实属于已注册的应用实例组的实例 , 则说明调用方是本系统内的其他应用 , 允许继续访问当前服务 , 否则拒绝访问 。
2、跨系统的服务调用认证
对于系统间的服务调用认证 , EOS微服务平台要求服务提供者必须将API发布到网关、配置路由规则、对调用方进行订阅授权 , 调用方获得授权之后调用网关上已发布的API 。 EOS微服务平台将基于网关的API授权鉴权与基于EOS SDK的访问控制机制相结合 , 实现跨系统的服务调用认证 。
接下来的内容将会对跨系统的服务调用认证进行详细介绍 。
2.API发布到网关
1、API导入与发布
在EOS微服务平台中 , 一个系统部署一套网关 , 通过Governor的网关API发布功能 , 可以将服务提供者的对外API发布到所属系统的网关上 。
(1)将API导入网关;
选择系统内的应用及实例组 , 通过微服务实例的swagger在线接口描述显示所有API , 选择需要发布的API , 并为发布后的API访问路径设置前缀 , 进行导入;
微服务平台之API授权
本文插图
(2) 导入后默认状态为未发布 , 选择需要发布的API , 进行批量发布 。


推荐阅读