跳到主要内容

OpenSCOW API

OpenSCOW系统总体来说分为前端和后端部分(架构),OpenSCOW的前端和后端部分使用gRPC进行通信。

要使用OpenSCOW API,您需要

  1. 获取OpenSCOW Protobuf文件并生成相关代码
  2. 编写程序,调用gRPC API与OpenSCOW的后端部分组件mis-server, portal-server, audit-server交互

打开后端服务网络接口

部署好的系统的后端服务容器mis-server, portal-server, audit-server位于docker compose创建的网络中,从外界无法直接访问mis-server, portal-serveraudit-server服务。

要想访问这些服务,您需要通过install.yaml将主机上的端口映射到mis-server, portal-serveraudit-server服务的5000端口中。配置完成后,您可以从部署OpenSCOW的机器上通过定义的IP和端口与对应的服务交互。


portal:
portMappings:
# portal-server的5000端口映射到127.0.0.1:7572
portalServer: "127.0.0.1:7572"
mis:
portMappings:
# mis-server的5000端口映射到127.0.0.1:7571
misServer: "127.0.0.1:7571"
audit:
portMappings:
# audit-server的5000端口映射到127.0.0.1:7573
auditServer: "127.0.0.1:7573"

API认证

默认情况下,mis-serverportal-server的gRPC调用并不认证请求,任何用户都可以直接调用mis-serverportal-server的API。

在不认证的情况下,如果您在映射端口时直接输入端口号(如7571不是127.0.0.1:7571),由于在同一个集群中各个节点的网络是互通的,则在同一个集群中的其他作业可能可以直接访问OpenSCOW的gRPC后端,进而直接操作OpenSCOW系统的数据,造成安全隐患。所以我们建议:

  • 不将OpenSCOW服务节点用作集群的登录节点或者计算节点
  • 在映射端口时输入127.0.0.1:7571,使映射出的端口只能在OpenSCOW服务节点上使用
  • 给OpenSCOW服务节点设置好防火墙,防止集群内部的服务访问到OpenSCOW服务

您也可以配置服务器端认证。当打开了认证后,任何没有通过认证的请求将会收到UNAUTHENTICATED响应。

静态Token认证

您也可以配置服务器使用静态Token认证。

config/common.yaml中增加以下配置:

config/common.yaml
scowApi:
auth:
token: <秘密字符串,越长越好>

当配置好后,任何到服务器的请求都必须带有authorization header,其内容为Bearer <秘密字符串>

门户系统和管理系统前端发送到服务器的请求将会自动带有这个header,无需单独配置。

实际项目示例