hi,你好!欢迎访问本站!登录
本站由网站地图腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - 教程 - 杂谈 - 正文 君子好学,自强不息!

Golang 完成华为云 DMS 署名

2019-11-18杂谈搜奇网47°c
A+ A-

组织要求

起首组织要求,也就是要对哪一个详细接口举行接见,须要供应什么必要的参数。在组织要求(点击检察中能够看到,对 DMS 效劳来讲必要的要求组成包含以下部份

  • 要求URI,比方 https://dms.cn-north-1.myhuaweicloud.com/v1.0/{project_id}/queues/{quque_id}(差别地区的Region部份差别)
  • 要求要领,如 "GET"、"POST"
  • 要求音讯头,必选的是 "Content-Type",划定了音讯体的花样,默许取值 "application/json",即音讯体 "Body" 以 Json 花样提交
  • 要求音讯体,有的接口须要,有的接口不须要

预备参数

以接口检察指定行列(点击检察)为例

  • 要求URI:https://dms.cn-north-1.myhuaweicloud.com/v1.0/{project_id}/queues/{quque_id}
  • 要求要领:"GET"
  • 要求音讯体:无
  • project_id:项目ID,去一致身份认证的项目中依据地区差别查找
  • queue_id:要接见的行列ID,去控制台点开该行列检察
  • AK/SK:秘钥对,在一致身份认证内的用户的平安设置功用中治理,是生成署名的必须参数

盘算署名

以AK/SK署名认证算法详解(点击检察)为规范,编写算法或运用 SDK,本例中运用的是官方供应的 SDK,挪用步骤以下(点击检察)

生成 HTTP 要求

以 AK=ABCDE....WYZ 和 SK=123...890为例,运用 SDK 生成署名

/*
检察指定行列
*/
url := "https://dms.cn-north-1.myhuaweicloud.com/v1.0/506d66e5/queues/bc8e-86-42-8c-4d2"
r, err := http.NewRequest(
    "GET",
    url,
    ioutil.NopCloser(bytes.NewBuffer([]byte(""))))
/*
增加必要的 Content-Type 头
*/
r.Header.Add("content-type", "application/json")
/*
建立署名对象并署名
*/
s := sign.Signer{ Key:conf.AK, Secret:conf.SK}
s.Sign(r)

s.Sign(r) 要领将两个要求头增加到了 r.Headers 中,一个是 X-Sdk-Date 其值是时候戳,另一个是 Authorization 其值是经由划定体式格局盘算并拼接的一串字符串,假如将 r.Headers 打印出来就是

map[Authorization:[SDK-HMAC-SHA256 Access=ABCDE....WYZ, SignedHeaders=content-type;x-sdk-date, Signature=0e9d22d370b3b34b6108998c3ced1d99cdb6d813aa41b5efeb7828295bb8f7a8] Content-Type:[application/json] X-Sdk-Date:[20191105T083411Z]]

一切参数均已完好,整顿一下本次要求的一切内容

  • 要求完全URI:https://dms.cn-north-1.myhuaweicloud.com/v1.0/506d66e5/queues/bc8e-86-42-8c-4d2
  • 要求头
    • Content-Type:application/json
    • X-Sdk-Date:20191105T083411Z
    • Authorization:SDK-HMAC-SHA256 Access=ABCDE....WYZ, SignedHeaders=content-type;x-sdk-date, Signature=0e9d22d370b3b34b6108998c3ced1d99cdb6d813aa41b5efeb7828295bb8f7a8
    • 要求体:该接口无要求体,即 http 协定的 body 为空

运用 Postman 提交要求,响应正文以下

{
    "id": "bcf28b8e-83e6-4432-870c-413e79e555d2",
    "name": "huawei-dms-queue-log-test",
    "description": "",
    "reservation": 4320,
    "created": 1559033038000,
    "queue_mode": "KAFKA_HA",
    "max_msg_size_byte": 524288,
    "produced_messages": 2,
    "eff_date": 1559033038000,
    "group_count": 1,
    "kafka_topic": "k-506dba42b0f146b9a6026653544f66e5-bcf28b8e-83e6-4432-870c-413e79e555d2"
}

署名比对

以上信息有的经由了优化处置惩罚,屏障掉了能够的隐私信息,怎样考证盘算效果准确与否呢。当 URI=https://dms.cn-north-1.myhuaweicloud.com/v1.0/506dba42b0f146b9a6026653544f66e5/queues/bcf28b8e-83e6-4432-870c-413e79e555d2AK=ABCDE....WYZSK=123...890X-Sdk-Date=20191105T094500Z 时,署名效果以下即为准确

Authorization:
SDK-HMAC-SHA256 Access=ABCDE....WYZ, SignedHeaders=content-type;x-sdk-date, Signature=8e0cb2f284b44795eee578d3484217a929cc1d9347bc6445477322eff15f8743

注重

云效劳中尤其是API挪用能够触及许多权限题目,要搜检一切能够的权限是不是翻开,比方当前AK/SK对应的用户是不是是IAM用户,该用户地点的用户组是不是被受权了对DMS产物的接见。在本文编写前,就碰到了署名一直报错 402 的题目,在对IAM账号地点用户组给予了响应的战略后接见一般,虽然不能100%确认是该缘由。

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  移步手机端
Golang 完成华为云 DMS 署名

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
未定义标签

本文来源:搜奇网

本文地址:https://www.sou7.cn/282339.html

关注我们:微信搜索“搜奇网”添加我为好友

版权声明: 本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。请记住本站网址https://www.sou7.cn/搜奇网。

发表评论

选填

必填

必填

选填

请拖动滑块解锁
>>