php 程序授权机制,授权认证详细说明
发布日期:2021-06-24 14:38:24 浏览次数:3 分类:技术文章

本文共 1266 字,大约阅读时间需要 4 分钟。

签名格式: 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。

转载地址:https://blog.csdn.net/weixin_33423069/article/details/115951312 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java 命令提示符,如何使用Java打开命令提示符并插入命令?
下一篇:php表单yii2,Yii2创建表单(ActiveForm)方法详解

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月05日 20时24分24秒