实现API管理系统的几个重要关键词

作者 : 开心源码 本文共3085个字,预计阅读时间需要8分钟 发布时间: 2022-05-13 共127人阅读

管理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功能也能强大,但是前者注重测试,后者注重接口管理,并不全面,而且全英的语言对国人也不是很友好。因而有需求或者者感兴趣可以各自理解下EOLINKER\POSTMAN\Swagger。

在选择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

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 实现API管理系统的几个重要关键词

发表回复