借助知行之桥实现OAuth1.0协议调用交易伙伴的API接口

OAuth1.0 介绍

OAuth 是一种开放标准授权协议,允许用户授权第三方应用访问其资源,而不需要向第三方应用透露其用户名和密码。OAuth 1.0 使用 HMAC-SHA1 或 RSA-SHA1 签名方法来对请求进行签名,通过请求令牌、用户授权、交换令牌和使用令牌,确保请求在传输过程中不被篡改,具有较高的安全性。现在OAuth 1.0 已经逐步被其 2.0版本取代,处于弃用状态,如非必要我们也强烈推荐大家使用更新的版本。

需求实现

近期国内物流行业某客户提出这样的需求:他们的交易伙伴要求使用OAuth1.0来调用其API接口,推送指定的JSON格式文件。而知行之桥本身不支持在REST端口仅通过配置实现OAuth1.0,需要通过Script端口写代码实现。实现OAuth1.0的步骤包含生成签名基础字符串 (Signature Base String)、签名密钥 (Signature Key)、计算签名(Signature)、组装授权标头(Authorization Header),并通过REST端口配置组装后的授权标头,将文件POST给交易伙伴。

1.获取 OAuth Auth Token

因为OAuth 1.0 处于弃用状态,所以知行之桥本身不支持从管理界面获取OAuth 1.0 的 Auth Token。但是由于 OAuth 1.0 的 Auth Token是长期有效的。所以,可以借助其它工具获取后,配置在知行之桥中使用即可,比如借助Postman获取,或者直接从交易伙伴那里获取。

2. 构建基础字符串 (Signature Base String)

基础字符串的构建需要包括 HTTP 方法、URL 和参数:

HTTP 方法: POST
URL: https://xxx.xxx.xx/xxx/xx/xxx

构建查询参数和OAuth参数

查询参数和 OAuth 参数需要按照字母顺序排序,并进行百分比编码。以下是示例代码:

3. 生成签名密钥 (Signature Key)

签名密钥是由消费者密钥和令牌密钥组成,中间用&分隔并进行百分比编码。

4. 计算签名 (Signature)

使用 HMAC-SHA256 算法计算基础字符串和签名密钥的哈希值,然后进行 Base64 编码。

5. 组装授权标头 (Authorization Header)

将签名添加到 OAuth 参数中,并构建最终的授权标头。

6. 示例输出

基础字符串:

签名密钥:

f6b4XXXXXXXXX&b3eaXXXXXXXXXXXX

签名:

Fkejc1nsNs+Jm0SnevyXhaeCP8VX9ICxtqstsWstvJk=

授权标头: OAuth

oauth_consumer_key=”7e62XXXXXXXX”,oauth_nonce=”22dcXXX”,oauth_signature=”FkejcXXXXXXX=”,oauth_signature_method=”HMAC-SHA256″,oauth_timestamp=”1721197204″,oauth_token=”eec0XXXXXXXX”,oauth_version=”1.0″,realm=”7023245_SB2″

将得到的授权标头写在message header,以便在下一个REST端口使用。

REST端口调用

在REST端口选择填写“方法和URL”,认证类型选择None,在头部设置参数名称为“Authorization”,值为“[_message.header:authHeader]”。正文类型选择raw,Content Type选择“JSON(application/JSON)”即可。

OAuth1.0_API1.png
OAuth1.0_API2.png

最后

实际上业务中,OAuth 1.0 并没有OAuth 2.0流行,就是因为其复杂的授权流程,用户体验较差。而OAuth2.0简化了授权流程,提供多种授权模式、提高用户体验、增强灵活性和扩展性、使用 HTTPS 保证安全以及更好的开发者支持等方面,相比 OAuth 1.0 都有显著的优势。因此在未来的选择上,更推荐大家使用OAuth 2.0,借助知行之桥的REST端口,通过界面配置就可实现与交易伙伴的接口对接。

以下是REST端口选择OAuth2.0需要配置的参数:

OAuth1.0_API3.png

详细配置说明请点击

如果您希望了解更多有关EDI对接的相关信息,欢迎联系我们。

了解更多 EDI 信息,请您通过邮件 sales@kasoftware.cn 联系我们。点击下方蓝色按钮,即可免费试用 EDI 软件。

注:文案部分图片及内容来源于网络,版权归原创作者所有,如有侵犯到您的权益,请您联系我们进行删除,给您带来困扰,我们深感抱歉。

标签: , , , , ,
文章分类 帮助文档, 常见问题和回答, 操作指南, 知识库