接入应用

为每一个需要访问COP平台OpenAPI和事件的三方应用系统,分配独立的授权信息,并监控调用日志。

1、概述

为每一个需要访问COP平台OpenAPI和事件的三方应用系统,分配独立的授权信息,并监控调用日志。

2、能力特征

2.1、接入应用管理

功能特征 描述
新建 支持新建接入应用
列表展示 支持列表展示接入应用,支持模糊查询
编辑/配置 支持编辑接入应用
删除 支持删除接入应用
启用/停用 支持接入应用启用**/**停用
分类检索 支持接入应用分组查看

2.2、OpenAPI授权

功能特征 描述
自定义应用图标 支持自定义接入应用图标
APPSecret刷新 AppSecret泄露时,支持在线刷新APPSecret
API授权/移除权限 支持API二级授权,授权后当前应用才可以正常访问对应接口
API批量授权/移除权限 支持API批量授权**/**移除权限
导出接口文档 支持导出所有已经二次授权的接口文档
导出历史 支持导出历史在线查看和导出
API详情查看 支持API详情查看
数据范围过滤 支持根据接口返回参数过滤数据
参数名转换 支持自定义参数名,且不影响其他应用调用

2.3、事件订阅授权

功能特征 描述
事件订阅 支持事件回调
加密因子 支持事件内容加密
回调令牌 支持回调令牌,验证来源应用
回调地址状态验证 支持回调地址在线校验,回调地址返回200表示校验通过
添加事件 支持添加多个已启用事件
移除事件授权 支持移除多个已添加事件
数据范围过滤 支持事件数据筛选过滤
事件回调 支持事件回调接口
字段映射 支持事件回调接口字段映射
自定义成功标识 自定义事件推送成功标识,不满足条件是自动重试

2.4、安全设置

功能特征 描述
重定向域名 COP作为统一登录认证中心场景中,对来源应用的可信重定向域名配置
IP白名单 支持IP白名单配置,不配置时所有IP均可访问
限流控制 支持某个时间段内访问频率限制

2.5、使用日志

功能特征 描述
事件订阅日志 事件回调日志
手工重发 事件回调报错时,支持手工重发
OpenAPI调用日志 开放API日志

2.6、nacos高级设置

功能特征 描述
签名关闭/启用 支持开放平台接口签名开启/关闭配置

3、使用场景

3.1、接口授权

集成平台提供两层接口授权机制,第一级授权叫做API启用,启用后所有接入的应用才可以查看响应接口,并进行二次授权,一级授权目的是限制接口使用范围和场景,提高系统可用性和稳定性。

当API启用后,管理员可以针对每个接入应用,添加二级授权,被授权应用只可以访问当前应用已经授权的接口。

1720488072017

3.2、接口文档

添加二级授权后,被授权应用可以自动导出已授权接口的接口文档。接口文档以Word形式导出,且系统采用异步导出接口文档形式,降低内存消耗。

3.3、事件订阅

平台提供的事件同样遵循二级授权管理模式,由COP定义事件消息体,三方系统提供事件接收URL,COP平台触发事件后,三方系统就可以实时接收到对应的事件提醒和事件内容。

1720488140434

3.4、IP白名单

平台提供访问白名单机制,如果未配置白名单,则所有网络联通,且拥有平台颁发的AppKey和APPSecret的调用方都可以正常调用对应授权接口。开启白名单后,只有出口IP一致的调用方才可以正常调用已授权接口。

平台提供签名启用/停用配置,启用后,调用接口需要APPKey和AppSecret;停用时,调用方只需要提供AppKey即可,不需要提供APPSecret和签名sign。停用签名场景主要针对客户有企业级开放平台时或者防火墙策略完善场景。

1720488180236

3.5、请求限流

平台提供访问限流控制,管理员可以配置不限流,或者配置周期内访问次数限制,主要针对服务器资源紧张、内存压力大场景。

1720488239402

3.6、接口调用demo

场景:比如外部需要调用接入应用中开放的组织机构人员信息查询接口,该接口业务参数是人员id。
由于demo中使用了技术平台JsonUtils、MD5、HttpClientUtil等工具类,所以需要您在您工程中依赖boot-core
<dependency>
    <groupId>com.seeyon</groupId>
    <artifactId>boot-core</artifactId>
    <version>3.9.0</version>
</dependency>

java代码如下:

import com.seeyon.boot.util.JsonUtils;
import com.seeyon.boot.util.MD5;
import com.seeyon.boot.util.http.HttpClientUtil;
import com.seeyon.boot.util.http.common.HttpHeader;

import java.util.HashMap;
import java.util.Map;

/**
 * Description:
 * Author: weijh
 * Date: 2024/11/5 15:30
 */
public class OpenApiTest {
    public static void main(String[] args) {
        String appKey = "您的appKey";
        String appSecret = "您的appSecret";
        Map<String, Object> param = new HashMap<>();
        Long reqId = System.currentTimeMillis();
        param.put("requestId", reqId);
        param.put("timestamp", reqId);
        param.put("data", "人员id");


        HttpHeader httpHeader = HttpHeader.custom();
        httpHeader.add("app-key", appKey);
        httpHeader.add("sign-type", "MD5");
        String jsonStr = JsonUtils.toJson(param);
        String sign = MD5.getMD5String(appSecret + jsonStr + appSecret);
        httpHeader.add("sign", sign);
        String result = HttpClientUtil.post("https://openapi-pre.seeyonv8.com/organization/base/member/selectById", jsonStr, httpHeader);
    }
}

3.7、postman调用demo

openapi-demo调用.postman_collection.json

最后修改 November 23, 2024: 修改文档 (502c7b2)