检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
将鼠标移至页面右上角的用户名处,在下拉列表中单击“我的凭证”,查看“项目ID”。 项目用于对云服务器资源进行物理隔离,默认有region级别的隔离,也可在Region下建立多项目,做更细级别的隔离。因此,请参考下图,在右侧列表中找到您的服务器资源对应的Region(所属区域),在其左侧列表中获取项目ID。 图1
API调用是否支持长连接 API网关支持长连接。 注意适当使用,避免占用太多资源。 父主题: 常见问题
如果本手册的多语言签名示例没有涵盖您使用的编程语言,请根据签名流程与算法,自主实现请求的签名。 API调用的另一种认证方式为Token认证,Token认证的说明与示例包含在各云服务的API参考手册中的“认证鉴权”章节。 AK/SK签名认证方式,仅支持Body体大小为12M以内,12M以上的请求,需使用Token认证。
常见问题 子项目场景下怎么调用API API调用是否支持长连接 Body体是否可以不参与签名 请求消息头参数是否可以不参与签名 使用临时AK/SK做签名 IAM认证信息错误 APP认证信息错误 "The API does not exist or has not been published
401 APP认证信息错误 APP签名认证时,做如下检查: 检查请求的方法、路径、查询参数、请求体和签名使用的方法、路径、查询参数、请求体是否一致 检查客户端机器时间是否正确 请参考使用APP认证调用API检查签名代码的问题。 APPCODE简易认证时,做如下检查:检查请求是否携带了X-Apig-AppCode头域
构造规范请求 使用AK/SK方式进行签名与认证,首先需要规范请求内容,然后再进行签名。客户端与云服务API网关使用相同的请求规范,可以确保同一个HTTP请求的前后端得到相同的签名结果,从而完成身份校验。 HTTP请求规范伪代码如下: CanonicalRequest =
"request_id": "cb141a91c945e68950a14a8eff5d62dc" } 可能原因 签名认证算法使用有问题,客户端计算的签名结果与API网关计算的签名结果不同。 解决方法 请参考Incorrect IAM authentication information:
AK/SK签名认证算法详解 AK/SK签名认证流程 构造规范请求 创建待签字符串 计算签名 添加签名信息到请求头
签名SDK与demo Java Go Python C# JavaScript PHP C++ C Android 父主题: AK/SK签名认证操作指导
AK/SK签名认证操作指导 AK/SK签名认证操作流程 获取EndPoint 获取AK/SK 获取项目ID 获取账号名和账号ID 签名SDK与demo
获取并安装Python安装包(可使用2.7.9+或3.X,包含2.7.9),可至Python官方下载页面下载。 Python安装完成后,在命令行中使用pip安装“requests”库。 pip install requests 如果pip安装requests遇到证书错误,请下载并使用Python执
项目ID,在大多数API接口调用时需要配置在URI中,用以识别不同的项目。 获取方式请参考获取项目ID。 X-Project-Id 子项目ID,在多项目场景中使用。如果云服务资源创建在子项目中,AK/SK认证方式下,操作该资源的接口调用需要在请求消息头中携带X-Project-Id。 获取方式请参考获取项目ID。
WebRequest,并在请求参数中添加用于签名的X-Sdk-Date头和Authorization头。 如果您使用HTTP Client,可以从请求中获取头部信息使用。关于头部信息,请参考AK/SK签名认证算法详解。 1 HttpWebRequest req = signer.Sign(r);
java SSLCipherSuiteUtil.java UnsupportProtocolException.java 如果使用maven构建,可以使用SDK包中的libs\java-sdk-core-x.x.x.jar,x.x.x为SDK包版本号,例如3.2.5。加入java
te”。 图2 Go 完成工程创建后,目录结构如下。 图3 新建工程go的目录结构 “demo.go”为示例代码,请根据实际情况修改参数后使用。具体代码说明请参考请求签名与API调用。 请求签名与API调用 在工程中引入sdk(signer.go)。 import "./core"
"X-Project-Id", "xxx"); 进行签名,执行此函数会将生成的签名头加入request变量中。 1 sig_sign(¶ms); 使用curl库访问API,查看访问结果。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
进行签名,执行此函数会将生成的签名头加入request变量中。 1 signer.createSignature(request); 使用curl库访问API,查看访问结果。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Signature=signature 需要注意的是算法与Access之前有空格但没有逗号,但是SignedHeaders与Signature之前需要使用逗号隔开。 得到的签名消息头为: SDK-HMAC-SHA256 Access=QTWAOYTTINDUT2QVKYUC, SignedH
PHP 本节以IntelliJ IDEA工具为例,介绍如何在PHP环境中集成API请求签名的SDK。您可以直接导入示例工程体验,然后参考调用说明部分将签名SDK集成到您的应用中。 签名SDK只包含签名功能,不包含云服务的SDK功能,云服务SDK请参见SDK。 准备环境 获取并安装IntelliJ
使用临时AK/SK做签名 如果使用临时AK/SK对请求签名,您将签名SDK集成到应用时,请在消息头添加以下参数和参数值: X-Security-Token:{securityToken} 然后使用临时AK/SK对请求进行签名,签名SDK与AK/SK的签名SDK一致。 创建一个AP