数据需求方可信访问验证
概述:数据开发利用方将API在发布到环境后,支持被授予权限的数据需求方用户调用。调用过程请参考可信接入流程。
前提:在调用API前,确保数据需求方所在网络与API的访问域名或地址互通。
- 若数据需求方与ROMA Connect实例在相同VPC内时,可直接访问API。
- 若数据需求方与ROMA Connect实例在同一区域的不同VPC内时,可通过创建VPC对等连接,将两个VPC的网络打通,实现同一区域跨VPC访问API。
- 若数据需求方与ROMA Connect实例在不同区域的不同VPC内时,可通过创建云连接实例并加载需要互通的VPC,将两个VPC的网络打通,实现跨区域跨VPC访问API。
- 若数据需求方与ROMA Connect实例通过公网互通,请确保ROMA Connect实例已绑定弹性IP,且弹性IP与公网互通。
对于API的高并发业务场景,建议使用“铂金版X8-服务集成”规格的实例,并为APIC开启外置ELB。
可信应用注册
- 概述:数据需求方需要通过可信访问代理(SDK)的【可信应用注册】接口,向可信访问平台进行应用注册,成为可信应用。
- 前提条件:数据需求方首先需要根据应用开发语言类型,向CA线下提交可信应用接入申请表,申请通过后CA向应用方返回appID、appSecret、SDK软件包。本操作文档不包该流程,请联系相关人员进行申请。
- 接口规范
接口描述:数据需求方通过SDK对应用进行可信注册,接口调用成功后会在本地生成应用签名证书。签名证书会在后续CA接口调用中用于请求签名。
表1 请求参数 参数名称
类型
必选
参数说明
appID
string
是
应用id,由可信访问平台分配
appSecret
string
是
应用密钥,由可信访问平台分配
corpName
string
是
单位名称
corpCode
string
是
统一社会信用代码
表2 响应参数 参数名称
类型
必选
参数说明
code
int
是
返回码,0表示成功
msg
string
是
返回消息,多用于描述失败时的错误信息
从CA申领可信访问令牌
- 概述:数据需求方需要调用可信访问代理(SDK)的【申领法人可信访问令牌】接口,向可信访问平台申领可信访问令牌。
- 前提条件:完成可信应用注册。
- 接口规范:法人用户进行身份认证后,数据需求方调用该SDK接口申领可信访问令牌。可信访问令牌默认有效期为5分钟,数据需求方需要在失效后重新申请新的可信访问令牌。
表3 请求参数 参数名称
类型
必选
参数说明
transactionId
string
是
业务流水号
authType
string
是
认证方式,取值范围为{1:法人四要素;2:对公打款;3:数字证书;4:电子营业执照;5:二维码}
corpName
string
是
单位名称,认证方式为1-4时该项必填
corpCode
string
是
统一社会信用代码,认证方式为1-4时该项必填
qrCode
string
否
二维码码值,认证方式为5时该项必填
location
string
否
设备地理位置
permission
string
否
访问授权凭证,格式为{授权方:授权码}
调用第三方授权服务获取授权码,授权方为TP。
表4 响应参数 参数名称
类型
必选
参数说明
code
int
是
返回码,0表示成功
msg
string
是
返回消息,多用于描述失败时的错误信息
data
string
是
可信访问令牌
数据服务公共认证部分
概述:参考可信接入流程中的数据服务访问流程,数据需求方调用运营平台已申请订阅的数据服务接口,按照本章节要求,在请求头部携带由可信访问平台分配的可信访问令牌和从数据集团获取的X-HW-ID/X-HW-AppKey,进行数据需求方身份和访问权限的校验。
前提条件
- 数据开发方已完成服务API的开发,并开放API。
- 数据需求方已完成可信注册并获取访问令牌。
认证规范
- 接口路径示例:https://ROMA Connect地址或域名:端口 /数据服务URL路径
- 调用方法:GET、POST
- 接口协议:接口统一采用Restful协议,请求和响应体采用标准JSON结构
- 接口描述:数据需求方调用数据服务API所需要的公共认证参数和认证失败的响应。
- 请求头部公共参数
表5 请求头部公共参数 参数名称
类型
必选
参数说明
X-HW-ID
string
是
从数据集团获取的X-HW-ID
X-HW-AppKey
string
是
从数据集团获取的X-HW-AppKey
idAccessToken
string
是
可信访问平台分配的法人可信访问令牌
表6 认证失败响应参数 参数名称
类型
必选
参数说明
error_code
string
是
返回码,用于表示错误类型
error_msg
string
是
返回消息,多用于描述失败时的错误信息
request_id
string
是
此次请求的ID,用于问题定位
调用示例
GET: https://ROMA Connect地址或域名:端口/xxxx?id=xxxx HTTP/1.1
消息头:
Content-Type: application/json;charset=UTF8 Accept: application/json X-HW-ID: xxxx X-HW-AppKey: xxxx idAccessToken: xxxx
认证失败响应示例:
{ "error_code" : "APIC.0303", "error_msg" : "Incorrect app authentication information:xxx", " request_id" : "c77f5e81d9cb4424bf704ef2b0ac7601", }
认证成功时响应实际数据结果,以各个数据服务接口响应内容为准。
访问客户端
- 通过在内网使用ip访问api
【示例】通过postman调用接口,接口uri:https://10.100.37.229/app_01/api_01图1 内网使用ip访问api
- x-hw-id:被授权的集成应用的key
- x-hw-appkey:被授权的集成应用的secret,与x-hw-id完成ROMA的app认证
- idaccesstoken:模拟自定义认证过程中接口请求携带的CA下发的token,用于请求在通过app认证后,将该值传递至前端认证中的后端函数中,通过接口请求的方式向公网搭建的CA认证本次请求是否可信
访问https的接口需要将postman的设置中的SSL certificate verification关闭!图2 设置
- 前端认证中的后端函数中访问的CA,为搭建在云服务器上的模拟CA工作的web服务,该服务主要实现为:当请求模拟CA的idaccesstoken为huawei@123时,模拟CA返回true,当idaccesstoken为其他值时,返回false,从而实现模拟认证通过和失败。
图3 访问客户端
- x-hw-id、x-hw-appkey、idaccesstoken均符合要求,访问结果如下:
图4 访问结果1
- x-hw-id不符合要求时,访问结果如下:
图5 访问结果2
- x-hw-appkey不符合要求时,访问结果如下:
图6 访问结果3
- idaccesstoken不符合要求时,访问结果如下:
图7 访问结果4
- 当使用的x-hw-id、x-hw-appkey为api授权的其它集成应用的key和secret时,访问结果如下:
图8 访问结果5
- 当使用的x-hw-id、x-hw-appkey为api未授权的其它集成应用或客户端的key和secret时,访问结果如下:
图9 访问结果6
- x-hw-id、x-hw-appkey、idaccesstoken均符合要求,访问结果如下: