检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
签名认证算法使用有问题,客户端计算的签名结果与API网关计算的签名结果不同。 解决方法 下载js版本,查看可视化签名SDK,获取签名字符串。 解压压缩包,使用浏览器打开“demo.html”文件。 获取x-sdk-date值,x-sdk-date值必须与当前时间相差在15min以内。
用于校验签名时间,格式为ISO8601规范的UTC时间格式:YYYYMMDDTHHMMSSZ。 客户端须注意本地时间与时钟服务器的同步,避免请求消息头X-Sdk-Date的值出现较大误差。 API网关除了校验时间格式外,还会校验该时间值与网关收到请求的时间差,如果时间差超过15分钟,API网关将拒绝请求。
AK/SK签名认证流程 客户端涉及的AK/SK签名以及请求发送的流程概述如下: 构造规范请求。 将待发送的请求内容按照与API网关后台约定的规则组装,确保客户端签名、API网关后台认证时使用的请求内容一致。 使用规范请求和其他信息创建待签字符串。 使用AK/SK和待签字符串计算签名。
后端不可用 检查API配置的后端地址是否可用 APIGW.0201 Backend timeout. 504 后端超时 增大超时时间或缩小后端的处理时间 APIGW.0301 Incorrect IAM authentication information. 401 IAM认证信息错误
"request_id": "fd6530a01c09807640189e65e837b8ad" } 可能原因 客户端签名时间戳x-sdk-date与APIGW服务器时间相差超过15min。 解决办法 检查客户端时间是否正确。 父主题: 常见问题
X-Security-Token:{securityToken} 然后使用临时AK/SK对请求进行签名,签名SDK与AK/SK的签名SDK一致。 创建一个API,安全认证选择“华为IAM认证”,并发布。 获取当前账号的临时AK/SK与{securityToken},请参考IAM接口文档。 例如获得响应参数为: {
创建待签字符串 对HTTP请求进行规范并取得请求的哈希值后,将其与签名算法、签名时间一起组成待签名字符串。 StringToSign = Algorithm + \n + RequestDateTime + \n + HashedCanonicalRequest
访问密钥。 如需修改访问密钥,请删除访问密钥后重新创建。 为了保证历史兼容性,系统会使用访问密钥创建时间作为最近使用时间的初始值。在您使用该访问密钥时,系统将自动刷新最近使用时间。 输入描述信息,单击“确定”。 创建成功后,在“创建成功”弹窗中,单击“立即下载”下载密钥,并妥善保管。
npm install moment-timezone --save 在IDEA中安装Nodejs插件,如下图所示。 获取SDK 点此下载SDK与Demo。 解压时选择解压到当前文件夹,解压后目录结构如下: 名称 说明 signer.js SDK代码 node_demo.js Nodejs示例代码
"{php安装目录}/ext" extension=openssl extension=curl 在IDEA中安装PHP插件,如下图所示。 获取SDK 点此下载SDK与Demo。 解压时选择解压到当前文件夹,解压后目录结构如下: 名称 说明 signer.php SDK代码 index.php 示例代码 创建工程
libcurl4-openssl-dev 获取SDK 签名SDK只包含签名功能,不包含云服务的SDK功能,云服务SDK请参见SDK。 点此下载SDK与Demo。 解压时选择解压到当前文件夹,解压后目录结构如下: 名称 说明 hasher.cpp SDK代码 hasher.h header.h
云服务具体的API在各云服务的API参考手册中列明。 客户端须注意本地时间与时钟服务器的同步,避免请求消息头X-Sdk-Date的值出现较大误差。 API网关除了校验时间格式外,还会校验该时间值与网关收到请求的时间差,如果时间差超过15分钟,API网关将拒绝请求。
现签名算法的共享库,可用于.Net Framework与.Net Core项目。 backend-signature:后端服务签名示例。 sdk-request:签名算法的调用示例,请根据实际情况修改参数后使用。 请求签名与API调用 在工程中引入sdk。 1 2 3 4 5 6
将鼠标移至页面右上角的用户名处,在下拉列表中单击“我的凭证”,查看“项目ID”。 项目用于对云服务器资源进行物理隔离,默认有region级别的隔离,也可在Region下建立多项目,做更细级别的隔离。因此,请参考下图,在右侧列表中找到您的服务器资源对应的Region(所属区域),在其左侧列表中获取项目ID。 图1
111及以上版本,可至Oracle官方下载页面下载。暂不支持Java Development Kit 17或以上版本。 获取SDK 点此下载SDK与Demo。 解压后目录结构如下: 名称 说明 libs\java-sdk-core-x.x.x.jar 签名SDK pom.xml 构建Maven工程所需,定义其他依赖包
用Python执行此文件,升级pip,然后再执行以上命令安装。 在IDEA中安装Python插件,如下图所示。 获取SDK 点此下载SDK与Demo。 解压后目录结构如下: 名称 说明 apig_sdk\__init__.py SDK代码 apig_sdk\signer.py main
点此下载SDK与Demo。 解压时选择解压到当前文件夹,解压后目录结构如下: 名称 说明 signer_common.c 签名SDK代码 signer_common.h signer.c signer.h Makefile Makefile文件 main.c 示例代码 请求签名与API调用
完成工程创建后,目录结构如下。 图3 新建工程go的目录结构 “demo.go”为示例代码,请根据实际情况修改参数后使用。具体代码说明请参考请求签名与API调用。 请求签名与API调用 在工程中引入sdk(signer.go)。 import "./core" 生成一个新的Signer,分别输入AK和SK值。