创建微服务过程中如何安全管理API

API经济和微服务

什么是 Microservice(微服务)架构

在公有云、私有云和混合云的应用程序环境中,采用微服务架构方式来开发和交付云应用已越来越多……

微服务架构风格就是以一系列小服务的方式开发一个应用, 每个小服务独立运行,并采用轻量级的API机制进行通信。这些服务都是围绕业务能力来构建,通过全自动部署工具来实现独立部署。这些服务,其可以使用不同的编程语言和不同的数据存储技术,并保持最小化 集中管理。

60%的新应用程序将使用支持云的持续交付和云原生应用架构来实现更快的创新和业务敏捷性

原因何在?

  • 基于业务能力分割和封装分解成小模块,易于管理

  • 松耦合,每个服务单独管理自己的变更,可以用不同的开发语言实现

  • 每个服务可以独立地按需扩展

  • 改善故障隔离

  • 每个服务可以独立开发和部署,实现最小部署时间,甚至不停机部署

  • 消除对技术堆栈的长期依赖

微服务架构建设的两个关键(运维与使用) 和三个面向(平台、方法、管控)

创建微服务过程中如何安全管理API

API 经济 --移动、创新、物联、云端、新渠道、转型

  • 为移动应用的整合与业务创新暴露APIs

  • 为合作伙伴提供APIs(Credit API, Drving HistoryAPIs)

  • 为扩展新的渠道提供APIs (微信,微博,云)

  • 以API形式重建企业架构

  • 为混合云应用提供API

  • 为打造开发者生态系统提供API

API 能力开放平台发展方向 – 成为超级入口

通过API把用户需求和开发者能力完美对接,满足移动时代,用户需求的碎片化和个性化,强调用户体验和混搭。 通过把不同的API融合进APP中从而可以提供用户无缝体验,可以选用最好的API实现,缩短开发时间,提高开发质量。

创建微服务过程中如何安全管理API

基于微服务和API的参考架构

创建微服务过程中如何安全管理API

创建微服务过程中如何安全管理API

自动从API的定义创建微服务

创建微服务过程中如何安全管理API

基于OpenAPI定义(Swagger)的API,自动、快速创建Node.js的微服务

API平台的选择和架构

构建API平台的几个关键

标准

  • API 定义标准化

  • API 流程标准化

安全

  • 全方位安全

  • 安全平台

  • 安全标准

整合

  • API 复合

  • 与应用系统集成

  • 快速暴露API

性能

  • API 网关的性能

  • 洞察的性能

平台的开发应该具一致性、明确性以及持久性,并关注两大用户群体:开发人员和最终使用者

创建微服务过程中如何安全管理API


API平台的系统环境

创建微服务过程中如何安全管理API

API平台需要提供API参与者所需要的各种工具

创建微服务过程中如何安全管理API

API Connect能力开发平台最主要特色:端到端完整API平台

  • 通过企业级的APIs和魏服务帮助企业数字化转型,是一个集API创建、运维、管理和安全于一体的端到端解决方案。

  • 简化企业记录系统的发现,实现 API 创建的自动化, 通过可视化拖拽和自动化识别创建API

  • 创建、运行并管理新的或现有的应用 编程界面 (API) 及微服务,并确保其安 全性,实现 Node.js 及 Java 微服务应用的统 一管理

  • 集成企业集群、管理和安全能力

  • 对不同粒度的API和API包提供安全管控

  • 先进的 API 调用分析

  • 可定制的、自服务的API开发者社区

  • 确保 API 整个生命周期的安全性与治理 ,API策略配置、管理和执行

  • 通过市场领先的网关为内部和第三方 开发人员提供自助式访问

开启你的API旅程

1、制定API战略和目标

  • 扩展新渠道,提高品牌认知度,开拓新的市场空间,协助企业业务转型

  • 实现更快的业务创新,促进利润增长

  • 紧密连接客户、员工、业务伙伴

  • 建立平台标准,实现标准化管理

  • 快速和合作伙伴集成

  • 提高客户满意度

2、梳理和整合企业服务和数据

  • API 发现和梳理

  • API和API安全标准

  • API最佳实践

3、安全、集成构建开放API系统

  • 选择API平台

  • 利用微服务整合暴露API

  • 通过ESB进行系统集成

4、分析、优化API平台,创造利润

  • 通过新的渠道创造利润

API平台的安全设计

API平台参考架构

创建微服务过程中如何安全管理API


API Connect 逻辑架构

创建微服务过程中如何安全管理API

基于Swagger的API描述是业界的实事标准

API定义过程需要明确API对应的实际服务、对外体现的技术规格(通讯协议、数据包格式、版本信息等)以及安全控制策略等方面的内容,并进行通过性测试验证。

