签名格式: 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. 工作小记(三)----说说北京生活的乐趣
  2. 编程之美2.9 斐波那契数列
  3. python中的pass语句_Python中pass的作用与使用代码示例
  4. Node.js 初识 fs 模块
  5. 观察者模式及c++实现
  6. Android O 迁移应用官方指南
  7. 《犯罪心理学》读书笔记(part1)--蔑视社会秩序的最明显、最极端的表现就是犯罪
  8. 12产品经理要懂的-人性满足思维
  9. navmesh思路的A*寻路算法优化
  10. 关于时钟晶振  速率  倍频
  11. 7月31日 细雨霏霏 不是我的泪
  12. Java poi api插入文字水印到docx文件
  13. java web添加背景图片_java web项目中如何插入背景图片
  14. springboot上传文件临时文件夹找不到不能成功上传问题
  15. 前后端部署在两台服务器 服务器配置要求_漫谈前后端分离
  16. LB10S-ASEMI贴片整流桥LB10S
  17. 少说话多写代码之Python学习062——标准模块(random模块)
  18. 《乔布斯传》圈点(11)
  19. 将ubuntu 14.04 LTS设置成北京时间
  20. hyperMILL自动程序单后处理刀库模板制作视频教程

热门文章

  1. 关于Sass和Less牵扯的问题
  2. 【武汉万象奥科】瑞芯微RK3568芯片
  3. cmake 版本 arm_nRF52832开发丶开发环境搭建(ubuntu 18.04+arm-none-eabi-gcc)
  4. 献血好几天了,手还是很痛
  5. 利用VBA移动文件,创建文件
  6. 吴恩达机器学习系列篇p31~p42
  7. android读取imei原理,IMEI 的获取原理追踪
  8. textview文字被划掉的效果
  9. pyinstaller 打包项目及使用UPX压缩
  10. Java 第一个程序Hello World