睿治
当前版本:2.6.1

安全服务接口

1.概述

对数据库类元数据设置脱敏或加密后,可以使用系统提供的脱敏接口和加密接口对数据进行脱敏或加密。系统提供的数据安全接口有:

根据《接口总体说明》,内部请求异常时,数据安全在接口的响应结果中的data字段内部携带了code字段(参考《睿治请求内部错误编码》),和message字段配合用于具体说明响应结果信息,详细说明如下。

请求响应正常的返回格式:

{

"status":200,

"data":{

......

}

}

请求响应内部异常的返回格式:

{

"status":500,

"message":"参数不合法",

"error":"xxx",

"errCode":"...."

}

2.获取表的脱敏设置

获取安全数据源下某个表/视图的脱敏字段设置

  • 请求地址

/edatasecurity/api/gettablemaskoption

  • 请求方法

GET

  • 请求参数

参数名

参数类型

必填项

默认值

说明

secsystemid

字符串

安全数据源的地方配置的安全数据源唯一标识

datasetid

字符串

表的id,是表/视图在secsystemid中的唯一名称。这个值在设置脱敏字段的时候由具体的安全数据源实现的获取表/视图的接口,譬如对元数据来说,就是Schema.表名

  • 返回结果

请求地址示例,

GET http://localhost:8080/edatasecurity/api/gettablemaskoption?secsystemid=z_tag&datasetid=ZZ.ABI11_BOOK_TYPE

返回结果,

{

"status":200,

"data":[

{

"fieldname":"CID_", // 字段名

"maskoption":{

"rulename":"SYSALG_000",    // 脱敏规则英文

"rulecaption":"全部替换为*", // 规则中文描述

"filter":"ADMIN",   // 脱敏条件

"filtertype":"role"// 脱敏条件类型

}

},{

"fieldname":"TID_",

"maskoption":{

"rulename":"SYSALG_006",

"rulecaption":"中间4位替换为*",

"filter":"ADMIN",

"filtertype":"role"

}

},{

"fieldname":"TNAME_",

"maskoption":{

"rulename":"SYSALG_001",

"rulecaption":"仅保留第一个字",

"filter":"ALLUSER",

"filtertype":"role"

}

}

]

}

3.获取字段的脱敏设置

获取安全数据源下表的某个字段的脱敏设置

  • 请求地址

/edatasecurity/api/getfieldmaskoption

  • 请求方法

GET

  • 请求参数

参数名

参数类型

必填项

默认值

说明

secsystemid

字符串

安全数据源的地方配置的安全数据源唯一标识

datasetid

字符串

表的id,是表/视图在secsystemid中的唯一名称。

field

字符串

字段名

  • 返回结果

请求地址示例,

GET http://localhost:8080/edatasecurity/api/getfieldmaskoption?secsystemid=z_tag&datasetid=ZZ.ABI11_BOOK_TYPE&field=CID_

返回结果,

{

"status":200,

"data":{

"fieldname":"CID_", // 字段名

"maskoption":{

"rulename":"SYSALG_000",    // 脱敏规则英文

"rulecaption":"全部替换为*", // 规则中文描述

"filter":"ADMIN",   // 脱敏条件

"filtertype":"role"// 脱敏条件类型

}

}

}

4.获取表的加密设置

获取安全数据源下某个表/视图的加密字段设置

  • 请求地址

/edatasecurity/api/gettableencryptoption

  • 请求方法

GET

  • 请求参数

参数名

参数类型

必填项

默认值

说明

secsystemid

字符串

安全数据源的地方配置的安全数据源唯一标识

datasetid

字符串

表的id,是表/视图在secsystemid中的唯一名称。

  • 返回结果

请求地址示例,

GET http://localhost:8080/edatasecurity/api/gettableencryptoption?secsystemid=z_tag&datasetid=ZZ.ABI11_BOOK_TYPE

返回结果,

{

"status":200,

"data":[

{

"fieldname":"CID_", // 字段名

"encryptoption":{

"method":"SM4", // 加密算法

"filter":"ADMIN",   // 加密条件

"filtertype":"role"// 加密条件类型

}

},{

"fieldname":"TID_",

"encryptoption":{

"method":"AES-256",

"filter":"ALLUSER",

"filtertype":"role"

}

},{

"fieldname":"TNAME_",

"encryptoption":{

"method":"RC5",

"filter":"$OTHER_ROLE",

"filtertype":"role"

}

}

]

}

