电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

API认证方式-摘要认证

来源:金蝶云社区作者:金蝶2024-09-236

API认证方式-摘要认证

摘要认证使用摘要代替密码的传输,并且采用MD5、SHA之类的不可逆哈希算法对密码加密。客户端第一次请求时,通过服务端生成的随机数将这个随机数放在响应头中发送回客户端,然后客户端根据随机数、时间戳和其他用户信息,通过指定的加密算法生成摘要。后续客户端在调用请求时,将摘要放在请求头中再次发送给服务器。服务器拿到摘要后根据请求信息,从数据库取出客户端密码进行同样的计算得出的摘要进行对比,匹配则身份验证通过。

 

 

金蝶云苍穹摘要认证流程:

第三方系统直接调用金蝶云苍穹的API的时候,需要经历2步:

1、第三方appId和第三方app的摘要认证加密秘钥;

2、API调用过程中加入验证信息。

摘要签名不需要像accessToken认证方式一样分两步获取,可以通过java工具类指定默认算法如sha-256直接生成签名。对于POST方式提交的API内容,所有的验证内容在请求体中;对于GET方式提交的API内容,所有的验证内容在url的参数中。生成摘要后,后续只需要在请求的参数中带上签名信息就可以完成服务调用。摘要认证详细的方法demo见附件

调用接口示例如下。

1)GET API 实例

请求示例:

 

URLhttps://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认证方式-摘要认证

摘要认证使用摘要代替密码的传输,并且采用MD5、SHA之类的不可逆哈希算法对密码加密。客户端第一次请求时,通过服务端生成的随机数将这个随...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信