OSS访问验证流程

OSS访问的安全性

对OSS的HTTP请求可以根据是否携带身份验证信息分为两种请求。一种是带身份验证的请求,一种是不带身份验证的匿名请求。带身份验证的请求表示的是如下两种情况:

  • 请求头部中带Authorization,格式为OSS + AccessKeyId + 签名字符串。
  • 请求的URL中带OSS AccessKeyId和Signature字段。

OSS访问验证流程

匿名请求访问流程

  1. 用户的请求被发送到OSS的HTTP服务器上。
  2. OSS根据URL解析出Bucket和Object。
  3. OSS检查Object是否设置了ACL。
    • 如果没有设置ACL,那么继续 4。
    • 如果设置了ACL,则判断Object的ACL是否允许匿名用户访问。
      • 允许则跳到 5。
      • 不允许则拒绝请求,请求结束。
  4. OSS判断Bucket的ACL是否允许匿名用户访问。
    • 允许则继续 5。
    • 不允许则返回,请求结束。
  5. 权限验证通过,返回Object的内容给用户。

带身份验证请求访问流程

  1. 用户的请求被发送到OSS的HTTP服务器上。
  2. OSS根据URL解析出Bucket和Object。
  3. OSS根据请求的OSS的AccessKeyId获取请求者的相关身份信息,进行身份鉴权。
    • 如果未获取成功,则返回,请求结束。
    • 如果获取成功,但请求者不被允许访问此资源,则返回,请求结束。
    • 如果获取成功,但OSS端根据请求的HTTP参数,计算的签名和请求发送的签名字符串不匹配,则返回,请求结束。
    • 如果身份鉴权成功,那么继续 4.
  4. OSS检查Object是否设置了ACL。
    • 如果Object没有设置ACL,那么继续 5。
    • 如果Object设置了ACL,OSS判断Object的ACL是否允许匿名用户访问。
      • 允许则跳到 6。
      • 不允许则拒绝请求,请求结束。
  5. OSS判断Bucket的ACL是否允许匿名用户访问。
    • 允许则继续 6。
    • 不允许则返回,请求结束。
  6. 权限验证通过,返回Object的内容给用户。

带身份验证访问OSS的三种方法

  • 使用控制台访问OSS:控制台中对用户隐藏了身份验证的细节,使用控制台访问OSS的用户无需关注细节。
  • 使用SDK访问OSS:OSS提供了多种开发语言的SDK,SDK中实现了签名算法,只需要将AK信息作为参数输入即可。
  • 根据API访问OSS:如果您想用自己喜欢的语言来封装调用RESTful API接口,您需要实现签名算法来计算签名。具体的签名算法可以参考API手册中的 在Header中包含签名 和 在URL中包含签名。

关于AccessKey相关的解释及更详细的身份验证的操作请参见 访问控制。

时间: 2024-10-27 01:28:46

OSS访问验证流程的相关文章

交互设计:手机验证流程的设计

文章描述:最近有个机会,接触到某个手机验证流程的设计,这也让我有机会去动手参与,真刀真枪的过过招.对于新手,我觉得最重要的不是做出什么很满意很完美的设计,而是通过每一次的动手设计,把自己的思维想法贯彻到实践之中,去交流去对比,才会发现自己考虑问题的不足之处.思 人们对于产品设计这类事情,往往容易眼高手低,在宇宙层面上夸夸其谈,却落不了地,只能飘着.真正到了自己动手的时候,才会发现问题很多,实践和理论相差太远,很容易说一套,做一套.所以还是需要多实践,动手去做出东西,才有可能真正提高自己的水平.

webapi接口访问验证是否登陆的解决方案!每次访问接口都需要验证用户是否登陆!

问题描述 webapi接口访问验证是否登陆的解决方案!每次访问接口都需要验证用户是否登陆! webapi接口访问验证是否登陆的解决方案!每次访问接口都需要验证用户是否登陆! 解决方案 不明白,可以说的明白点么 解决方案二: 就是用户在每次访问接口的时候要在接口中验证是否登陆过,登陆过就可以访问,没有登录就返回没有登录的信息! 解决方案三: 通过session ID等作为参数 解决方案四: 谁有设计思路啊,完全不知道怎么处理了! 解决方案五: 用wenbservice,不是有sessioniD吗?

