管理API的需求源自于Web API开展业务。从2006年开始,然后逐渐成熟,并在2016年之前进入市场。无论是通过代理现有API的管理网关、本身作为用于部署API本身的网关的一部分,还是作为连接层在代码中,API管理就是针对API进行编辑、测试、发布、身份验证,计量,分析报告、监控等。在过去十年中,API管理提供商共同定义了一些使用Web API完成业务的常用方法。虽然API技术非常技术化,但它依旧与API业务密切有关,并且通过使用Web提供对数据,内容,算法和其他数字资源的访问所产生的价值。下面将通过几个关键词的形式说明API管理的重要性和实现方式。

1.安全性:

API认证

  • 如果你经常向合作伙伴提供API访问权限,那限制API访问合作伙伴IP地址的防御力(白名单)非常强大。但你仍需要进行身份验证和速率限制,只要将流量减少到只有已知的合作伙伴,这会消除在对更广泛的互联网开放的API上看到的大量恶意流量,例如蛮力企图获取访问权限和拒绝服务攻击。即便使用IP白名单,建立API网关仍然是最佳做法。这有助于身份验证并确保后端仅接收正确返回的API调用。
  • 最常见的是OAuth和OAuth2,用于在API之间进行通信和保护通信。即便使用OAuth,其他人的Token也可能是一个问题。如何管理Token的生命周期?Token是否得到刷新?在一些成功的基础架构中,使用了一次性Token来严格限制正在尝试的操作类型,它是一种归结为安全Token管理和基于证书的身份验证。
  • 在授权之前始终对API进行身份验证 ,有许多方法可以进行API身份验证,但多因素身份验证是常用的方法。对于API,使用外部进程(例如通过OAuth协议)获取访问Token是很常见的。身份验证密钥最敏感,必须保持安全,建议使用管理存储来自动执行整个过程。
  • 也就是说,仅凭身份验证不足以授予对API的访问权限,应该有一个授权步骤来确定哪些资源可以访问API。检查授权的各种方法包括基于内容的访问控制(CBAC),基于角色的访问控制(RBAC)或基于策略的访问控制(PBAC),这些方法可确保业务数据保持完全受到保护,以防止未经批准的访问。

限制访问API的资源

    • 保护API环境涉及每个API接触点,对API客户端(第三方应用程序和开发人员或微服务)进行身份验证和授权,限速API调用以缓解分布式拒绝服务(DDoS)攻击并保护处理后端应用程序API调用。
      用于保护API的一些技术和工具是:
      1)使用JSON Web Token(JWT)来验证和授权API客户端,JWT包括有关客户端的信息,例如管理权限或到期日期。当客户端向JWT提供其API请求时,API网关会验证JWT并验证其中的声明是否与你为客户端请求的资源设置的访问策略相匹配。
      2)定义和实施访问控制策略,仅允许某些类型的客户端执行写入操作或访问敏感数据(如定价)。
      3)定义基于角色的访问控制,该控制仅允许某些用户(例如特定组织内的开发人员)发布敏感信息(如定价或库存水平)的API。
      4)通过应用速率限制策略来保护API本身,该策略设置API网关从指定源(例如客户端IP地址)每秒(或其他时间段)接受的请求数量的阈值。
      5)使用HTTPS保护后端应用程序 - 应该在API网关和处理API请求的后端系统之间使用HTTPS协议。
    • 限制和配额的断路器,一个好的做法是强制执行每个应用程序的数据使用配额,以便在DoS,DDoS攻击或防止未经授权的用户不正当使用API​​时,后端不会受到影响。每个资源的节流和配额不仅可以作为断路器,还可以防止系统产生负面影响。具有配额和限制等策略的复杂API管理平台可提供此功能。

三个关键领域

    • 我们的API安全方法的三个关键领域:
      1)采用说明性方法。客户转向OAuth 2并使用Open ID Connect进行覆盖,OAuth 2有很多选择,Open ID虽然限制了选择但也指导出最佳实践。
      2)仔细考虑应用程序ID如何与用户身份相关联。
      3)从最广泛的意义上考虑API安全性,以减少入侵企图。可以采取分发安全实施的方法。默认情况下,API管理专注于提供API网关,而API网关应该专注于流量的身份验证和授权。建议采用多层方法,并在Apache Mod Security的单独层中包含Web应用防火墙。

