平台介绍-开放API接口-鉴权

       平台的理念是一个组织内部只建一套系统。但是现实情况是,组织内部已经建立了很多系统,是不能一次性替代的,只能先搭起平台,然后逐步开始替换。这样就不可避免的存在其他系统和平台进行交互的问题。

      平台为此设计了开放API接口。其中的核心问题是鉴权。鉴权有多种模式,平台选择了签名鉴权模式,省去了先握手获取Token,然后用Token访问的复杂过程。下面详细说明接口签名鉴权设计原理。

      接入系统首先需要从平台获取应用ID(AppID)和应用密钥(AppSecret)

      接入系统调用平台API时,需要填充如下头信息:

QLM-Open-App-Id:应用ID
QLM-Open-Auth-Mode:固定值Signature
QLM-Open-CA-Signature:签名值,这个是鉴权的核心
QLM-Open-CA-Timestamp:时间戳,单位毫秒
Accept:响应类型,固定为*/*
Content-Type:application/json; charset=UTF-8
Content-MD5:请求Body体数据的 Content-MD5 值

签名计算是鉴权的核心,它可以确保是由AppID对应的客户端发起的,且发起内容在传输过程中没有被篡改。签名过程如下:

1、准备待签名字符串。

第一行:HTTP的请求方法,需大写。距离:GET、POST。

第二行:固定为*/*

第三行:请求头中的QLM-Open-CA-Timestamp值

第四行:请求头中的 Content-Type 值

第五行:请求头中的QLM-Open-CA-Timestamp

第六行:请求地址,注意不含服务器及其端口

注意行以/n结束,不要加/r,另外大小写是敏感的。

2、计算签名。

使用 AppSecret(应用密钥) 对待签名字符串进行 HmacSHA256 加密处理

服务器端校验原理,从请求头里获取应用ID,查询后台登记信息,找到对应的AppSecret,对信息进行同样的处理,最后验证签名是否一样。

基于同样原理,可以对请求body做校验,确保传输过程中,请求没有被篡改。基本方式是客户端对body进行处理,然后将结果存入Content-MD5头中,服务器端收到请求后,做同样处理,然后验证是否一致。

小技巧:平台提供的接口可能会大改,为了保持兼容,接口地址第一段是版本,目前只提供了/V1/*,将来会提供/V2/*。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大道不孤,众行致远

请给我加油

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值