代码之家  ›  专栏  ›  技术社区  ›  synhershko

允许访问Azure存储节点以选择用户?

  •  0
  • synhershko  · 技术社区  · 15 年前

    给定一个在Azure存储上存储的文件(blob、表或队列——没关系),是否可以允许所有人访问它,但只能基于权限?

    例如,我有大量的图像存储,以及一个包含用户和授权的数据库。我希望用户X只能访问图像Y和Z。因此,除非您随附某种临时安全令牌,否则URL通常是不可访问的。怎么可能? 我知道我可以从外部世界关闭存储,并且只允许通过应用程序检查这些内容来访问它,但是这也要求应用程序也在Azure上,并且内部应用程序将无法从Azure存储中传递任何内容。

    据我所知,大多数cdn都提供了这样的功能,我当然希望如此,Azure也提供了解决方案!

    伊塔马尔。

    2 回复  |  直到 13 年前
        1
  •  1
  •   FrenchData    15 年前

    我认为您无法实现这种级别的访问过滤。我知道的唯一方法在这个msdn文章中描述过。

    Managing Access to Containers and Blobs

    这里有一个博客,描述了实现它的代码的一小部分

    Using Container-Level Access Policies in Windows Azure Storage

    我不确定这是否适合你的需要。如果我理解正确,我会这样做: 1。在与角色匹配的容器中组织内容 2.第2条。在您的内部部署应用程序中,检查用户是否有访问权限,如果有,则生成正确的URL,以给他临时访问资源的权限。

    当然,只有当用户必须通过一个中心点才能访问blob中的内容时,这才有效。如果他们将生成的链接加入书签,那么一旦过期日期过去,链接就会失败。

    祝你好运。

        2
  •  0
  •   codingoutloud    13 年前

    这实际上可以用BLOB存储实现。考虑(a)一个类似于资源管理器的UI,(b)用户已经过身份验证(可以使用访问控制服务,但不需要)。

    类似于资源管理器的UI可以公开适合经过身份验证的用户的资源。对这些资源的底层访问将是共享访问签名,该签名以适合对象的粒度进行控制——例如,限制只能看到文件夹中的一个文件,或整个文件夹,或在文件夹中创建文件的能力,等等,都可以表示出来。

    此资源管理器类似于UI,但需要访问为给定用户提供正确文件的逻辑,同时还需要根据需要创建适当的共享访问签名。请注意,此逻辑不需要托管在Azure中,只需要访问适当的存储密钥(从Azure门户)。