5.获取字段的加密设置

获取安全数据源下表的某个字段的加密设置

  • 请求地址

/edatasecurity/api/getfieldencryptoption

  • 请求方法

GET

  • 请求参数

参数名

参数类型

必填项

默认值

说明

secsystemid

字符串

安全数据源的地方配置的安全数据源唯一标识

datasetid

字符串

表的id,是表/视图在secsystemid中的唯一名称。

field

字符串

字段名

  • 返回结果

请求地址示例,

GET http://localhost:8080/edatasecurity/api/getfieldencryptoption?secsystemid=z_tag&datasetid=ZZ.ABI11_BOOK_TYPE&field=TID_

返回结果,

{

"status":200,

"data":{

"fieldname":"TID_", // 字段名

"encryptoption":{

"method":"AES-256", // 加密算法

"filter":"ALLUSER", // 加密条件

"filtertype":"role"// 加密条件类型

}

}

}

6.获取表的混合设置接口

获取安全数据源下某个表/视图的加密和脱敏设置

  • 请求地址

/edatasecurity/api/gettablemixoption

  • 请求方法

GET

  • 请求参数

参数名

参数类型

必填项

默认值

说明

secsystemid

字符串

安全数据源的地方配置的安全数据源唯一标识

datasetid

字符串

表的id,是表/视图在secsystemid中的唯一名称。

  • 返回结果

请求地址示例,

GET http://localhost:8080/edatasecurity/api/gettablemixoption?secsystemid=zz_tag&datasetid=ZZ.ABI11_BOOK_CATEGORY

返回结果,

{

"status":200,

"data":[

{

"fieldname":"CID_", // 字段名

"maskoption":{    // 脱敏设置

"rulename":"SYSALG_000",    // 脱敏规则英文

"rulecaption":"全部替换为*", // 规则中文描述

"filter":"ADMIN",   // 脱敏条件

"filtertype":"role"// 脱敏条件类型

}

},{

"fieldname":"CID_", // 字段名

"encryptoption":{ // 加密设置

"method":"SM4", // 加密算法

"filter":"ADMIN",   // 加密条件

"filtertype":"role"// 加密条件类型

}

}

]

}

7.获取字段的混合设置接口

获取安全数据源下表的某个字段的加密和脱敏设置

  • 请求地址

/edatasecurity/api/getfieldmixoption

  • 请求方法

GET

  • 请求参数

参数名

参数类型

必填项

默认值

说明

secsystemid

字符串

安全数据源的地方配置的安全数据源唯一标识

datasetid

字符串

表的id,是表/视图在secsystemid中的唯一名称。

field

字符串

字段名

  • 返回结果

请求地址示例,

GET http://localhost:8080/edatasecurity/api/getfieldmixoption?secsystemid=z_tag&datasetid=ZZ.ABI11_BOOK_TYPE&field=TID_

返回结果,

{

"status":200,

"data":[

{

"fieldname":"TID_", // 字段名

"encryptoption":{ // 加密设置

"method":"AES-256", // 加密算法

"filter":"ALLUSER", // 加密条件

"filtertype":"role"// 加密条件类型

}

},{

"fieldname":"TID_", // 字段名

"maskoption":{    // 脱敏设置

"rulename":"SYSALG_006",    // 脱敏规则英文

"rulecaption":"中间4位替换为*",   // 规则中文描述

"filter":"ADMIN",   // 脱敏条件

"filtertype":"role"// 脱敏条件类型

}

}

]

}

8.数据加密接口

数据加密

  • 请求地址

/edatasecurity/api/encryptdata

  • 请求方法

POST

  • 请求体

请求体采用JSON格式。格式说明如下,

{

"secsystemid":{secsystemid},  // 安全数据源唯一标识

"datasetid":{datasetid},  // 表的id,是表/视图在secsystemid中的唯一名称

"data":'[{{field}:{content}}]'//待加密的数组字符串

}

  • 返回结果

请求地址示例,

POST http://localhost:8080/edatasecurity/api/encryptdata

请求体示例,

