3

1 人のユーザーだけの BLOB をセキュリティで保護するにはどうすればよいですか?

私が考えることができる3つのオプションがあります:

1) 有効期限が短い共有アクセス ポリシー。- BLOB へのリンクは、その有効期限の間、および後続の各ページ要求の間、どこからでもアクセスできます。

2) ユーザー要求と BLOB ストレージの間にプロキシを配置し、ここで認証を適用します。- 実際には、公開されている blob が短期間だけ存在します。

3) セキュリティで保護する必要があるものには BLOB ストレージを使用しません。

より良いオプションがありませんか?

4

2 に答える 2

2
  • 有効期限が短い共有アクセス ポリシーを使用するという最初の提案は適切です
  • BLOB を非公開にし、MVC ActionResult を保護し、BLOB をアクションの結果のみに渡すこともできます (つまり、File() を返す)。
于 2013-07-22T13:36:39.243 に答える
0

以下のようにすればよいと思います。

  • 時間依存
  • URL を使用した SaS
    string storageConnectionString ="UseDevelopmentStorage=true";

    CloudStorageAccount storageAccount = CloudStorageAccount.Parse(storageConnectionString);

    CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

    CloudBlobContainer コンテナー = blobClient.GetContainerReference("mycontainer");
    container.CreateIfNotExists();

    BlobContainerPermissions blobPermissions = new BlobContainerPermissions();

    blobPermissions.SharedAccessPolicies.Add("mypolicy", new SharedAccessBlobPolicy()
    {
        SharedAccessStartTime = DateTime.UtcNow.AddHours(1),
        SharedAccessExpiryTime = DateTime.UtcNow.AddHours(11),
        アクセス許可 = SharedAccessBlobPermissions.Write |
        SharedAccessBlobPermissions.Read
   });

   blobPermissions.PublicAccess = BlobContainerPublicAccessType.Off;
   container.SetPermissions(blobPermissions);

   string sasToken = container.GetSharedAccessSignature(new SharedAccessBlobPolicy(), "mypolicy");

記事http://msdn.microsoft.com/en-us/library/windowsazure/jj721951.aspxをご覧になることをお勧めします

于 2013-07-25T00:57:32.900 に答える