2.易用性:

部署API有许多重要元素,包括身份验证,保护/可用性和货币化。但是如果不使用API​​,其中许多都无关紧要。易于使用和成功完成用例是被使用的关键。我们的集成平台使API易于使用。
通过我们的应用程序连接器,我们可以简化许多API的使用。

API中的最后一个字母是“界面”,因此明确定义该界面如何工作是十分重要的。客户如何使用你的API,以及开发人员如何将这些API推向市场,你需要提前做出一些重要的架构决策。随着API数量的增长,保持命名和数据格式的一致性变得很重要。当你提供5-10个API时,这并不是什么大问题,但是当数量超过100时,你可能有多个人(或多个团队)在不同的时间段创建它们,作为不同产品的一部分引入等等,让所有团队轻松了解并执行现有规范至关重要。如果这些规范不统一且难以阅读,那它一定会导致问题。

3.API生命周期管理:

具有以下四个主要元素:

  • 1.API生命周期管理,提供管理API整个生命周期的能力,从API的设计、开发、发布和管理(包括维护和版本控制),从而允许公司通过撰写创新解决方案来加速创新,提高开发效率,促进企业数据的更好安全性,并允许用户轻松发现和使用API。
  • 2. API网关,API网关充当一组API的入口点。使用API​​网关的好处是为每个客户端提供最佳API,减少客户端需要进行的请求数量并实施适当的安全性和控制。
  • 3.文件,Developer Portal是提高API采用率和粘性的关键。这是开发人员学习和使用API​​的第一点,也是开发人员了解身份验证/授权机制的地方。此外,他们还将了解哪些API可供使用,并利用每个API请求的描述和示例。
  • 4. API分析/监控,API分析和监控可帮助了解和理解其API的使用情况,从而提供有关各种API使用的见解。或者,开发者可以强制执行A​​PI配额,限制和API流量,以阻止/限制与你的业务目标不一致的使用。

在国内的API接口管理工具中,能完整实现API管理全流程并且体验较好的平台和工具就是 EOLINKER了,包括接口文档编辑、API测试、自动化测试和API监控和网关等功能,能体验到完整的API研发方案。而国外的诸如POSTMAN、Swagger功能也是强大,但是前者注重测试,后者注重接口管理,可能并不全面,而且全英的语言对国人也不是很友好。因此有需求或者感兴趣可以各自了解下EOLINKERPOSTMANSwagger

在选择API管理解决方案时,最好的建议是始终保持关系简单,模块化,强独立性并与API生命周期中的其他模块分离,并保持业务参与度有限,使得可以在没有冗长合同的情况下不断使用成长。API生命周期中的每一阶段都应该反映API的理念,并保持小巧,分离,专注做好该阶段目标。

参考资料:

Kin Lane,API Life Cycle Basics: API Management,https://dzone.com/articles/api-life-cycle-basics-api-management

Tom Smith,Keys to API Management,https://dzone.com/articles/keys-to-api-management

