php 程序授权机制,授权认证详细说明

签名格式: Authorization: Scheme AccessKey:Signature

德拓标准的格式:

Authorization: DATATOM AccessKey:Signature

AccessKey 和 Signature 中间用 : 号字符隔开

Signature = Base64 (strtoupper(hmac-sha1(SecretKey,uri_path)));

signature 详细计算算法如下:

1. 根据请求的url 提取path 部分

是指请求uri 中的path部分

如: http://192.168.1.1/api/idml/core/config/get ,那么path部分为:

uri_path = /api/idml/config/get

2. 根据颁发给开发用户的 SecretKey 计算 Signature, 使用 Base64 和 HMAC-SHA1算法

$signature = Base64(strtoupper(hmac-sha1(secret_key, uri_path)));

注意:HMAC-SHA1 计算出来的散列值转换成字符串,并且转换成全大写字母,再计算Base64,否则计算不一致

3. 添加授权信息到HTTP请求的 header

在请求http header中增加以下项:

Authorization: DATATOM AccessKey:Signature

AccessKey:Signature 中间用分号隔开, 中间不要有空隔!

eg: Authorization: DATATOM ZGF0YXRvbTpkYXRhd:G9tLmNvbS5wYXNzd29yZA==DDKJWEXAdjaJ

补充说明:

德拓数据管理引擎通过基于HMAC (Hash Message Authentication Code) 算法的自定义HTTP头来进行认证操作。

要认证一个请求, 客户端首先根据请求的Path部分和办法的secret_key计算出HMAC值,再对HMAC值做一次Base64编码这个过程被称为:请求签名(signing the request),计算出的HMAC值被称之为:签名(signature),之后,用户将该签名以参数请求的形式发给服务器。

当服务器收到该请求时, 会根据请求中的授权信息在本地进行校验合法性,并通过和客户端同样的算法计算出该请求的签名, 并进行匹配 , 匹配成功则允许操作。

HMAC-SHA1 算法的详细信息可参看 RFC 2104(http://www.ietf.org/rfc/rfc2104.txt) 标准。该算法输入两个参数:Key 和 Message,并计算出一个结果 Digest。对于德拓云来说,Key 就是 SecretAccessKey,Message 就是 UTF-8 编码的 StringToSign,计算出的结果 Digest 经过 Base64 编码之后就是 Signature。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值