苍穹OpenAPI入门篇之摘要认证

在上一篇文章“苍穹OpenAPI入门篇之AccessToken认证”中,我们介绍了金蝶云苍穹三种认证方式中的AccessToken认证,本期小编为大家介绍另一种安全便捷的登录认证方式:摘要认证。
1 应用场景
第三方系统调用金蝶云苍穹API服务时,需先通过身份认证。
2 解决方案
金蝶云苍穹支持通过摘要认证进行身份认证。
2.1 摘要认证简介
摘要认证通过SHA-256加密算法生成摘要,保障客户端与服务端通信的内容不被第三方篡改,提高破解和报文重放攻击的难度,是一种安全性更高的认证方式。
2.2 摘要认证特点
摘要认证是基于HTTP基本认证的改进版本,其主要特点在于:当我们访问某个URL时,在请求中使用摘要来代替密码的传输,并且采用MD5、SHA之类的不可逆哈希算法对密码加密,增强了敏感数据在传递过程中的安全性,在一定程度上防止信息被篡改,保障通信的安全。
2.3 摘要认证过程原理
客户端第一次请求时,通过服务端生成随机数,并将该随机数放在响应头中发送回客户端。然后,客户端根据随机数、时间戳和其他用户信息,通过指定的加密算法生成摘要。
后续客户端在调用请求时,将摘要放在请求头中再次发送给服务器。服务器获取到摘要后,根据请求信息从数据库取出客户端密码进行相同的计算后,与得出的摘要进行对比,匹配则身份验证通过,可以进行服务调用。
具体过程原理如下图所示:

摘要认证过程原理
3 功能实现
金蝶云苍穹的摘要认证流程具体如下:
Step1 注册第三方应用
在金蝶云苍穹开放平台录入第三方应用的基本信息,路径为:【开发服务云】→【开放平台】→【第三方应用】。点击摘要加密认证密钥的“刷新”按钮,自动生成摘要加密认证key。

第三方应用配置示例
Step2 服务调用
金蝶云苍穹可以通过Java工具类指定默认算法(SHA-256)直接生成摘要:对于GET方式提交的API内容,所有的验证内容均放置在url的参数中;对于POST方式提交的API内容,所有的验证内容放置在请求体中。
注:摘要计算公式为:HMACSHA256(query的拼接参数/请求体内容+timestamp+signatureNonce,key)。
1)GET API 实例
请求示例:
//URL:
https://feature.kingdee.com:2024/baseline_a/kapi/sys/isc_demo_basedata_1/query?select=name,number&filter=name eq 123asd&appId=TEST×tamp=2021-08-18 14:19:08&signatureNonce=iksiertoidkwek;oitdwudysletwsuej&signature=32beeebfc277817a80b01d5787242c51ca5295f5edcf2eb9371ff367f8b487a5¶meters=select&user=17299999999&usertype=Mobile&accountId=1173910536060928000
//请求结果:
{
"success": "true",
"data": {
"count": 1,
"header": [
{
"name": "name",
"caption": "名称",
"type": "String"
},
{
"name": "number",
"caption": "编码",
"type": "String"
}
],
"rows": [
[
"123asd",
"123asd"
]
]
}
}HTTP query 查询参数说明如下:

HTTP query 查询参数说明
注:如果没有参数,也需要加一个默认参数“test=tt”来完成数据的认证。
2)POST API 实例
请求示例:
//URL: http://localhost:8080/ierp/kapi/sys/pm_purorderbill/save //请求Header参数: appId=test sig
苍穹OpenAPI入门篇之摘要认证
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