创建微服务过程中如何安全管理API

API 的安全威胁

  • 安全是API系统最为关心的问题,通常在设计API系统的安全策略时,要考虑针对以下这些安全威胁的防护:

  • 应用程序(移动,网络,客户端应用程序,代理)API Key /Token和用户身份信息的窃取;

  • 不良行为者,无意的错误,和网络黑客所带来的拒绝服务(DoS);

  • 在应用程序和企业后端服务之间通信链路的网络窃听;

  • 重放攻击;

  • 通过应用程序和开发人员窃取更高权限;

  • 通过数据窃取和注入攻击获得敏感信息

  • 未经授权访问系统和数据

  • Man-in-the-middle攻击

  • 跨站请求伪造(Cross-site request forgery ,CSRF)是针对API比较常见的攻击。

针对你的API的敏感程度,选择不同的安全防护策略,下面是常用的API调用安全模式:

  1. 最基本的API Key /Secret 认证,网络传输采用SSL;

  2. 对API调用参数进行数字签名或Hash (e.g. MD5), 像AWS, Azure和高德地图API等都支持这种方法;

  3. 通过Oauth 2.0进行身份验证,常用在移动和社交API上,如微信和掏宝的API都采用这种方式;

  4. 数字签名+身份验证+流量控制,在上面2/3基础上,增加了流量的控制,如掏宝的一些交易API;

  5. 数字签名+身份验证+加密URL, 如微信的第三方登录API

  6. 数字签名+身份验证+加密URL+加密报文,这种API的调用系统开销较大,一般仅用在安全等级非常高的API.

API 安全– 多层次的全面防护

所以API系统应该创建一个API的安全架构,兼顾API消费者和API提供方的利益,并有效地防护上面提到的威胁。根据最佳安全实践“责任分开”的原则,在API系统的安全策略涉及以下几个层面的安全防护:

  • 准入控制。对API的调用者进行判断,确定其可以接入API平台。API平台提供身份认证,细粒度授权,数据安全和流量管控的机制来保证后端服务和数据能安全地暴露成API;

  • 企业的后端服务和数据平台要保证系统的高可用,风险管控和合规;

  • 防止信息篡改和交易抵赖。采用数字签名、数据包加密等方式来实现。应用APP要保护敏感数据和知识产权,并符合企业的身份认证、授权和审计的安全标准;

  • 应用开发人员应部署和配置API和门户的细粒度授权。

API系统提供的企业级安全防护能力通常包括:

  • 基于角色的访问控制(Role Based Access Control ,RBAC),在每一层实行“职责分离”,并保护敏感信息,包括API密钥,SSL证书,OAuth的令牌和审计日志等;

  • 采用开放标准如OAuth, SAML 和LDAP的APIs,用户,开发人员,系统管理员的身份认证;

  • 通过OAuth Token, APP Key 和RBAC策略来进行 细粒度授权管理;

  • 利用SSL/TLS来保护通讯链路层的安全;

  • 利用日志,监控和审计进行安全分析;

  • 对XML, JSON, 和DoS攻击防护。

创建微服务过程中如何安全管理API

建议采用部署在DMZ的专用API安全网关

API 安全– 服务管制

当API暴露给企业外部特别是移动应用以后,API流量更具有爆发性和不可测性,建立多纬度、细粒度的服务管制策略,是保证后端核心应用系统平稳运行以及关键服务不被阻断的关键,同时Policy管控需兼顾配置灵活、性能高效、多维控制的特点。具体包括以下方面:

  • 细粒度授权: 通过细粒度授权确定访问控制,粒度可以是一个API或者一组API,单个用户、一组用户角色、某个IP或IP网段。

  • 多维控制: 可以针对API的不同服务指标如吞吐率、响应时间、出错率、系统资源利用情况等进行服务水平管理,可以在系统峰值时保护后端的业务系统,也可以在给定时间和频率执行服务策略。同时针对不同的API(如核心API调用,一般API调用等)定义不同的API管制策略。

  • 配置灵活:API管理界面提供了不同API、API 组上的流量定义机制,复杂的服务策略可以通过API网关的SLM Action来实现。

  • 多种保护手段:整合 SLM 和 路由策略 可以实现智能的过载保护,当过载时激活备用的服务器。服务规则对给定的请求在到达阀值得情况下执行相应的动作:

- 报警,

- 拒绝等多的请求,

- 缓存超过阀值的请求以阀值向后端发送请求。

  • 流量控制:对使用方调用API的数量、频度进行控制。一方面通过对交易量的控制保障系统的运行稳定性;另一方面也可以通过对不同使用方采用不同的流程控制控制,达到对不同使用方的差异化管理。流量控制主要有如下的模式:

1、调用总量控制。调用总量控制在两个方面体现:

  1. 按照使用方控制。对每个使用方规定每天最高可调用API的总量。

  2. 按照应用控制。确定具体的一个合作方/应用,针对具体API的每日调用上限。

2、调用频度控制。

按照应用控制。确定具体的一个合作方/应用,针对具体API的调用频度。

3、并发数量控制。

4、按照应用控制。确定具体的一个合作方/应用,针对具体API的调用频度。

API网关网关和平台建设难点

如何选择API网关

  1. 安全认证过的平台: 通过企业级安全认证的应用层级防护平台;

  2. 性能优异: 作为微服务和能力开放的入口,不要成为性能瓶颈,有效支持突然爆发的流量;

  3. 强大、标准、开放的安全能力: 提供全方位、多纬度的安全防护,支持大量安全标准;

  4. 简单易用: 升级、安装、扩展、配置简单方便;

  5. 与API管理平台紧密集成: 使API的定义、访问、策略控制方便、标准;

  6. 提供对API调用追踪、调试的能力: 方便端到端地监控API的调用情况;

  7. 强大的日志、审计、流控空能: 有可视化的面板;

  8. 可客户化和扩展: 具有一定的;

  9. 灵活的部署方式: 和后端服务尽可能近,可部署云平台、DMZ;

  10. 强大的集成、可维护性: API网关是DevOps的一个关键环节。

创建微服务过程中如何安全管理API

API网关功能

消息安全

  • OWASP Top 10 威胁防护

  • XML / JSON 拒绝服务攻击

  • XML / JSON schema 校验

  • 内容过滤

  • 数字签名和验签

  • 字段或报文加密

流量控制和优化

  • SSL & TLS offload

  • 流量控制

  • 服务级别管理(SLM)

  • 缓存

  • 基于内容的路由

  • 智能负载均衡

用户访问控制

  • 基于角色的访问权限控制

  • 支持多个用户库

  • 支持多因子认证

  • 会话管理

  • Web & 移动单点登录(SSO)

创建微服务过程中如何安全管理API

IBM API Gateway DataPower 360度防护 能力开放平台

创建微服务过程中如何安全管理API

企业迈向API经济数字化转型的挑战

1、全渠道集成和支持

  • 支持各种渠道,包括移动、WEB 应用…等

  • 更快速地将企业内系统转化成API供市场使用

2、API开放后的复杂安全要求和个性化管理

  • 可以满足更高的信息交互及交易的安全要求

  • 开放、标准的生态系统来管理各种渠道和合作伙伴

  • 提供API不同服務等級給不同的使用者,

  • 能夠提供讓使用者,如: 伙伴, 部門, 開發者, 可以自主化服務

3、API的分析和优化

  • 如何管理、监控、分析API 使用状况,进而提供不同服务等级; 洞察服务使用情况并进行收费,

  • 借助大数据的方式对API调用数据进行分析, 持續優化

  • 支持企业整体战略的统一平台;

API 安全管理体系中的一些安全管理难点

1、如何让使用者快速发现API, 让API开发者快速发布API

  • 提供API开发者门户,提供集中的API发现、测试、订购、学习和交互的API社区

  • API管理平台和API门户无逢集成,一键发布

  • 提供API打包服务,批处理。

2、如何保证API网关的7*24小时的稳定运行

  • API网关采用高可用的方式进行部署,在云端环境可动态扩展;

  • 单个API网关本身采用冗余设计,具有较高的可靠性;

  • API网关具有流量控制能力,能应付突发的流量状况;

3、如何保证API的质量

  • API的定义、描述尽量标准化,如采用Swagger标准;

  • API的安全尽量采用安全标准,如Oauth Token, JWT/JWS的签名和加密方法;

4、参考业界最佳实践定义API的接口形式,如版本、出错、参数和报文头;

  • API的复合、逻辑处理应该防在API网关还是后端的微服务ESB处理

  • 单纯的API的符合(数据的整合,不涉及复杂业务逻辑)可以防在API网关处理;

  • 含业务逻辑、事务、数据库访问等操作的API增强功能,应该通过微服务或ESB处理;

PS:如果你想成为一名优秀的架构师,或者在工作中遇到瓶颈,想跳槽加薪,面试不过,

碰到难题等等一系列问题,可以加我的架构师群:554355695

这里有最专业的团队为你排忧解难,有最新的学习资源为你共享。

创建微服务过程中如何安全管理API

创建微服务过程中如何安全管理API

创建微服务过程中如何安全管理API

创建微服务过程中如何安全管理API

相关推荐