EnOS APIM 安全机制

EnOS APIM 的定义

EnOS API Management可提供完整的生命周期管理服务,其中包括 API 创建、配置、部署、监控、开放平台和其他功能。它能够帮助开发人员通过 API 向应用公开数据和服务。它的主要功能如下所述。

_images/security_stable.png
  1. API创建:为API开发人员提供API的设计、登台、托管和类别管理
  2. API配置:提供丰富的配置选项集,有助于增强API安全授权、流量限制、日志服务和其他功能
  3. API部署:快速便捷地将API发布并部署到多个环境
  4. API监控中心通过监控、分析、预警和其他功能确保服务端API的稳定性
  5. API开放平台能够将多方链接到APIM平台,以实现API交易、开发人员社区和培训支持,并建立开放的API经济。

EnOS APIM 安全规则

开发人员将服务开放给外部应用时,应首先确保服务的安全性,并防止恶意外部访问对公司业务的影响,尤其是与数据湖有关的服务。此外,应充分考虑安全性。为了确保安全性,必须要考虑建立通信链接、对通信数据进行加密、数据完整性、不可否认性等。

_images/apim_security_rule.png

当API请求到达APIM时,它需要经过严格的身份认证和权限认证才能到达后台服务。通常,APIM提供以下安全认证方法。

  1. SA认证:设置安全密钥和访问密钥。API调用信息会带有SA的Key和Secret,APIM会以此来校验Key和Secret是否匹配以及SA的合法性。这是直接重用EnOS应用注册的关键,并且可以通过 SA身份验证实现基本的安全功能。
  2. OU身份验证:提供Orgid对称加密,以验证应用请求和后台服务是否在相同的OU权限下。
  3. 令牌:EnOS采用自定义的API令牌逻辑,主要用于实现令牌发行、令牌验证、令牌有效性处理、令牌替换等基本功能。
_images/api_token_logic1.png

目前,APIM通过令牌认证要求调用者下载用于安全认证的SDK,并将其集成到应用中,以便通过令牌安全及时性来验证应用的私钥。

_images/api_token_logic2.png

目前,您可以使用应用访问密钥、秘密密钥和系统时间戳生成访问令牌,然后使用访问令牌调用EnOS API。您需要在EnOS管理控制台上注册一个应用,获取该应用的访问密钥和秘密密钥,这两个密钥分别对应于Get Access Token API 的 appKey 和 appSecret 这两个请求参数的值。

APIM 提供了以下访问令牌功能:

  1. Get Access Token(获取访问令牌):通过提供包含应用密钥、时间戳和应用秘密的 SHA256 加密消息,可以获取访问令牌。访问令牌将在 2 小时后过期。
  2. Refresh Access Token(刷新访问令牌):在访问令牌到期之前,可以通过提供加密消息(原始访问令牌)来刷新令牌。
  3. 使用访问令牌调用 API:只要持有有效的访问令牌,便可通过添加以下所列标头的方式来调用带有令牌的 API:
    • apim-accesstoken:有效的访问令牌字符串
    • apim-signagure:SHA256 加密消息,其中包含访问令牌、查询参数、时间戳和应用密钥
  4. IP 控制黑/白名单:黑/白名单也是安全保护的基本功能。实际上,核心在于在调用时判断 IP 地址的黑/白名单。

此外,当 APIM 将请求路由到后台服务时,开发人员还可以提供自己的服务及安全认证。

  1. 定制加密:数据包加密的关键机制是秘密密钥,通过非对称加密来确保安全性,通过使用对称加密的业务消息或密钥字段来确保安全性,也可以通过白盒加密技术来增强安全性;对于安全性来说,这部分内容涉及很多方案和实施方法。随后我们将单独写一篇有关加密的文章,深入探讨更多详情;
  2. API网关权限:每个开发人员都可以控制调用请求API网关权限;实际上,这种控制是 1~N 个网关关系下的一种背景服务,可用作独占访问权限来建立APIM。