强制HTTPS连接到Azure Blob存储

时间:2016-05-03 18:06:37

标签: azure url https azure-blob-storage

我想通过Azure Blob存储(ABS)上的共享访问签名(SAS)URL 允许安全HTTP(HTTPS)连接/访问blob容器。 可以实现吗?怎么样?

2 个答案:

答案 0 :(得分:3)

请使用CloudBlobContainer.GetSharedAccessSignature的覆盖来包含协议限制。

以下是执行相同操作的示例代码:

    static void GetHttpsOnlySas()
    {
        var storageAccount = new CloudStorageAccount(new StorageCredentials(accountName, accountKey), true);
        var blobClient = storageAccount.CreateCloudBlobClient();
        var blobContainer = blobClient.GetContainerReference("container-name");
        var sas = blobContainer.GetSharedAccessSignature(new SharedAccessBlobPolicy()
        {
            Permissions = SharedAccessBlobPermissions.List,
            SharedAccessExpiryTime = DateTime.UtcNow.AddHours(1)
        }, 
        null, 
        SharedAccessProtocol.HttpsOnly,//This option will force SAS to work only on HTTPS
        null);
    }

答案 1 :(得分:1)

创建sas令牌时,可以设置“protocol”参数。如果将其设置为https,则仅允许https。更多信息可以在这里找到:https://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-shared-access-signature-part-1/

使用sdk生成sas令牌时,必须使用此方法:https://msdn.microsoft.com/en-us/library/azure/mt616571.aspx并设置SharedAccessProtocol参数。