如何做好 API 网关的服务安全设计?
Posted twt企业IT社区
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何做好 API 网关的服务安全设计?相关的知识,希望对你有一定的参考价值。
API网关设计特点
一个优秀的网关设计应该具备以下特性:
架构先进性,基于新一代微服务架构,可以无缝支持Service Mesh。
简单易用,基于Docker化部署,以及K8S的编排,操作简单,易扩展。
智能告警,集成日志分析平台,可自定义查询界面,可以界面化进行用户行为分析,并可以自动智能告警。
自带WAF功能,可以实现态势感知、主动防御、调查和响应一体化的安全策略。
性能卓越,由于是基于LUA开发,性能单台服务器可以实现10w并发。
云原生,支持多租户、实现自动物理隔离。
自带安全认证中心,可以实现API Key、Basic Auth、OAuth2、JWT的安全认证。
自带日志分析监控平台,基于大数据实现的日志分析平台,主要开源组件包含Flume、Elasticsearch、Grafana。
通过流量复制和流量回放,实现在线仿真生产环境业务测试。
API网关的安全防护设计
API网关中一个比较核心的功能是安全,这个安全主要是外部用户调用网管内的API,通过API网关实现用户认证、安全、WAF、流量控制等功能。
客户的需求一般主要包含以下一些插件:
✔ OAuth2认证,通过外部认证中心(开源Kong中没有实现)
✔ MD5验签
✔ Kafka日志插件
✔ 针对API全局流控插件
✔ 接口缓存插件
✔ 灰度发布插件
✔ WAF插件(IP拦截、SQL注入等)
✔ RBAC插件
✔ Dubbo&gRPC转换插件
✔ 流量复制和流量回放
组件中认证和安全防护是API网关最重要的一个功能,API网关是所有流量入口的一道重要防线,为企业内的业务系统服务保驾护航。
下面主要从两个方面来阐述下,如何实现用户认证和API鉴权以及安全防护:
(一)Oauth2安全认证是互联网非常成熟的认证,结合API网关可以实现统一的身份认证和授权的统一管理。
主要的步骤说明如下:
第一步:获取Token
1、消费者填写用户名和密码,在界面进行登录,消费者携带用户名和密码以及client_id以及client_secret发送给Kong网关;
2、Kong网关负责将请求代理转发给后端应用;
3、后端应用将用户名和密码发送给统一身份认证中心进行认证,认证成功后返回True;
4、认证成功后通过client_id、client_secret、provision_key发送给Kong获取Token;
5、Kong根据请求的header头参数,进行参数验证;
6、验证通过,将Token返回给后端应用;
7、后端应用将Token返回Kong;
8、Kong将Token返回给消费者。
第二步:验证Token,并请求后端资源服务
1、消费者携带Token,请求需要访问的资源服务;
2、Kong将请求的Token进行验证;
3、验证通过,代理转发到后端服务,如果后端服务是多实例的,可以负载分发到后端实例;
4、后端实例根据请求的参数,返回后端服务资源;;
5、后端服务资源内容由Kong转发给消费者。
第三步:获取刷新Token
1、消费者将client_id和client_secret发送给Kong进行获取refresh_token;
2、Kong根据请求参数进行验证,验证通过将refresh_token返回给消费端。
关注点:
1、认证中心需要调用API网关Token 服务才能获取Token,因为API网关需要记录Token值,才能在二次调用的时候进行验证。
2、API鉴权中心和API网关进行分离,实现产品设计中的松耦合特性。
(二)通过WAF组件、日志分析模块、告警模块、日志监控模块可以实现事前预警、事中防御、事后调查和分析。
1、事前预警
2、事中防御
3、事后调查
API网关的重要场景
1、打通企业云上云下本地应用,重塑业务架构。
2、对外开放企业能力,建设企业API生态圈,实现API能力变现,整合内外服务能力,快速响应业务变化。
3、保证API应用安全,实现态势感知、主动防御。
4、实现数据共享和传递,数据价值变现。
企业的架构总是在不断的进行演进,从集中式SOA架构、分布式微服务架构、到云原生的服务网格,业务是企业架构演进的动力,无论架构如何变化,API网关做为微服务的流量统一入口,为调用提供安全、高效、可视化的监控保障。相信越来越多的企业在践行CI/CD的过程中会越来越重视API网关,通过API网关打通云上、云上、企业内部、第三方,实现企业内部服务赋能,敏捷响应企业的业务变化。
原题:《API网关与服务安全最佳实践》,首发于「派拉Paraview」 如有任何问题,可点击文末阅读原文,到社区原文下评论交流 觉得本文有用,请转发或点击“在看”,让更多同行看到
资料/文章推荐:
http://www.talkwithtrend.com/Topic/9607
下载 twt 社区客户端 APP
与更多同行在一起
高手随时解答你的疑难问题
轻松订阅各领域技术主题
浏览下载最新文章资料
或到应用商店搜索“twt”
以上是关于如何做好 API 网关的服务安全设计?的主要内容,如果未能解决你的问题,请参考以下文章