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

php 程序授权机制,授权认证详细说明相关推荐

  1. 支付宝小程序获取用户授权并进行认证登录流程(前端)

    1.支付宝小程序获取用户授权并进行认证登录流程 1.1申请获取用户信息能力     登录功能做之前要先沟通好客户的需求,支付宝小程序获取用户授权调用相应的接口之前要先获得对应的能力.如果需要获取身份证 ...

  2. ASP.NET Core 认证与授权[2]:Cookie认证

    ASP.NET Core 认证与授权[2]:Cookie认证 原文:ASP.NET Core 认证与授权[2]:Cookie认证 由于HTTP协议是无状态的,但对于认证来说,必然要通过一种机制来保存用 ...

  3. ASP.NET Core 认证与授权[6]:授权策略是怎么执行的?

    ASP.NET Core 认证与授权[6]:授权策略是怎么执行的? 原文:ASP.NET Core 认证与授权[6]:授权策略是怎么执行的? 在上一章中,详细介绍了 ASP.NET Core 中的授权 ...

  4. H5页面使用微信网页授权实现登录认证

    在用H5开发微信公众号页面应用时,往往需要获取微信的用户信息,H5页面在微信属于访问第三方网页,因此通过微信网页授权机制,来获取用户基本信息,此处需要用户确认授权才能获取,用户确认授权后,我们可以认为 ...

  5. 微信小程序开发02 授权模型: 小程序的用户体系与 OAuth 规范

    你好,我是俊鹏,今天我想跟你聊一下微信小程序的授权模型. 登录认证是一个完整应用必备的模块,除非你的应用程序不需要任何与用户相关的功能(比如hao123 这种静态导航网站一般不会涉及用户体系).很多人 ...

  6. 微信小程序开发 - 用户授权登陆

    本篇将帮助读者实现基于 微信开发者工具 & C#环境 下的用户在小程序上的授权登陆. 准备: 微信开发者工具下载地址:https://developers.weixin.qq.com/mini ...

  7. 在中间层 .NET 应用程序中通过授权管理器使用基于角色的安全

    基于角色的安全是从 Windows NT 的第一个版本开始在 Windows 平台上发展而来的.使用角色,操作系统可以通过检查称为 BUILTIN\Administrators 的组的安全上下文做出一 ...

  8. 从入门到入土:[linux实践]-pam|编写基于libpam的用户认证程序|编写基于PAM认证的应用程序|详细说明|实验步骤|实验截图

    写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 编写基于libpam的用户认证程序|编写基于PAM认证的应用 ...

  9. 微信中html5获取手机号,微信小程序通过用户授权获取手机号

    这篇文章主要介绍了微信小程序如何通过用户授权获取手机号(getPhoneNumber),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 小程序有一个获 ...

最新文章

  1. java 取整型的低八位_Java 基础(十五)并发工具包 concurrent
  2. Ubuntu安装docker-ce,vagrant,virtualbox步骤
  3. 逻辑回归模型(Logistic Regression, LR)基础
  4. 【西安活动】 | 4月20日「拥抱开源,又见.NET:云时代 • 新契机」
  5. android和ios系统的内存,WP和Saipan系统的流畅程度相当于ios,占用的内存很少,但是为什么要用Android取代它...
  6. 如何阅读3,500万个博客?
  7. mysql+查看connection_如何查看MySQL connection id连接id
  8. c 语言 00字符串 截断,c语言截断字符串
  9. mybatis日志能正常打印出正确sql执行语句;数据库有内容;却查询不出来
  10. SpringBoot 启动过程,你不知道的秘密!
  11. java json-rpc_JSON-RPC(jsonrpc4j)使用demo
  12. 微信小程序input禁止输入特殊符号
  13. Excel分组数据、并创建多个新Excel文件
  14. 十五、陈述句_高频扩充
  15. php视频边下边播,PHP + NGINX 控制视频文件播放,并防止文件下载
  16. 日常维护SQL以及脚本
  17. http://www.bubuko.com/infodetail-2274185.html
  18. 100-days: twenty-four
  19. Qos实验配置-CBQ方式
  20. 神雕侠侣手游服务器维护,神雕侠侣手游7月30日更新维护公告内容大全

热门文章

  1. error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead.
  2. 计算智能——粒子群算法的寻优算法
  3. python将dataframe导出为csv_Pandas DataFrame如何转换为CSV?详细操作————
  4. 如何低成本的搭建一个真实的Kubernetes集群
  5. PHP中json_encode与json_decode用法
  6. 协同软件表单自定义平台
  7. python决策树结果图_Python决策树图形输出
  8. Android中Uri和path file三者的相互转换
  9. 天津职称英语和计算机考试,关于天津职称英语
  10. 自组式直流电桥测电阻(科大奥锐仿真实验)