EUI.ajax({

url: EUI.getContextPath() + "edatasecurity/encryptdata.do",

type: "post",

data: {

"loginid": "admin",

"secsystemid": "yangshi_data",

"datasetid": "YANGGW_YANSHI.TABLE2",

"data": '[{"EMAIL_": "11111111@qq.com","CHINESENAME_": "张明"}]'

}

})

返回结果,

{

"status": 200,

"msg": "接口调用正常!",

"data": {

"loginid": "admin",

"secsystemid": "yangshi_data",

"datasetid": "YANGGW_YANSHI.TABLE2",

"resultid": "2c2914bacea54a698663288db9839f7a",

"timestamp": 1650273748763,

"costtime": 13,

"data": [

{

"EMAIL_": "aa5868c453b18c0041db9f76476e35af",

"CHINESENAME_": "张明"

}

]

}

}

9.数据解密接口

数据解密

  • 请求地址

/edatasecurity/api/decryptdata

  • 请求方法

POST

  • 请求体

请求体采用JSON格式。格式说明如下,

{

"secsystemid":{secsystemid},  // 安全数据源唯一标识

"datasetid":{datasetid},  // 表的id,是表/视图在secsystemid中的唯一名称

"resultid":{resultid},    // 对这条数进行加密时返回的resultid

"data":'[{"field":"content"}]'//加密的数据

}

返回结果

请求地址示例,

POST http://localhost:8080/edatasecurity/api/decryptdata

请求体示例,

{

"secsystemid":"z_tag",  // 安全数据源唯一标识

"datasetid":"ZZ.ABI11_BOOK_TYPE",   // 表的id,是表/视图在secsystemid中的唯一名称

"resultid":"5d9e5eb090be4bf58181d297645ef5e4",  // 对这条数进行加密时返回的resultid

"data":'[{"CID_":"235c6116c4813756ba15856ec2063996","TNAME_":"70539620e234f724afa51501d0e5d821"}]'//加密的数据

}

返回结果,

{

"status":200,

"data":{

"loginid":"admin",  // 传入的loginid

"secsystemid":"z_tag",  // 传入的安全数据源唯一标识

"datasetid":"ZZ.ABI11_BOOK_TYPE",   // 传入的datasetid

"timestamp":1631694045423,    // 执行解密时的时间戳

"costtime":65,    // 执行解密耗费的时间

"data":[{ // 解密以后的数据

"CID_":"008",

"TNAME_":"测试数据"

}]

}

}

10.数据脱敏接口

数据脱敏

  • 请求地址

/edatasecurity/api/maskdata

  • 请求方法

POST

  • 请求体

请求体采用JSON格式。格式说明如下,

{

"loginid":{loginid},  // 当前调用数据脱敏接口的人,根据其身份判断是否满足脱敏条件决定是否需要脱敏

"secsystemid":{secsystemid},  //  安全数据源唯一标识

"datasetid":{datasetid},  // 表的id,是表/视图在secsystemid中的唯一名称

"data":'[{"field":"content"}]'// 待脱敏数据数组

}

  • 返回结果

请求地址示例,

POST http://localhost:8080/edatasecurity/api/maskdata

请求体示例,

{

"loginid":"admin",  // 当前调用数据加密接口的人,用于记录日志

"secsystemid":"z_tag",  // 安全数据源唯一标识

"datasetid":"ZZ.ABI11_BOOK_TYPE",   // 表的id,是表/视图在secsystemid中的唯一名称

"data":'[{"CID_":"008","TNAME_":"新类书籍"}]'//待脱敏的数据

}

返回结果,

{

"status":200,

"data":{

"loginid":"admin",  // 传入的loginid

"secsystemid":"z_tag",  // 传入的安全数据源唯一标识

"datasetid":"ZZ.ABI11_BOOK_TYPE",   // 传入的datasetid

"timestamp":1631695032106,    // 执行加密时的时间戳

"costtime":12,    // 执行加密耗费的时间

"data":[{ // 数据脱敏以后的数据

"CID_":"***",

"TNAME_":"新***"

}]

}

}

附件列表

文档内容仅供参考
如果您需要解决具体问题,还可以登录亿信社区
在提问求助板块提问,30分钟内帮您解决问题

如果您认为本词条还有待完善,请编辑

上一篇数据标准-映射审批工作流

下一篇权限标签

请先登录