1. 概述
1.1 版本
FineBI 版本 | FineBI JAR 包 |
---|---|
5.1.10 | 2021-02-05 |
6.X | 2022-09-23 |
1.2 应用场景
客户希望在自身的第三方业务系统中,通过访问应用,调用API的方式,实现帆软决策系统的管理效果,以及自定义的数据服务功能
1)IT部门,基于开放平台,实现企业内各系统的互联互通。
2)软件公司,通过集成方式,实现其行业产品的帆软相关功能。
3)终端企业,基于接口服务,实现定制化需求。
1.3 功能简介
帆软提供「开放平台」插件:
1)提供安全、灵活、规范、有效的 web 服务,方便开发人员快速构建应用,实现在自身的业务系统中,对帆软系统、报表进行相应的管理、开展数据服务。
2)提供统一的平台配置,实现客户端API的权限管理、安全认证管理。
3)提供日志管理功能,实现对于 API、应用的请求、访问状态查看。
1.4 业务流程
1.5 公共接口
1)官方接口
对于开放平台中内置的接口,帆软提供相关 API 文档,方便用户进行理解和使用。
该 API 文档,仅作为官方示例,提供给具备自主产品集成能力的用户使用。技术支持不负责接口示例的维护和使用问题解答。
注:平台接口文档为开放平台文档。
FineBI接口文档为同系列其他接口插件文档,需下载安装相应子插件后,方可正常使用。
分类 | 对应插件 | API文档 |
---|---|---|
平台 | 开放平台插件 | 平台接口文档 |
FineBI | FineBI接口文档 |
2. 插件简介
2.1 插件安装
点击下载插件:开放平台插件
设计器插件安装方法参照:设计器插件管理
服务器安装插件方法参照:服务器插件管理
注:在安装&升级插件时,如果同时安装了同系列插件,需要在安装&升级开放平台插件后重启服务器!
同系列插件列表:开放平台、开放平台-FineBI接口、开放平台-FineReport报表接口、开放平台-平台登录认证接口。
2.2 界面简介
插件安装成功后,管理员登录数据决策系统,点击「管理系统>开放平台」,即可进入功能界面,如下图所示:
3. 功能简介
各模块功能简介如下表:
模块 | 功能简介 |
---|---|
API管理 | 接口查看:接口功能、调用方式等 接口管理:支持接口的增删改查和复制使用 |
应用管理 | 新建应用,系统自动生成应用ID和密钥,作为接口调用的凭证 |
认证方式 | 接口认证方式管理,默认提供三种备选认证方式,可新增自定义认证方式 |
权限管理 | 为应用管理中的新建应用,开放API接口的调用权限 |
日志管理 | 展示接口调用情况 |
3.1 API管理
在「API管理」中,包含第三方系统与 Finereport 进行资料互动服务的所有配置。
1)分组管理
「API管理」界面左侧为分组。平台已内置多个分组,用户可根据需求,自行增删分组。
对于内置的分组,使用者不可删除和编辑。
对于非内置的分组,使用者可进行编辑、删除等操作。被删除的分组内的 API,会自动移动到默认分组中。
2)API管理
每个分组中可保存多个 API。平台已内置部分常用的 API,使用者也可自行新增 API。
对于内置的 API,使用者仅可进行编辑、复制、更换分组操作,不可删除和禁用。
对于非内置的 API,使用者可进行编辑、复制、更换分组、删除和禁用等操作。
3.2 应用管理
1)新增应用
在「应用管理」中,使用者可以通过添加事件的方式,新建应用。
使用者点击「应用管理」,点击「增加」,设置相关内容,点击「确定」,即可新增应用。
自动生成的「应用ID」和「密钥」,可用于 API 的鉴权,作为第三方系统的访问凭证。
设置项 | 说明 |
---|---|
应用名称 | 应用的名称,必填 |
应用描述 | 应用的描述,选填 |
备选认证 | 认证方式中预先设置好的几种方式,选填 |
2)应用管理
对于添加的应用,支持新增、编辑、复制、禁用、单个删除、批量删除等操作。编辑时可重置密钥。
3.3 认证方式
3.3.1 通用认证方式
是所有的应用接口天然支持的认证方式。不论是否选择备选认证,该认证方式均可用。
获取 token 的请求链接为:$HOST/sp/client/api/token
API 方法为:POST
clientToken。根据对应 API 的配置,修改 API 方法与网址,即可调用相应的 API 接口。
整体效果如下图所示:
3.3.2 内置的备选认证方式
开放平台内置了三种备选认证方式,仅允许用户编辑、复制,不支持删除和禁用,如下图所示:
认证方式 | 说明 |
---|---|
国密SM2签名认证 | 利用国密SM2椭圆算法进行加解密,对应用ID、密钥以及时间戳进行签名后,通过签名和应用ID进行认证。 其中配置项 priKey=密钥、timeout=超时时间(秒) 签名_sign_=SM2(应用ID+密钥+时间戳)+时间戳 在 Headers 中添加 _sign_={计算值},client_id={应用ID},即可直接访问应用 |
摘要签名认证 | 在不能使用 token 认证的情况下,可使用摘要演算法(比如 SM3/MD5/ SHA256),对应用ID、密钥以及时间戳进行签名后,通过签名和应用ID进行认证。 其中配置项 method=摘要算法、timeout=超时时间(秒) 签名_sign_= 摘要算法(应用ID+密钥+时间戳)+时间戳 在 Headers 中添加 _sign_={计算值},client_id={应用ID},即可直接访问应用 推荐使用这种认证方式,安全性更高 示例:
此时,签名_sign_ = MD5(client_id+secret+timestamp)+timestamp = EE6E14BCEC5724C3BC6FC08AFC5C2B111600166180321 |
AkSk直接认证 | 使用应用ID和密钥直接作为认证依据,直接调用服务。 无配置项,认证方式的编辑界面的配置信息,不可自行编辑。 在 Headers 中添加 client_id={应用ID}、secret={密钥} 即可直接访问应用 出于安全考虑,不推荐使用这种认证方式 |
3.3.3 自定义备选认证方式
编辑、禁用、单个删除、批量删除等操作。
在「认证方式」页面,点击「增加」按钮,设置相关配置项,点击「确定」,即可新增认证方式。如下图所示:
配置项 | 说明 |
---|---|
基础 | 支持自定义「认证名称」、「认证描述」和「接口类」,方便使用者区分设置的认证方式 1)「认证名称」必填,不可为空 2)「认证描述」选填 3)「接口类」是需要实现的认证API的例项物件。同一个类,可以通过配置的改变,实现多种认证方式。 |
配置 | 在认证方式的编辑界面的配置信息中,需进行一些固定配置,例如摘要签名认证需要定义「摘要算法」和「有效期」; 配置可以设置为加密项,这样加密后的信息在保存后,也无法从前端读取 |
默认参数 | 自定义参数设置 |
注:在部分使用了nginx的环境中,client_id的下划线会被识别为无效
当前的解决方案是传递 client_id和 clientId 均可被识别,已完成迭代兼容
参数名 | 别名 |
---|---|
client_id | clientId |
client_token | clientToken |
3.4 权限管理
针对非公开API,调用均需要做权限验证。不同的场景、不同的应用,可调用的接口范围是不一样的。管理员可以权限管理下,进行权限配置。
公开API可以随意调用,不受权限验证的约束。
注:目前不存在分组权限,意思是即使把某个分组权限打开了,实质上也只是把当前分组下面的API的权限分配给了某个应用。
如果后续发生了API分组变更,或者该分组下API新增,那么之前已设置好的API权限是不变的。
例如:针对一个应用,打开目录树管理的分组权限,相当于打开下属所有API的权限。如果该分组下的API更换到其他分组,则该API仍保持权限打开的状态;如果在目录树管理的分组下,新增API,则该API为权限关闭状态
3.5 日志管理
在日志管理中,管理员可以查看 API 的请求频率和详细记录。
该页面日志来源于 logdb 的 fine_record_open_client_api 表。
3.6 全局设置