Access Key ID 和 Access Key Secret 由阿里云官方颁发给访问者(可以通过阿里云官方网站申请和管理),其中 Access Key ID 用于标识访问者的身份;Access Key Secret 是用于加密签名字符串和服务器端验证签名字符串的密钥,必须严格保密,只有阿里云和用户知道。 容器服务会对每个访问的请求进行验证,每个向容器服务提交的请求,都需要在请求中包含签名(Signature)信息。容器服务通过使用 Access Key ID 和 Access Key Secret 进行对称加密的方法来验证请求的发送者身份。如果计算出来的验证码和提供的一样即认为该请求是有效的;否则,容器服务将拒绝处理这次请求,并返回 HTTP 403 错误。 用户可以在 HTTP 请求中增加授权(Authorization)的 Head 来包含签名信息,表明这个消息已被授权。 容器服务要求将签名包含在 HTTP Header 中,格式为 Authorization: acs [Access Key Id]:[Signature]。 Signature 的计算方法如下:
Signature = base64(hmac-sha1(VERB + "\n" + ACCEPT + "\n" + + Content-MD5 + "\n" + Content-Type + "\n" + Date + "\n" + CanonicalizedHeaders + "\n" + CanonicalizedResource)) VERB 表示 HTTP 的 Method。比如示例中的 PUT。 Accept 客户端需要的返回值类型,支持 application/json 和 application/xml。 Content-MD5 表示请求内容数据的 MD5 值。 Content-Type 表示请求内容的类型。 Date 表示此次操作的时间,不能为空,目前只支持 GMT 格式。如果请求时间与 CAS 服务器时间相差超过 1 5分钟,CAS 会判定此请求不合法,并返回 400 错误。错误信息及错误码详见本文档第 5 部分。比如示例中的 Thu, 17 Mar 2012 18:49:58 GMT。 CanonicalizedHeaders 表示 HTTP 中以 x-acs- 开始的字段组合。 CanonicalizedResource 表示 HTTP 所请求资源的 URI (统一资源标识符)。比如示例中的 /clusters?name=my-clusters&resource=new。
签名机制说明 Access Key ID 和 Access Key Secret 由阿里云官方颁发给访问者(可以通过阿里云官方网站申请和管理),其中 Access Key ID 用于标识访问者的身份;Access Key Secret 是用于加密签名字符串和服务器端验证签名字符串的密钥,必须严格保密,只有阿里云和用户知道。
容器服务会对每个访问的请求进行验证,每个向容器服务提交的请求,都需要在请求中包含签名(Signature)信息。容器服务通过使用 Access Key ID 和 Access Key Secret 进行对称加密的方法来验证请求的发送者身份。如果计算出来的验证码和提供的一样即认为该请求是有效的;否则,容器服务将拒绝处理这次请求,并返回 HTTP 403 错误。
用户可以在 HTTP 请求中增加授权(Authorization)的 Head 来包含签名信息,表明这个消息已被授权。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。