管理凭证

更新时间:2020-10-09 13:48:58

< path>

描述

管理凭证accessToken是网宿云存储用于验证资源管理接口请求的合法性。建议仅在业务服务器端使用这一类凭证,避免意外授权导致滥用。

  • 安全密钥SecretKey
    请从云存储平台密钥管理处获取SK。
  • 访问密钥AccessKey
    请从云存储平台密钥管理处获取AK。

管理凭证算法

待签名数据

抽取请求URL中的<path>或<path>?<query>部分,与<body>(即HTTP Body),用\n连接,得到signingStr。

有以下4种情况:
    signingStr = "&lt;path>?&lt;query>\n" 
或  signingStr = "&lt;path>?&lt;query>\n&lt;body>"
或  signingStr = "&lt;path>\n"
或  signingStr = "&lt;path>\n<body>"

例如:

列举资源(list)接口
&lt;path>:/list
&lt;query>:bucket=&lt;Bucket>&marker=&lt;Marker>&limit=&lt;Limit>&prefix=&lt;Urlsafe_Base64_Encoded_Prefix>&mode=&lt;Mode>
&lt;body>:无
则signingStr = "/list?bucket=&lt;Bucket>&marker=&lt;Marker>&limit=&lt;Limit>&prefix=&lt;Urlsafe_Base64_Encoded_Prefix>&mode=&lt;Mode>\n"
音视频处理(avthumb/vframe)接口
&lt;path>:/fops
&lt;body>:&lt;RequestParams>,即相应的请求内容
则signingStr ="/fops\n&lt;RequestParams>"

HMAC-SHA1签名数据

使用SecretKey对signingStr进行HMAC-SHA1签名,得到Sign。

Sign = hmac_sha1(signingStr,"&lt;SecretKey>")
注:不同语言的HMAC-SHA1方法有差异,可参考各语言SDK中的实现

外部资源:HMAC-SHA1签名
示例代码:HMAC-SHA1签名

URL安全的Base64编码签名数据

对签名数据Sign进行URL安全的Base64编码,得到encodeSign。

encodeSign = urlsafe_base64_encode(Sign)

生成管理凭证

将AccessKey与encodeSign用:连接,得到管理凭证accessToken。

accessToken = <AccessKey>:<encodeSign>
本篇文档内容对您是否有帮助?
有帮助
我要反馈
提交成功!非常感谢您的反馈,我们会继续努力做到更好!