api postmain 鉴权_API鉴权

本文详细介绍了OneNET API的鉴权流程,包括鉴权参数Authorization的计算、签名算法、参数编码以及Python和Java的代码示例。鉴权通过访问资源、过期时间和签名方法等确保API访问的安全性。
摘要由CSDN通过智能技术生成

API鉴权

为提高API访问安全性,OneNET API的鉴权参数Authorization作为Header参数存在。

Authorization计算的核心密钥为accessKey,用户需要使用核心密钥通过签名算法计算签名,与其他参数共同组成鉴权参数,然后将鉴权参数Authorization作为请求Header参数进行鉴权。

通过避免核心密钥在网络上直接传输,增加认证参数时效控制,增加密钥权限粒度控制(即将到来)等方式来提高鉴权安全性,最大限度保证访问安全。

1. API调用示例

(以“查询设备详情API”为例)

GET /devices/35****92 //35****92为平台随机分配的设备ID

Authorization: version=2018-10-31&res=products%2F123123&et=1537255523&method=sha1&sign=ZjA1NzZlMmMxYzIOTg3MjBzNjYTI2MjA4Yw%3D

2. 鉴权参数算法

主要介绍Authorization的计算过程,Authorization用于接口调用,构成参数如下表所示:

名称类型是否必须参数说明参数示例

versionstring是参数组版本号,采用日期格式,目前支持"2018-10-31"2018-10-31

resstring是访问资源 resource

格式为:父资源类/父资源ID/子资源类/子资源ID

见表后的res使用场景说明products/123123

products/123123/devices/78329710

mqs/osndf09nand9f21390

etint是访问过期时间 expirationTime,采用unix时间

当一次访问参数中的et时间小于当前时间时,平台会认为访问参数过期从而拒绝该访问1537255523

表示:北京时间 2018-09-18 15:25:23

methodstring是签名方法 signatureMethod

支持md5、sha1、sha256sha256

signstring是签名结果字符串 signature

2.1 res使用场景说明

使用场景如下表:

场景res参数格式示例说明

API访问products/{pid}products/123123

设备连接products/{pid}/devices/{device_name}products/123123/devices/mydev需使用设备级密钥

2.2 sign签名算法

(1)参数sign的生成算法为:

sign = base64(hmac_(base64decode(accessKey), utf-8(StringForSignature)))

其中:

accessKey为OneNET为独立资源(例如,产品)分配的唯一访问密钥,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值