检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
、请求体和签名使用的方法、路径、查询参数、请求体是否一致 检查客户端机器时间是否正确 请参考使用APP认证调用API检查签名代码的问题。
最后一个请求消息头也会携带一个换行符。叠加规范中CanonicalHeaders自身携带的换行符,因此会出现一个空行。 举例: 查询VPC列表的消息头,需要包含签名时间(X-Sdk-Date),云服务Endpoint(Host)、内容类型(Content-Type)。
得到签名消息头后,将其增加到原始HTTP请求内容中,请求将被发送给云服务API网关,由API网关完成身份认证。
请求消息头参数是否可以不参与签名 如果您按照AK/SK签名认证算法详解自行完成API请求签名,请注意X-Sdk-Date必须参与签名,其他请求消息头参数可选。
1 sig.Sign(r) X-Sdk-Date是一个必须参与签名的请求消息头参数。 您无需关注哪些消息头参数参与了签名,由SDK自行完成。 访问API,查看访问结果。
客户端须注意本地时间与时钟服务器的同步,避免请求消息头X-Sdk-Date的值出现较大误差。 API网关除了校验时间格式外,还会校验该时间值与网关收到请求的时间差,如果时间差超过15分钟,API网关将拒绝请求。
查看账号名和账号ID。 图1 查看账号名和账号ID 父主题: AK/SK签名认证操作指导
子项目场景下怎么调用API 子项目场景下调用API: 如果您的资源在子项目中,调用云服务API时需要增加一个请求消息头参数X-Project-Id,参数值填您的项目ID。 参数X-Project-Id相关操作请参见签名SDK与demo。 父主题: 常见问题
因此,请参考下图,在右侧列表中找到您的服务器资源对应的Region(所属区域),在其左侧列表中获取项目ID。 图1 查看项目ID 如果要查看子项目ID,请单击该项目,展开子项目列表后获取。 父主题: AK/SK签名认证操作指导
将生成的签名信息作为请求消息头添加到HTTP请求中,或者作为查询字符串参数添加到HTTP请求中。 以下做详细介绍。 本章节主要用于帮助用户自行完成API请求的签名。
1 sig_sign(¶ms); 使用curl库访问API,查看访问结果。
1 var opt = sig.Sign(r) 访问API,查看访问结果。
常见问题 子项目场景下怎么调用API API调用是否支持长连接 Body体是否可以不参与签名 请求消息头参数是否可以不参与签名 使用临时AK/SK做签名 IAM认证信息错误 APP认证信息错误 "The API does not exist or has not been published
Body体是否可以不参与签名 当您不想对Body进行签名时,请在消息头添加以下参数和参数值: X-Sdk-Content-Sha256:UNSIGNED-PAYLOAD 添加之后,对body计算hash的位置的值为UNSIGNED-PAYLOAD。 父主题: 常见问题
AK/SK认证方式下,全局服务的接口调用,需在请求消息头中配置X-Domain-Id。(全局服务:服务部署时不区分物理区域。如IAM、OBS、CDN等。) 获取方式请参考获取账号名和账号ID。 x-stage API接口的环境,请参考各云服务的接口API的环境信息。
1 $curl = $signer->Sign($req); 访问API,查看访问结果。
1 HttpWebRequest req = signer.Sign(r); 访问API,查看访问结果。
签名SDK只包含签名功能,不包含云服务的SDK功能,云服务SDK请参见SDK。 准备IDEA开发环境 获取并安装IntelliJ IDEA 2022.2.1或以上版本,可至IntelliJ IDEA官方网站下载。
使用临时AK/SK做签名 如果使用临时AK/SK对请求签名,您将签名SDK集成到应用时,请在消息头添加以下参数和参数值: X-Security-Token:{securityToken} 然后使用临时AK/SK对请求进行签名,签名SDK与AK/SK的签名SDK一致。
apt-get install libcurl4-openssl-dev 获取SDK 签名SDK只包含签名功能,不包含云服务的SDK功能,云服务SDK请参见SDK。 点此下载SDK与Demo。