API认证方式-摘要认证

摘要认证使用摘要代替密码的传输,并且采用MD5、SHA之类的不可逆哈希算法对密码加密。客户端第一次请求时,通过服务端生成的随机数将这个随机数放在响应头中发送回客户端,然后客户端根据随机数、时间戳和其他用户信息,通过指定的加密算法生成摘要。后续客户端在调用请求时,将摘要放在请求头中再次发送给服务器。服务器拿到摘要后根据请求信息,从数据库取出客户端密码进行同样的计算得出的摘要进行对比,匹配则身份验证通过。
金蝶云苍穹摘要认证流程:
第三方系统直接调用金蝶云苍穹的API的时候,需要经历2步:
1、第三方appId和第三方app的摘要认证加密秘钥;
2、API调用过程中加入验证信息。
摘要签名不需要像accessToken认证方式一样分两步获取,可以通过java工具类指定默认算法如sha-256直接生成签名。对于POST方式提交的API内容,所有的验证内容在请求体中;对于GET方式提交的API内容,所有的验证内容在url的参数中。生成摘要后,后续只需要在请求的参数中带上签名信息就可以完成服务调用。摘要认证详细的方法和demo见附件。
调用接口示例如下。

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=32beeebfc277817a80b0 1d5787242c51ca5295f5edcf2eb9371ff367f8b487a5¶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查询参数说明
传入参数 | 字段类型 | 是否必输 | 字段说明 |
select | string | 是 | 定义查询类服务的返回参数,如id、name、number等 |
filter | string | 否 | 过滤参数,可以设置查询条件如filter=name eq 123asd |
appId | string | 是 | 第三方appId |
timestamp | string | 是 | 当前时间,和服务器时间相差10分钟就为无效请求,目前格式为yyyy-MM-dd HH:mm:ss,以后为时间戳 |
signatureNonce | string | 是 | 访问随机数,最好32位uuid,如果随机数已经访问过,则再次访问无效 |
signature | string | 是 | 用SHA-256算法和对称加密key对query的拼接参数(如:tesetA=tt&testB=tt2+timestamp+ signatureNonce进行摘要后的结果。公式:HMACSHA256(query的拼接参数+timestamp+signatureNonce,key) |
parameters | string | 是 | 参与摘要的参数列表,多个参数用“,”隔开 |
user | string | 是 | 用户手机号 |
usertype | string | 否 | 用户类型:Mobile: 标识为手机,默认为手机 Email:标识为email UserName:标识为用户名 |
如果没有参数,也要加一个默认参数 test=tt来完成认证数据。
2)POST API 实例
请求示例:
URL:http://localhost:8080/ierp/kapi/sys/pm_purorderbill/save
请求Header参数: appId=test signature=32beeebfc277817a80b01d5787242c51ca5295f5edcf2eb9371ff367f8b48 |
API认证方式-摘要认证
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



