ali_upload - sailing2014/Web-API-Guideline GitHub Wiki
临时访问凭证
-
OSS可以通过阿里云STS服务,临时进行授权访问。如下:
- App用户登录。
- App向AppServer请求STS服务获取一个安全令牌(SecurityToken)。
- AppServer返回一个有效的访问凭证,包括一个安全令牌(SecurityToken)、临时访问密钥(AccessKeyId, AccessKeySecret)以及过期时间。
- ClientApp可以缓存这个凭证。当凭证失效时,ClientApp需要向AppServer申请新的有效访问凭证。比如,访问凭证有效期为1小时,那么ClientApp可以每30分钟向AppServer请求更新访问凭证。
- ClientApp使用本地缓存的访问凭证去请求Aliyun Service API。云服务会感知STS访问凭证,并会依赖STS服务来验证访问凭证,并正确响应用户请求。
- 用户的客户端端拿到STS临时凭证后,通过其中安全令牌(SecurityToken)以及临时访问密钥(AccessKeyId, AccessKeySecret)构建签名。用户需要将安全令牌(SecurityToken)携带在请求header中或者以请求参数的形式放入URI中。这两种形式只能选择其一,如果都选择,oss会返回InvalidArgument错误。在header中包含头部x-oss-security-token:SecurityToken。计算签名CanonicalizedOSSHeaders时,将x-oss-security-token计算在内;在URL中携带参数security-token=SecurityToken。计算签名CanonicalizedResource时 ,将security-token当做一个sub-resource计算在内。
-
参考