前言

作为IT厂商,我们在做金融行业的方案时,关注金融行业的政策性文件很重要。本文基于人行发布的API安全规范进行解读。解读过程中,笔者会以红帽的3Scale(API治理方案)举例说明。需要指出的是,本文只解读了规范中的主要技术需求点。此外,本文仅代表作者的个人观点。

根据Gartner的API管理魔力象限,API治理的市场是个蓝海市场。但已经初步行了四个象限。红帽的3Scale处于领导者象限。

在这份报告中,Gartner对3Scale的评价:

  • 红帽在应用基础架构市场中占有重要地位。它现在已经集成了一个功能强大的API管理平台,其中包括多种应用程序基础架构产品,包括Red Hat Fuse(集成平台),AMQ(消息队列),OpenShift(PaaS平台)和Red Hat SSO(单点登录解决方案)。

  • 自上一个魔力象限以来,红帽已经提高了3Scale的可行性,并赋予其咨询机构和经过验证的全球技术支持结构。3Scale为Red Hat提供了功能性的API管理平台和敏锐的市场理解。到目前为止,此次收购已证明是成功的。

  • Red Hat为3Scale API Management提供全面且有针对性的产品策略。此外,Red Hat还通过其Linux软件集合程序,为NGINX开源版本提供支持,3Scale API Management使用NGINX作为API Gateway。





规范发布


2020-02-13 发布,中国人民银行发布:商业银行应用程序接口安全管理规范。接下来,本文介绍一下本规范的主要内容以及对IT行业的意义。

首先查看本本标准的使用范围,规定的是银行对外互联网应用的安全标准;适用对象为:参与银行API服务的金融机构等。

具体内容查看附录A,可以看到,本标准适用于银行外部API,也就是所谓的南北向流量。

规范介绍了和API相关的一些概念,这对于IT技术人员而言比较容易理解。


IT视角解读:

我们经常提API经济、API管理。API管理保护应用程序的边界,控制应用程序如何使其自身可用于企业内外的其他应用程序。它允许消费者通过直接的门户浏览可用的API,并为他们要使用的API订阅适当的使用计划。然后,在运行时,它使我们能够识别、控制甚至为不同类型的API使用者开账单。它确保所有使用者都是可识别的,并且可以在流量,访问控制等方面进行单独管理。它还确保底层实现与最终暴露API的方式保持抽象,并在此过程中执行任何必要的路由和转换。


主流API管理工具通常将数据平面和管理平面分开。而所谓的API“金银铜”策略,最终是作用到了API网关上(例如NGINX上),如红帽的3Scale。





商业银行API

银行外部API目前是为了银行输出自身的金融服务能力与IT能力。外部机构则通过银行互联网渠道获取银行的API。

如下图所示,银行可以API直接连接或SDK间接连接的方式对外提供API能力输出。这个时候,银行的API就需要具备如:认证授权、流量监控、服务组合等治理能力。


应用集成方式有服务端对服务端、移动端对服务端两种。

  • 服务端对服务端可以通过直接调用银行API(REST、SOAP),或使用服务端SDK来实现。

  • 移动端对服务端的集成,也包括直接调用API和调用移动端应用SDK两种。


IT视角解读:
在API管理方面,有内部API和外部API。内部API是东西向流量、南北向流量。东西向可以通过SpringCloud、Istio微服务治理框架来管理;南北向流量是严格意义上的API治理,可以通过类似红帽3Scale工具实现。两者对比如下:






接口规范




移动端对服务端的集成,只要是一些公开信息查询、公开服务查询等。

银行应用分为A2、A1两种安全级别。A2主要通过SDK方式调用,A1主要通过API方式直接调用。

IT视角解读:

API 的种类,可以按照按照是否是 Web 类的分发。在第三平台中,互联网中以 Web API 居多,而 Web API 又大致分为两类:

  • JAX-RS: 是用于创建轻量级 RESTful Web 服务的 Java API。

  • JAX-WS: 是使用简单对象访问协议(SOAP)的基于 XML 的 Web 服务的 Java API。


3Scale默认纳管REST协议的API,针对SOAP协议,需要红帽Fuse进行协议转换。Fuse和3Scale可以无缝集成,协同工作。


规范中认为SDK的调用方式比直接API调用安全。那么,两者的区别在哪呢?

API和SDK相似,因此可能很难确切地了解两者之间的区别,或者何时应该选择使用其中一种。SDK经常包含一个或多个API并帮助实现它们,这是造成混淆的另一个可能原因。但是,API并不总是具有随附的SDK。

尽管API是专门为执行允许应用程序之间通信的特定功能而构建的,但SDK是一个集成平台,具有一组用于创建这些应用程序的工具。API促进并允许应用程序之间的交互,但是仅凭它们还不足以创建全新的应用程序。换句话说,如果您要添加一些特定功能,则API可能更适合您的项目。如果您要开始一个全新的项目,则SDK将提供启动和运行所需的工具。

红帽3Scale主要提供的是API层面的权限控制。





接口安全设计



关于接口交互安全的描述如下:

IT视角解读:

API管理方案,如3Scale的应用身份认证有Application key的方式,如下图示例:

也可以通过Token方式认证(JWT)。但双因子认证的方式,模式是没有的,需要额外进行配置对接,适配的复杂度不是很高。





安全部署



IT视角解读:

安全部署针对3Scale是具体的功能,如流量控制、认证授权等。这些功能是原生可以实现的。

流量控制如下图:





运维监测


IT视角解读:

API的服务状态,是3Scale的原生功能。例如查看API调用状态:

查看API的使用率:





异常检测


IT视角解读:

流量监控、故障隔离,超过法制调用失败、熔断措施等,3Scale原生自带。

设置阈值五次/小时:



设置完毕以后,当从客户端对API发起的请求超过每小时5次的设置后,再次发起调用将会出现报错:Limitsexceeded




总结

从规范主要技术点进行分析,结论如下:

1.目前3Scale+Fuse的组合,能够满足规范中的大部分技术点。

2.规范中关于暴露SDK的方式,这需要应用开发商在应用开发过程中考虑API治理。3Scale无法直接管理SDK,但可以管理应用开发商开发出的API。

3.关于双因子认证,需要额外配置和对接。

4.报文转换、业务系统集成需要引入红帽的Fuse,例如将SOAP转化为REST。


©著作权归作者所有:来自51CTO博客作者mob604756f145d3的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. ING的容器云之路
  2. 【论文解读】LGN: 基于词典构建的中文NER图神经网络
  3. 【论文解读】UniLM:一种既能阅读又能自动生成的预训练模型
  4. 贝叶斯网络之父Judea Pearl力荐、LeCun点赞,这篇长论文全面解读机
  5. 具有调节变量的中介效应程序和数据, 独家解读相关结果
  6. 单机训练速度提升640倍!独家解读快手商业广告模型GPU训练平台Pers
  7. AI首次实现秒级“自主判案”!阿里达摩院颠覆性研究成果技术解读
  8. 源码解读:KubeVela 是如何将 appfile 转换为 K8s 特定资源对象的
  9. 全方位解读数砖的 Delta Engine

随机推荐

  1. 用maven创建android的项目。
  2. Centos 安装 android sdk
  3. android shape记录
  4. Android input keyevent
  5. android studio gradle编译时的jar冲突错
  6. android Rokon游戏引擎源码分享
  7. android textview 部分文字加颜色并可点
  8. Android图片圆角 用简单的方法实现
  9. android终端模拟器运行命令可以进行adb c
  10. Android(安卓)高手进阶教程(十三)之----A