ASP.NET中HTML页面的访问验证设置方法_实用技巧

可能有很多朋友和我一样不会留意到这样的问题,在ASP.NET中,使用其自身提供的访问验证功能(表单验证.Passport 验证.Windows 验证),并不会对静态文件(如 html.图像文件.文本文件等)进行访问限制,即使这些文件置于需要验证后才能访问的文件夹下,匿名用户仍然可以访问到这些文件.这是因为静态文件默认是由 IIS 处理,IIS 在接收到对这些文件的请求后,并不会转交给 ASP.NET 处理,所以,在 ASP.NET 中的权限验证失去了作用.换句话说,这些文件不在ASP.NET 的

基于令牌的服务器访问验证失败,出现基础结构错误。请检查以前的错误

一数据库服务器(SQL Server 2014)上的一个作业执行报错,具体错误信息如下:   Executed as user: NT SERVICE\SQLSERVERAGENT. 用户 'xxxx\xxxxx$' 登录失败. [SQLSTATE 28000] (Error 18456). The step failed.     其中用户 'xxxx\xxxxx$',反斜杠前面是域名,后面为计算机名称+$, 其实这是一个虚拟账号. 即本地系统帐户不具有网络的任何访问权限.当需要访问网络时,本

MongoDB权限验证流程

上篇文章说到,MongoDB的网络通讯协议流程.拿到请求对象后,会调用assemblyResonse函数处理.这部分的代码实在没什么章法可言,if-else遍地,实在不怎么优雅.可以感受到随着需求的增长,很多代码都是硬套上去的.本篇介绍的是基本的处理请求,基本请求所指的是command命令以外的处理行为. assembleResponse 首先,获取到线程绑定(ThreadLocal)Client对象,并对权限模块初始化,更新Auth Cache中过期或者失效的权限信息.然后,根据配置记录dia

文件夹里的文件访问验证问题

问题描述 用form验证可以验证页面,但是如果直接输入某个文件下的文件的链接,却可以不用验证而直接下载下来了,比如有个下载园地,下载的资源不是保存在数据库中的而是保存在网站下的某个文件夹里的,该如何让文件夹里的文件访问时也需要验证呢? 解决方案 解决方案二:可以在web.config里面写authorization节解决方案三:如何写解决方案四:想省事的话用ASP.NET的网站管理工具VS-->网站-->ASP.NET配置自己写web.config头很大,一不小心逻辑乱了就出问题了解决方案五:

OSS访问域名使用规则

OSS域名构成规则 针对OSS的网络请求,除了GetService这个API以外,其他所有请求的域名都是带有指定Bucket信息的三级域名组成的. 访问域名规则:BucketName.Endpoint.其中Endpoint表示OSS对外服务的访问域名.OSS以HTTP RESTful API的形式对外提供服务,当访问不同的Region的时候,需要不同的访问域名.Endpoint分内网和外网访问域名. 例如: 华东1 Region的外网Endpoint是oss-cn-hangzhou.aliyun

OWA访问验证问题

问题描述 虚拟域环境架设了一台Exchange2003服务器,服务器名perth,IP为111.111.111.11,域名yaf.com采用OWA访问时,输入http://perth.yaf.com/exchange和http://111.111.111.11/exchange会正常弹出窗口,输入邮箱用户名和密码.但是,我在输入http://perth/exchange时,会自动进入当前登陆系统的用户的邮箱,且不弹出窗口,直接进入.不解:1.是正常现象还是我哪搞错了?2.如果是正常的,那企业里的

客串java开发:数据库访问的流程简化

如果非 .net 相关技术不适宜发表在园子的首页,请告知我撤下该主题! 我从事 asp/.net 开发有两年多了,其间还做过很多 winform 或 windows console 程序,这些只是表现形式:相关技术 ado.net,多线程,.net remoting 等等或多或少有所应用或研究.刚开始工作因为生活.兴趣,现在发展为一种人生哲学:试图在创造中找到生命存在的意义.难道果真如"许三多"说的:好好活就是做有意义的事,做有意义的事就是好好活? 闲话少扯.最近有幸接触 java,早