实现API管理系统的几个重要关键词的更多相关文章

  1. 关于未来实现API管理系统的几个关键词

    下面将通过几个关键词的形式说明API管理的重要性和未来的实现方式. 1.生命周期管理 在整个API生命周期中更深入地集成所有工具将进一步提高生命周期循环的速度,而且更重要的是提供满足消费者需求的API ...

  2. 未来实现API管理系统的几个关键词

    下面将通过几个关键词的形式说明API管理的重要性和未来的实现方式. 1.生命周期管理 在整个API生命周期中更深入地集成所有工具将进一步提高生命周期循环的速度,而且更重要的是提供满足消费者需求的API ...

  3. 如何在Uniapp中访问CabloyJS后端API管理系统

    介绍 CabloyJS是一款免费开源的NodeJS全栈开发框架,采用前后端分离设计,具备开箱即用的后台管理系统 Cabloy-SDK是专门为Uniapp应用量身定制的前端SDK,用于便捷的访问Cabl ...

  4. 开源的api文档管理系统

    api文档 php 在项目中,需要协同开发,所以会写许多API文档给其他同事,以前都是写一个简单的TXT文本或Word文档,口口相传,这种方式比较老土了,所以,需要有个api管理系统专门来管理这些ap ...

  5. 如何更快理解和运用服务编排?(使用Goku API Gateway实现)

    上一篇博客 未来实现API管理系统的几个关键词 发布后,有不少读者私信我,让我写一篇实际运用的文章,我周末趁着有空写了这篇有关“服务编排”的文章.用的是Goku API Gateway进行演示, 希望 ...

  6. API网关之Kong网关简介

    1. Kong简介 那么,Kong是一个什么东东呢?它是一个开源的API网关,或者你可以认为它是一个针对API的一个管理工具.你可以在那些上游service之上,额外去实现一些功能.Kong是开源的, ...

  7. 浅谈API网关(API Gateway)如何承载API经济生态链

    序言 API经济生态链已经在全球范围覆盖, 绝大多数企业都已经走在数字化转型的道路上,API成为企业连接业务的核心载体, 并产生巨大的盈利空间.快速增长的API规模以及调用量,使得企业IT在架构上.模 ...

  8. 对API进行版本控制的重要性和实现方式

    我在API设计中收到的最常见问题之一就是如何对API进行版本控制.虽然并非所有API都完全相同,但我发现在API版本控制方面,某些模式和实践适用于大多数团队.我已经将这些内容收集起来,下面将提供一些关 ...

  9. 为什么医疗行业需要API市场?

    医疗健康行业无论在国内外都是采用先进技术的先驱者之一,原因在于业内的利益相关者会更加接近数据.重视数据的重要性,从而加快在决策上面的动作,以期更好的患者的预期寿命和增进社会人口的健康.更重要的是,数据 ...

随机推荐

  1. Thread-Per-Message设计模式

    import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; public class Te ...

  2. .NET CORE 多语言实现方案

    根据市场需求,基于.NET CORE平台开发的RoadFlow工作流平台需要实现多语言版本.经过方案讨论和比对,决定采用.NET自带的本地化功能来实现多语言.话不多说,直接上实现方式. 首先修改Sta ...

  3. javascript案例之放大镜效果

    效果图 如何实现该效果呢??   我们先来进行分析 实现思路 1.鼠标移入移出事件 1>移入:悬浮块和大图显示 2>移出:悬浮块和大图隐藏 2.鼠标移动(悬浮块随着鼠标移动) 1>获 ...

  4. 图像识别sift+bow+svm

    本文概述 利用SIFT特征进行简单的花朵识别 SIFT算法的特点有: SIFT特征是图像的局部特征,其对旋转.尺度缩放.亮度变化保持不变性,对视角变化.仿射变换.噪声也保持一定程度的稳定性: SIFT ...

  5. Git更改提交

    提交记录我们的工作历史记录,提交自身是一成不变的.Git提供了几个工具和命令,抓门用来帮助修改完善版本库中的提交. 实际工作中存在很多情况需要我们去修改或返工某个提交或者整个提交序列: 1,可以在某个 ...

  6. C#3.0新增功能09 LINQ 基础06 LINQ 查询操作中的类型关系

    连载目录    [已更新最新开发文章,点击查看详细] 若要有效编写查询,应了解完整的查询操作中的变量类型是如何全部彼此关联的. 如果了解这些关系,就能够更容易地理解文档中的 LINQ 示例和代码示例. ...

  7. 从后端到前端之Vue(三)小结以及一颗真实的大树

    上一篇写了一下tab,下面整理一下用过的知识点,本想按照官网的文档,整理一下可以更清晰,结果也许是我的方法不对吧,总之更模糊了. 按照官网文档的顺序整理到了表单输入绑定之前,因为之前大致也就只涉及到这 ...

  8. python-if条件判断与while/for循环

    条件判断if 让计算机像人一样,能判断是非对错,根据条件做一些事情. if ''' ------ if代码结构:------- if 条件: 代码体 tips:同一缩进范围内的代码被视作同一代码体,p ...

  9. 在Linux上安装JDK8-教程

    xl_echo编辑整理.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!! --- > 这里使用的服务 ...

  10. 模板配置教程:Phpcms v9怎么更换模板

    先分享下大概的步骤: 1.上传模版文件到服务器: 2.在站点管理 里边[模板风格配置]选择新模板: 3.设置不同模型对应模板: 4.修改现有的栏目,匹配新模板: 5.更新栏目缓存.系统缓存,更新HTM ...