安全机制 > 管理凭证 |
每一个资源管理请求均需在 HTTP 请求头部增加一个 Authorization 字段,其值为符合管理凭证的字符串,示例如下: GET /stat/<EncodedEntryURI> HTTP/1.1 Host: rs.qiniu.com Authorization: QBox <管理凭证> 管理凭证是互站云存储用于验证管理请求是否合法的机制,建议在业务服务器端使用。例如查看资源元信息、删除或移动资源等,通常需要带一个合法的管理凭证。不带凭证或带非法凭证的管理请求将返回 HTTP 错误码 401,代表认证失败。管理凭证的作用与下载凭证类似:
算法1.生成待签名的原始字符串: signingStr = "<path>?<query>\n" 或 signingStr = "<path>?<query>\n<body>" 2.使用SecertKey对上一步生成的原始字符串计算HMAC-SHA1签名: sign = hmac_sha1(signingStr, "<SecretKey>") 3.对签名进行URL 安全的 Base64 编码: encodedSign = urlsafe_base64_encode(sign) 4.将 AccessKey 和 encodedSign 用英文符号 : 连接起来: accessToken = "<AccessKey>:<encodedSign>" 示例# 假设有如下的管理请求: AccessKey = "MY_ACCESS_KEY" SecretKey = "MY_SECRET_KEY" url = "http://rs.qiniu.com/move/bmV3ZG9jczpmaW5kX21hbi50eHQ=/bmV3ZG9jczpmaW5kLm1hbi50eHQ=" #则待签名的原始字符串是: signingStr = "/move/bmV3ZG9jczpmaW5kX21hbi50eHQ=/bmV3ZG9jczpmaW5kLm1hbi50eHQ=\n" #签名字符串是: sign = "157b18874c0a1d83c4b0802074f0fd39f8e47843" 注意:签名结果是二进制数据,此处输出的是每个字节的十六进制表示,以便核对检查。 #编码后的签名字符串是: encodedSign = "FXsYh0wKHYPEsIAgdPD9OfjkeEM=" #最终的管理凭证是: accessToken = "MY_ACCESS_KEY:FXsYh0wKHYPEsIAgdPD9OfjkeEM=" |